Declare a project's primary harness or sandbox provider.
Creates a project_resources row of kind harness or sandbox-provider for this project. Project-admin write; a signed-in caller with no project admin access gets 403, a machine credential naming a project outside its org (or one that does not exist) gets 404, and a second write for the same (project, kind, role) gets 409.
AuthorizationBearer <rsk_live_*>Rensei API key presented as Authorization: Bearer rsk_live_. Required API-key scopes are recorded per operation in x-rensei-required-scopes.
projectId*stringThe project id.
application/json- body
kind*stringThe resource kind to declare (harness or sandbox-provider).
"harness""sandbox-provider"role?stringRole tag for the resource. Defaults to primary.
^[a-z0-9][a-z0-9._-]*$1 <= length <= 64name*stringDisplay name for the resource.
1 <= length <= 200config*Kind-specific resource config payload.
The created project resource.
application/json- response
resource*The created project resource row.
curl -X POST 'https://app.rensei.ai/api/projects/string/resources' \ -H 'Content-Type: application/json' \ -d '{ "kind": "harness", "name": "string", "config": { "property1": null, "property2": null }}'{ "resource": { "id": "string", "kind": "string", "role": "string", "name": "string", "config": { "property1": null, "property2": null }, "property1": null, "property2": null }}List a project's resource palette, grouped by kind.
Returns the project's unified resource palette grouped by kind (repo, tracker, ...), optionally filtered to a single ?kind. Bearer-reachable read scoped to project-viewer access; a signed-in caller with no project access or a cross-tenant project gets 403, and a machine credential naming a project outside its org (or one that does not exist) gets 404.
Platform-wide anonymised aggregate statistics
Returns whole-platform (not org-scoped) anonymised aggregate metrics - e.g. top work types, provider distribution, phase cycle-time distributions. Results are k-anonymised (rows with fewer than `kAnonymityFloor` samples are suppressed). Auth: `rsk_` bearer, user JWT, or session cookie. Not unauthenticated despite the `/api/public` prefix.