agentsclimarketplace

Managing database devops

Skill pvnarp/harness-agentic-skills/skills/harness/managing-database-devops

Manage Harness Database DevOps (DBOps) via MCP. Browse database schemas (Liquibase or Flyway), inspect schema instances and the JDBC connectors they reference, view schema snapshot objects, read the project's default authoring instance, and configure or trigger LLM-assisted authoring pipelines that draft migration scripts. Use when asked to list database schemas, find which connector a schema uses, see snapshot diffs, set up DBOps, or generate migration drafts with LLM authoring. Trigger phrases: DBOps, database DevOps, database schema, Liquibase, Flyway, migration, schema instance, LLM authoring, database migration script.From its SKILL.md

Install
npx -y skills add pvnarp/harness-agentic-skills --skill managing-database-devops

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its file declares

Copied from the file, not written here

The file declares its own license as Apache-2.0. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.

SKILL.md

7.0 KB, as published. Nobody here has run it

Manage Database DevOps

What this skill uses

Harness MCP tools: harness:harness_create, harness:harness_get, harness:harness_list Resource types: connector, database_default_authoring_instance, database_execute_llm_authoring_pipeline, database_instance, database_llm_authoring_pipeline, database_schema, database_snapshot_object

The DBOps toolset surfaces Harness's database migration entities. Schemas describe how migrations are managed (Liquibase or Flyway) and where scripts come from; instances bind schemas to specific connectors; snapshots capture point-in-time schema objects.

Important: the schema's type field describes the migration source (Repository / Script), NOT the database engine. The engine (MySQL, PostgreSQL, etc.) lives on the JDBC connector that each instance references - look it up via /creating-connectors or harness:harness_get on the connector resource.

Instructions

Step 1: List schemas

Call MCP tool: harness:harness_list
Parameters:
  resource_type: "database_schema"
  org_id: "<org>"
  project_id: "<project>"
  filters:
    migration_type: "Liquibase"   # optional: Liquibase | Flyway
    search_term: "<name>"

Get schema details:

Call MCP tool: harness:harness_get
Parameters:
  resource_type: "database_schema"
  resource_id: "<dbschema_id>"
  org_id: "<org>"
  project_id: "<project>"

Step 2: Instances and engine resolution

A schema has one or more instances; each instance points at a JDBC connector that knows the engine.

Call MCP tool: harness:harness_list
Parameters:
  resource_type: "database_instance"
  org_id: "<org>"
  project_id: "<project>"
  filters:
    dbschema_id: "<dbschema_id>"   # parent schema

Get the connector behind an instance to discover the engine:

Call MCP tool: harness:harness_get
Parameters:
  resource_type: "database_instance"
  resource_id: "<instance_id>"

The result includes a connector reference. Resolve it:

Call MCP tool: harness:harness_get
Parameters:
  resource_type: "connector"
  resource_id: "<connector_ref>"

The connector's spec contains JDBC URL / driver info - that tells you whether it's MySQL, PostgreSQL, SQL Server, etc.

Step 3: Snapshots

Snapshot objects capture schema state at a point in time and are useful for drift analysis or rollback planning.

Call MCP tool: harness:harness_list
Parameters:
  resource_type: "database_snapshot_object"
  org_id: "<org>"
  project_id: "<project>"
  filters:
    dbschema_id: "<dbschema_id>"
Call MCP tool: harness:harness_get
Parameters:
  resource_type: "database_snapshot_object"
  resource_id: "<snapshot_object_id>"

Step 4: Default authoring instance

Each project has a default authoring instance - the one used when generating migration drafts. Read it:

Call MCP tool: harness:harness_get
Parameters:
  resource_type: "database_default_authoring_instance"
  org_id: "<org>"
  project_id: "<project>"

(Singleton - no resource_id needed.)

Step 5: LLM authoring pipeline

Get the LLM authoring pipeline configuration:

Call MCP tool: harness:harness_get
Parameters:
  resource_type: "database_llm_authoring_pipeline"
  org_id: "<org>"
  project_id: "<project>"

Trigger an LLM authoring run (executes a Liquibase changeset against an authoring instance and records the result on a conversation). Required body fields: schema_id, instance_id, conversation_id, changeset (Liquibase changeset YAML/XML/JSON string).

The intent-to-changeset translation happens client-side (or in the calling skill) before this call. This API takes the produced changeset directly.

Call MCP tool: harness:harness_create
Parameters:
  resource_type: "database_execute_llm_authoring_pipeline"
  org_id: "<org>"
  project_id: "<project>"
  body:
    schema_id: "<dbschema_id>"
    instance_id: "<instance_id>"
    conversation_id: "<conversation_uuid>"
    changeset: |
      databaseChangeLog:
        - changeSet:
            id: add-last-login-at
            author: dbops
            changes:
              - addColumn:
                  tableName: users
                  columns:
                    - column:
                        name: last_login_at
                        type: TIMESTAMP
                        defaultValueComputed: NOW()

The response references the executed migration draft you can review and commit. Use harness:harness_get database_llm_authoring_pipeline to inspect the conversation history and retrieve generated changesets.

Examples

  • "What database schemas do we have?" → harness:harness_list database_schema
  • "Which engine is the orders schema using?" → list instances → get instance → harness:harness_get connector → inspect JDBC URL
  • "Snapshot diff for the orders schema" → harness:harness_list database_snapshot_object filtered by dbschema_id, then compare two snapshots
  • "Draft a migration to add an index on users.email" → produce a Liquibase changeset client-side, then harness:harness_create database_execute_llm_authoring_pipeline with schema_id, instance_id, conversation_id, and changeset

Related skills

Prerequisites (skills typically run before this one):

Composes with (skills commonly invoked together):

Follow-ups (skills commonly chained after this one):

Performance Notes

  • Engine resolution requires two hops (instance → connector). Cache the connector once you've resolved it.
  • Snapshot listing can be large for active schemas - narrow with dbschema_id.

Troubleshooting

  • "engine not on schema" - by design. Look on the connector behind the instance, not on the schema.
  • LLM authoring fails - confirm the project has a default authoring instance set; harness:harness_get database_default_authoring_instance returns nothing if not configured.
  • Schema migration_type vs script style mismatch - your body.style must match the schema's migration_type. Liquibase schemas accept liquibase-xml/yaml/json; Flyway schemas accept flyway-sql.

Keep looking

Skills are one crate of 627,801. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.