openapi: 3.2.0 info: title: Harness Database Schema API version: '1.0' description: The Harness Software Delivery Platform uses OpenAPI Specification v3.0. contact: name: API Support email: contact@harness.io url: https://harness.io/ x-logo: url: https://mma.prnewswire.com/media/779232/Harnes_logo_horizontal.jpg?p=facebook altText: Harness termsOfService: https://harness.io/terms-of-use/ servers: - url: https://app.harness.io description: Harness host URL - url: https://{vanity} description: Vanity URL variables: vanity: default: app.harness.io security: - x-api-key: [] tags: - description: This contains APIs for performing CRUD operations on Database Schema Entity name: Database Schema x-displayName: Database Schema paths: /v1/dbops/dbschema: parameters: - description: Identifier field of the account the resource is scoped to in: header name: Harness-Account required: true schema: type: string get: description: List database schemas for an account operationId: V1ListDatabaseSchema parameters: - $ref: '#/components/parameters/DbOpsPageIndex' - $ref: '#/components/parameters/DbOpsLimit' - $ref: '#/components/parameters/DbOpsSearchTerm' - $ref: '#/components/parameters/DbOpsSort' - $ref: '#/components/parameters/DbOpsOrder' - $ref: '#/components/parameters/DbOpsOrgIdentifier' - $ref: '#/components/parameters/DbOpsProjectIdentifier' responses: '200': content: application/json: schema: items: $ref: '#/components/schemas/DBSchemaOut' type: array description: Response headers: X-Page-Number: description: Page number in Paginated response. schema: type: integer X-Page-Size: description: Maximum page size in Paginated response. schema: type: integer X-Total-Elements: description: Total number of elements returned in Paginated response. schema: type: integer '400': $ref: '#/components/responses/ErrorResponse' '403': $ref: '#/components/responses/ErrorResponse' '404': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' summary: List Database Schemas for an Account across Projects with optional Project… tags: - Database Schema x-internal: true x-stoplight: id: 77w2pvpfs9rvl /v1/orgs/{org}/projects/{project}/dbschema: parameters: - $ref: '#/components/parameters/OrgParam' - $ref: '#/components/parameters/ProjectParam' - $ref: '#/components/parameters/DbOpsAccountHeader' get: description: List database Schemas operationId: V1ListProjDbSchema parameters: - $ref: '#/components/parameters/DbOpsPageIndex' - $ref: '#/components/parameters/DbOpsLimit' - $ref: '#/components/parameters/DbOpsSearchTerm' - $ref: '#/components/parameters/DbOpsSort' - $ref: '#/components/parameters/DbOpsOrder' - $ref: '#/components/parameters/MigrationTypeParam' responses: '200': $ref: '#/components/responses/DBSchemaListResponse' '400': $ref: '#/components/responses/ErrorResponse' '403': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' summary: List database schemas tags: - Database Schema x-internal: false x-stoplight: id: nhhnhieu7jo8u post: operationId: V1CreateProjDbSchema requestBody: $ref: '#/components/requestBodies/DBSchemaCreateRequest' responses: '201': $ref: '#/components/responses/DBSchemaResponse' '400': $ref: '#/components/responses/ErrorResponse' '403': $ref: '#/components/responses/ErrorResponse' '404': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' summary: Create a database schema tags: - Database Schema x-stoplight: id: 1ip5gikvmqezd /v1/orgs/{org}/projects/{project}/dbschema/{dbschema}: parameters: - $ref: '#/components/parameters/OrgParam' - $ref: '#/components/parameters/ProjectParam' - $ref: '#/components/parameters/DBSchemaParam' - $ref: '#/components/parameters/DbOpsAccountHeader' delete: operationId: V1DeleteProjDbSchema responses: '204': description: The database schema was deleted successfully '400': $ref: '#/components/responses/ErrorResponse' '403': $ref: '#/components/responses/ErrorResponse' '404': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' summary: Delete a database schema tags: - Database Schema x-stoplight: id: ek4jolzg7diy6 get: description: Retrieves the specified database schema operationId: V1GetProjDbSchema responses: '200': $ref: '#/components/responses/DBSchemaResponse' '400': $ref: '#/components/responses/ErrorResponse' '403': $ref: '#/components/responses/ErrorResponse' '404': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' summary: Get a database schema tags: - Database Schema x-stoplight: id: 78fzlqtzyti7q put: operationId: V1UpdateProjDbSchema requestBody: $ref: '#/components/requestBodies/DBSchemaUpdateRequest' responses: '200': $ref: '#/components/responses/DBSchemaResponse' '400': $ref: '#/components/responses/ErrorResponse' '403': $ref: '#/components/responses/ErrorResponse' '404': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' summary: Update a database schema tags: - Database Schema x-stoplight: id: ngsm9f0c6fvq5 /v1/orgs/{org}/projects/{project}/dbschema/{dbschema}/instance/{dbinstance}: parameters: - $ref: '#/components/parameters/OrgParam' - $ref: '#/components/parameters/ProjectParam' - $ref: '#/components/parameters/DBSchemaParam' - $ref: '#/components/parameters/DBInstanceParam' - $ref: '#/components/parameters/DbOpsAccountHeader' put: operationId: V1UpdateProjDbSchemaInstance requestBody: $ref: '#/components/requestBodies/DBInstanceUpdateRequest' responses: '200': $ref: '#/components/responses/DBInstanceResponse' '400': $ref: '#/components/responses/ErrorResponse' '403': $ref: '#/components/responses/ErrorResponse' '404': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' summary: Update a database instance tags: - Database Schema x-stoplight: id: e17endbbc7uha components: parameters: DbOpsPageIndex: description: 'Pagination page number strategy: Specify the page number within the paginated collection related to the number of items on each page.' in: query name: page schema: default: 0 format: int64 type: integer DBSchemaParam: description: Identifier of the database schema in: path name: dbschema required: true schema: maxLength: 128 type: string DbOpsLimit: description: 'Pagination: Number of items to return.' in: query name: limit schema: default: 10 maximum: 100 type: integer OrgParam: description: Organization identifier in: path name: org required: true schema: type: string DbOpsProjectIdentifier: description: Identifier of the project in: query name: projectIdentifier schema: type: string DBInstanceParam: description: database instance unique id in: path name: dbinstance required: true schema: type: string DbOpsSearchTerm: allowEmptyValue: true description: This would be used to filter resources having attributes matching the search term. in: query name: search_term schema: type: string DbOpsOrgIdentifier: description: Identifier of the organization in: query name: orgIdentifier schema: type: string DbOpsOrder: description: Order on the basis of which sorting is done. in: query name: order schema: default: DESC enum: - ASC - DESC type: string MigrationTypeParam: description: DB Migration tool type in: query name: migrationType schema: enum: - Liquibase - Flyway type: string ProjectParam: description: Project identifier in: path name: project required: true schema: type: string DbOpsSort: description: Parameter on the basis of which sorting is done. in: query name: sort schema: default: created enum: - name - updated - created type: string DbOpsAccountHeader: description: Identifier field of the account the resource is scoped to. This is required for Authorization methods other than the x-api-key header. If you are using the x-api-key header, this can be skipped. in: header name: Harness-Account schema: type: string requestBodies: DBInstanceUpdateRequest: content: application/json: examples: example-1: value: branch: string connector: string context: string name: string tags: property1: string property2: string schema: properties: branch: description: branch where the instance is stored type: string commitSha: description: 'Commit SHA to pin the changelog to a specific revision. Mutually exclusive with branch and gitTag. ' type: string connector: description: DB Connector type: string context: description: Liquibase context type: string gitTag: description: 'Git tag to pin the changelog to a specific tagged revision. Mutually exclusive with branch and commitSha. ' type: string name: description: 'name of the database instance ' maxLength: 128 type: string substituteProperties: additionalProperties: type: string x-stoplight: id: 1x0876wmy58na description: Placeholder replacement in migration scripts. type: object x-stoplight: id: 5du5bai30t6gb tags: additionalProperties: type: string x-oapi-codegen-extra-tags: validate: max=128 description: Database instance tags maxProperties: 128 type: object version: description: version of the changelog applied to the database type: string type: object description: Database instance update request required: true DBSchemaUpdateRequest: content: application/json: schema: properties: changeLogScript: description: if schemaType is Script location of the changelog file after using a custom script to download properties: command: description: command script used to download the changelog file example: curl -X -o changeLog.yaml https://www.filestore.com/changeLog.yaml type: string x-stoplight: id: uga2w98ndtla2 image: description: The fully-qualified name (FQN) of the image example: plugins/image:latest type: string x-stoplight: id: rtvl2gmxyo7mw location: description: location of the changelog file example: folder/changelog.yaml type: string x-stoplight: id: xarkte21qk96f shell: description: shell type example: Sh, Bash, <+pipeline.variables.shell> type: string toml: description: config file for Flyway migration type type: string x-stoplight: id: slf4kbjgza057 type: object x-stoplight: id: 715ey5dxwedi1 changelog: additionalProperties: false description: 'location of the changelog file containing schema changes in a git repository ' properties: archivePath: description: path excluding the repo till the archive file type: string x-stoplight: id: lmyqjd54oln7q connector: description: 'identifier of the harness git connector. To switch from a connector-based schema to Harness Code Repository, explicitly set this to empty string ("") alongside the repo field. Omitting this field retains the stored connector. ' example: harness_git type: string location: description: path to the change log file example: folder/changelog.yaml type: string repo: description: repo name of the git based connector when ConnectionType is Account type: string x-stoplight: id: jpl7puzto8jfo toml: description: config file for Flyway migration type type: string x-stoplight: id: l8l4oa4xtidcs type: object name: description: 'name of the database schema ' maxLength: 128 type: string primaryDbInstanceId: description: This is the primary db instance identifier for advanced feature like LLM Authoring etc. type: string x-stoplight: id: awj0wbtw7g6x5 service: description: 'harness service corresponding to database schema ' example: harness_service type: string tags: additionalProperties: type: string x-oapi-codegen-extra-tags: validate: max=128 description: Database Schema tags maxProperties: 128 type: object type: $ref: '#/components/schemas/DBSchemaType' usePercona: description: if percona-tookit is enabled type: boolean x-stoplight: id: 008kgy34odsaf type: object description: Database schema update request required: true DBSchemaCreateRequest: content: application/json: schema: $ref: '#/components/schemas/DBSchemaIn' required: true responses: DBSchemaResponse: content: application/json: schema: $ref: '#/components/schemas/DBSchemaOut' description: Response body for Database Schema DBInstanceResponse: content: application/json: schema: $ref: '#/components/schemas/DBInstanceOut' description: Response body for Database Instance ErrorResponse: content: application/json: schema: $ref: '#/components/schemas/DbOpsError' description: Error Response body DBSchemaListResponse: content: application/json: schema: description: Response body for List Schema items: $ref: '#/components/schemas/DBSchemaOut' type: array description: Response body for List Database Schema headers: X-Page-Number: description: Page number in Paginated response. schema: type: integer X-Page-Size: description: Maximum page size in Paginated response. schema: type: integer X-Total-Elements: description: Total number of elements returned in Paginated response. schema: type: integer schemas: DbOpsError: description: Error Response properties: message: description: error message detail type: string required: - message title: Error Response type: object x-stoplight: id: 61cwtgnps2mpt ChangeLogScript: additionalProperties: false description: if schemaType is Script location of the changelog file after using a custom script to download properties: command: description: command script used to download the changelog file example: curl -X -o changeLog.yaml https://www.filestore.com/changeLog.yaml minLength: 1 type: string x-stoplight: id: rdani02niu442 image: description: The fully-qualified name (FQN) of the image example: plugins/image:latest minLength: 1 type: string x-stoplight: id: ojq7cfe1up903 location: description: location of the changelog file example: folder/changelog.yaml type: string x-stoplight: id: 8qehjmy01r5iw shell: description: shell type example: Sh, Bash, <+pipeline.variables.shell> type: string toml: description: config file for Flyway migration type type: string x-stoplight: id: nphvi8wa0cmuw required: - image - command - shell - location title: changeLog script type: object x-stoplight: id: j6ug0asalsuve Changelog: additionalProperties: false description: 'if schemaType is Repository location of the changelog file containing schema changes in a git repository. Provide connector for third-party git connectors, or repo without connector to use Harness Code Repository. ' properties: archivePath: description: path excluding the repo till the archive file minLength: 1 type: string x-stoplight: id: 53mqhpfa5038m connector: description: 'identifier of the harness git connector. Optional when using Harness Code Repository. Omit or set to empty string to use Harness Code Repository (requires `repo` to be set). ' example: harness_git type: string x-go-type-skip-optional-pointer: true location: description: path to the change log file example: folder/changelog.yaml minLength: 1 type: string repo: description: repo name of the git based connector when ConnectionType is Account example: folder/changelog.yaml minLength: 1 type: string x-stoplight: id: pw3ul0rkm8xt6 toml: description: config file for Flyway migration type type: string x-stoplight: id: ojrzuagzdfn20 required: - location type: object x-stoplight: id: rytv7gaa34yns DBSchemaType: description: db schema type enum: - Repository - Script title: DBSchemaType type: string x-stoplight: id: 8x2xf0r3syqjg DBSchemaOut: description: Database Schema Response properties: changeLogScript: $ref: '#/components/schemas/ChangeLogScript' changelog: $ref: '#/components/schemas/Changelog' created: description: epoch seconds when the database schema was created format: int64 type: integer identifier: description: identifier of the database schema type: string instanceCount: description: number of database instances corresponding to database schema format: int64 type: integer migrationType: $ref: '#/components/schemas/MigrationType' name: description: name of the database schema type: string parentId: description: parentUniqueId for scope schema belongs to type: string x-stoplight: id: ly84xx0ojw0dw primaryDbInstanceId: description: Identifier for the primary dbInstance used for advanced feature like LLM Authoring etc. type: string x-stoplight: id: 2q5akpayctizx schemaSourceType: enum: - Git - Artifactory - Custom - HarnessCode readOnly: true type: string x-stoplight: id: 802m1r25ghm6l service: description: harness service corresponding to database schema type: string tags: additionalProperties: type: string description: tags attached to the database schema type: object x-go-type-skip-optional-pointer: true type: $ref: '#/components/schemas/DBSchemaType' updated: description: epoch seconds when the database schema was last updated format: int64 type: integer usePercona: default: false description: if percona-toolkit is enabled type: boolean x-stoplight: id: dnfipv17ffs3v required: - identifier - name - created - instanceCount - type - parentId - migrationType - usePercona title: Database Schema Response type: object x-stoplight: id: 1y01syuq8w851 MigrationType: default: Liquibase description: DB Migration tool type enum: - Liquibase - Flyway title: MigrationType type: string x-stoplight: id: jxued8v34v6x0 DBInstanceOut: description: Database Instance Response properties: branch: description: branch where the instance is stored type: string commitSha: description: commit SHA to pin the changelog to a specific revision type: string connector: description: DB Connector type: string context: description: Liquibase context type: string created: description: epoch seconds when the database instance was created format: int64 type: integer gitTag: description: Git tag to pin the changelog to a specific tagged revision type: string identifier: description: identifier of the database instance type: string lastAppliedTag: description: Most recent tag applied to the database type: string lastDeployedChangeSetTag: description: Tag on last deployed changeSet type: string x-stoplight: id: dlbvh5adtk2de name: description: name of the database instance type: string schemaId: type: string x-stoplight: id: 2n2zy2gxgmycn schemaIdentifier: type: string x-stoplight: id: delov0umr51kp substituteProperties: additionalProperties: type: string x-stoplight: id: lhgrpfvhx5bfk description: Placeholder replacement in migration scripts. type: object x-stoplight: id: npmul0cgghe3c tags: additionalProperties: type: string description: tags attached to the database instance type: object x-go-type-skip-optional-pointer: true toOnboard: type: boolean x-stoplight: id: y8hnyznezal4i updated: description: epoch seconds when the database instance was last updated format: int64 type: integer required: - identifier - name - created - connector - lastDeployedChangeSetTag title: Database Instance Response type: object x-stoplight: id: qcmn5nllz3a1z DBSchemaIn: description: 'Database Schema Request ' properties: changeLogScript: $ref: '#/components/schemas/ChangeLogScript' changelog: $ref: '#/components/schemas/Changelog' identifier: description: identifier of the database schema pattern: ^[a-zA-Z_][0-9a-zA-Z_$]{0,127}$ type: string x-oapi-codegen-extra-tags: validate: required,max=128 migrationType: $ref: '#/components/schemas/MigrationType' name: description: name of the database schema type: string x-oapi-codegen-extra-tags: validate: required,max=128 service: description: 'harness service corresponding to database schema ' example: harness_service minLength: 1 type: string tags: additionalProperties: type: string x-oapi-codegen-extra-tags: validate: max=128 description: tags attached to the database schema maxProperties: 128 type: object x-go-type-skip-optional-pointer: true type: $ref: '#/components/schemas/DBSchemaType' usePercona: default: false description: if percona-toolkit to be enabled type: boolean x-stoplight: id: gub746l5qctru required: - identifier - name title: Database Schema Request type: object x-examples: Example 1: changelog: connector: harness_git location: folder/changelog.yaml identifier: myservice_database name: my service database service: harness_service tags: region: us-east-1 x-stoplight: id: 50h201oitfzde securitySchemes: x-api-key: name: x-api-key type: apiKey in: header description: API key is a token provided while making the API calls. This is used to authenticate the client at the exposed endpoint. externalDocs: description: Find out more about Swagger url: http://swagger.io x-stoplight: id: oc91t4vrfnjyi x-tagGroups: - name: Organizations tags: - Organization - name: Projects tags: - Org Project - Project - name: Secrets tags: - Account Secret - Org Secret - Project Secret - Secrets - name: Connectors tags: - Account Connector - Org Connector - Project Connector - Connectors - GoogleSecretManagerConnector - name: Roles tags: - Account Roles - Organization Roles - Project Roles - Roles - name: Resource Groups tags: - Account Resource Groups - Organization Resource Groups - Project Resource Groups - Filter Resource Groups - Harness Resource Group - Zendesk - name: Role Assignments tags: - Account Role Assignments - Org Role Assignments - Project Role Assignments - Role Assignments - name: Platform tags: - Access Control List - Account Banner - Account Banner - Account Licensed Modules - Account License Type - Account Webhooks - AccountSetting - Accounts - Analyze Account Access Policy - Analyze Organization Access Policy - Analyze Project Access Policy - ApiKey - Audit - AuditFilters - Authentication Settings - Canny - Devops Essentials License Data By Account - EULA - Filter - Harness Resource Type - Invite - IP Allowlist - Nextgen Ldap - Notification Channels - Notification Rules - OIDC - Oidc-Access-Token - Oidc-ID-Token - Org Webhooks - Permissions - Project Webhooks - Secret Managers - Service Account - Setting - SMTP - Source Code Manager - Token - User - User Group - Variables - name: Delegate tags: - Agent mTLS Endpoint Management - Delegate Download Resource - Delegate Group Tags Resource - Delegate Setup Resource - Delegate Token Resource - name: Pipelines tags: - Pipelines - Input Sets - Approvals - Pipeline Execution - Pipeline Dashboard - Pipeline Input Set - Pipeline - Pipeline Execution Details - Pipeline Execute - Pipeline Refresh - Pipeline data retention - Triggers - TriggersEvents - Webhook Triggers - Webhook Event Handler - DryRunPipeline - name: Artifact Registry tags: - Registries - Artifacts - Docker Artifacts - Helm Artifacts - quarantine - Webhooks - Spaces - Replication - Registry V3 - Registries - Registry V3 - Packages - Registry V3 - Versions - Registry V3 - Files - Registry V3 - Metadata - Registry V3 - Firewall - Registry V3 - Transfer - name: Database DevOps tags: - Database Schema - Database Instance - Deployed State - Execution Config - Migration State - name: CD tags: - K8s Release Service Mapping - CustomDeployment - Environments - EnvironmentGroup - Infrastructures - Usage - File Store - Service Dashboard - ServiceOverrides - Rollback - tas - name: Deployment Freeze tags: - Freeze CRUD - Freeze Evaluation - Freeze Schema - name: Services tags: - Account Services - Org Services - Project Services - Services - name: Rancher Infrastructures tags: - Account Rancher Infrastructure - Org Rancher Infrastructure - Project Rancher Infrastructure - name: Templates tags: - Account Template - Org Template - Project Template - Templates - Global Templates - name: GitOps tags: - Agents - Application - Applications - Certificates - Clusters - Dashboard Aggregates - Dashboards - GnuPGP Keys - GPG Keys - Hosts - Project mappings - Projects - Reconciler - Repositories - Repository Certificates - Repository credentials - ValidateHost - name: GitX tags: - GitX Webhooks - Org Gitx Webhooks - Project Gitx Webhooks - name: CACM tags: - Anomalies Ignorelist Rule - Anomalies - BI Dashboards - Budgets - Budget Groups - Cost Categories - Cloud Accounts - K8S Connectors Metadata - Notification Settings v2 - Overview - Data Job Status - Recommendation cost settings - Unit Metric - Anomaly Comments - Cloud and AI cost anomaly details - Cloud and AI cost anomalies v2 - Cost Details - Currency Preferences - External Data Provider - AiEngine - CACM governance cost settings - Governance Enforcement Recommendation APIs - Governance Alert - Governance Overview - Governance Recommendation APIs - RuleEnforcement - Rule Executions - Rule - Rule Sets - Perspectives Folders - Perspective Reports - Perspectives - Cost Category Jira Project Mapping - Recommendations Details - Recommendations - Recommendation Jira - Recommendation Preferences - Recommendation Presets - Recommendation Servicenow - Recommendation Tags - Recommendation Ignore List - AutoStopping Rules - AutoStopping Rules V2 - AutoStopping Load Balancers - AutoStopping Fixed Schedules - AutoStopping Alerts - Commitment Orchestrator Events APIs - name: Feature Flags tags: - API Keys - Feature Flags - Targets - Target Groups - Environment Perspectives - Anomalies - Proxy - Tags - name: SRM tags: - Monitored Services - SLOs dashboard - NG SLOs - SLOs - Downtime - Srm Notification - name: Internal Developer Portal - IDP tags: - Entities - Teams - CatalogCustomProperties - Scores - DataSource - KubernetesDataPoints - AggregationRules - AppConfig - PluginInfo - LayoutProxy - Kinds - LayoutsV3 - LayoutsV4 - name: Environment Management - IDP tags: - Environment - Infrastructure - Instance - name: Custom Dashboards tags: - aida - dashboards - downloads - embed - folders - name: Policy Management tags: - dashboard - examples - policies - evaluate - evaluations - policysets - system - name: Code tags: - repository - status_checks - pullreq - upload - webhook - resource - rules - labels - name: IaCM tags: - usage - approvals - costs - executions - module-registry - workspaces - settings - tf-standard-backend - variables - name: STO tags: - Exemptions - Issues - Scans - Products - Test Targets - Target Variants - name: SEI tags: - Collection categories - Collections - Contributors - DORA - name: Git Sync (deprecated) tags: - Git Branches - Git Full Sync - Git Sync Settings - Git Sync - Git Sync Errors - name: Error Models tags: - Error Response - Governance Metadata - name: Supply Chain Security tags: - integration - PipelineInfraConfig - SBOM - Integration Step Config - Delete Step Config - Delete Repositories - Pipeline Store Config - Evidence Vault [Beta] - name: Release Management tags: - Release Groups - Releases - Orchestration Processes - Orchestration Activities - Orchestration Executions - Conflicts - Freeze - Reports - Uploads - name: Resilience Testing tags: - Actions - Action Templates - Chaos Components - Chaos Hubs - ChaosGuard Conditions - ChaosGuard Rules - DR Tests - Experiments - Experiment Templates - Faults - Fault Templates - Chaos Infrastructure - Health - Network Maps - Onboarding - Probes - Probe Templates - Chaos Recommendations - Risks