List managed-service providers
With `team` (needs `team.view`): the team's catalog, the enabled providers offered to the team; one the cluster cannot run (no CNPG operator for PostgreSQL) is listed with `available` false and the reason, so the console can show why. Without `team`: every provider version, disabled ones included (cluster admins only, 403 otherwise). Ordered by display name, then name and version.
openapi/harthelm.yaml at v1.5.0__Host-harthelm_session<token>Browser session of the UI (12 h idle, 7 days absolute). State-changing requests also need the header
Harthelm-CSRF: 1 and a matching Origin.
team?integerThe team whose catalog to list.
int641 <= valuelimit?integerMaximum number of items per page.
1 <= value <= 20050cursor?stringOpaque cursor from next_cursor of the previous page.
length <= 1024A page of providers.
application/json- response
next_cursor?stringAbsent on the last page.
items*array<>curl -X GET 'https://console.example.com/api/v1/providers'{ "next_cursor": "string", "items": [ { "name": "string", "version": "string", "source": "builtin", "enabled": true, "available": true, "unavailable_reason": "string", "teams": [ 1 ], "backend_secret_set": true, "definition": { "schema": "harthelm/provider-v2", "name": "string", "version": "string", "displayName": "string", "description": "string", "category": "string", "author": "string", "icon": "string", "documentationUrl": "string", "maturity": "ga", "onePerTeam": true, "labels": { "property1": "string", "property2": "string" }, "capabilities": { "pause": true, "backup": true, "rotate": true }, "fields": { "config": {}, "secrets": {}, "details": {} }, "connection": { "host": "string", "port": "string", "dsn": "string", "secret": "string" }, "resources": { "property1": { "kind": "cpu-millis", "title": "string", "description": "string", "minimum": 0, "maximum": 0, "readOnly": true, "x-hart-change": "grow-only" }, "property2": { "kind": "cpu-millis", "title": "string", "description": "string", "minimum": 0, "maximum": 0, "readOnly": true, "x-hart-change": "grow-only" } }, "plans": [ { "id": "string", "name": "string", "description": "string", "default": true, "resources": { "property1": 0, "property2": 0 }, "parameters": {} } ], "backend": { "builtin": "string", "rest": { "url": "string", "timeoutSeconds": 0 } } }, "created_at": "2019-08-24T14:15:22Z", "updated_at": "2019-08-24T14:15:22Z" } ]}List the team's managed services
Needs `team.view`. Standalone instances and the ones bound to the team's landscapes (`workspace_id` set; a landscape's `managed` services in `harthelm.yml`), ordered by name. Tombstones (status `deleted`, kept `marketplace.tombstoneDays`, default 7) only with `include_deleted`. Secrets are never returned.
Publish a provider version
Cluster admins only (`platform.admin`). Creates or replaces the version the definition names (format `harthelm/provider-v2`, `schemas/provider.schema.json`; the format of 1.0 is still taken): 201 for a new version, 200 for a replaced one. The definition is checked against the schema and the rules it cannot express (unique plan ids, at most one default plan, every plan sets exactly the resource parameters within their bounds, defaults and enums valid, required names exist, secrets are strings, `connection` names existing properties, only `rest` backends and no `capabilities.backup`): 422 with pointers into `/definition`. Harthelm dumps only the databases of its built-in providers; a REST backend backs up its own instances. A version with instances keeps them; a change that no longer accepts an instance's settings shows as its status `invalid-provider`. 409 `provider-builtin` for the name of a built-in provider (the chart's `marketplace.builtin` values configure those). Audited as `provider.publish`.