SlimSlim/Project

Delete a child project

  • Sandbox: available
  • Staging: available
  • Production: unknown
DELETE
/v1/slim/project/child/{subProjectId}

Deletes an empty direct child project of your current project, including the setup Ovok created with it. Use it to remove a child project that is no longer needed.

Auth: Bearer token for a project admin. No other role passes. Scope: subProjectId must be a direct child of the caller's project (from the token).

Behaviour

  • The child must be empty: no Patient, Device or Location, and no child projects of its own. Otherwise the request is refused with 409 and nothing is changed. The 409 body has error: "project_not_empty", a counts object per resource type and the childProjectIds.
  • On success Ovok unlinks the child from your project, deletes its access policies, practitioners, memberships, threshold plan, client applications, top-level organizations and tenant code, deletes the project, then revokes its Signals tenant.
  • User accounts are never deleted: a user can belong to other projects. Audit records (Provenance, AuditEvent) are kept.
  • Two deletes of the same project cannot run at once: the second gets 409.
  • The delete is safe to retry. If the Signals revoke fails, the project is already deleted and the request answers 502. Send the same request again to finish it.
  • Returns { "success": true }.

Example

curl -X DELETE 'https://api.sandbox.ovok.com/v1/slim/project/child/c3499c27-2973-0a7f-807e-fb8676a92dcb' \  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE3NjcyNjg4MDAsImV4cCI6MTc2NzI3MjQwMH0.Ql3B_ztDvctlyZ2z0vp4sl3ExXRQGkzmxdmTAqxNzZk'

Authorization

bearer
headerAuthorizationBearer <JWT>

Path Parameters

subProjectId*string
Length1 <= length

Response Body

The sub tenant was deleted successfully.

application/json
  1. response
success*boolean

Always true.

Example Request
curl -X DELETE 'https://api.sandbox.ovok.com/v1/slim/project/child/string'
Example Response
{  "success": true}

List child projects with device counts GET

Returns your current project together with its parent project and its direct child projects, each with its device count. Use it for a project switcher or hierarchy view that shows fleet size. **Auth:** Bearer token for a practitioner, project admin or System Owner session. The caller's access policy must grant `AccessPolicy:read` (a project admin who holds no access policy skips this check). **Scope:** The caller's project (from the token). ## Behaviour - Same lists as `GET /v1/slim/project/child`: `currentProject`, `parentProject` (`null` when there is none) and every direct child in `childProjects`. Grandchildren and children whose project no longer exists are left out. - Every project also carries `deviceCount`: the number of `Device` resources in that project. - `settings.timeZone` defaults to `Europe/Berlin`; `settings.trendsPeriod` defaults to `start: "09:00:00"` and `durationSeconds: 86400`. ## Example ```bash curl -X GET 'https://api.sandbox.ovok.com/v2/slim/project/child' \ -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE3NjcyNjg4MDAsImV4cCI6MTc2NzI3MjQwMH0.Ql3B_ztDvctlyZ2z0vp4sl3ExXRQGkzmxdmTAqxNzZk' ```

List project users GET

Lists the practitioner memberships of a given project: your own project or one of its direct child projects. Use it to manage the team of a child project from its parent. **Auth:** Bearer token for a practitioner, project admin or System Owner session. The caller's access policy must grant `Practitioner:read` (a project admin who holds no access policy skips this check). The session must carry a project. **Scope:** The project in the path. It must be the caller's project (from the token) or a direct child of it. Grandchildren are not reachable. ## Behaviour - The project is read first, so an unknown or out-of-scope `id` fails before any membership is searched. - Rows, filters, sorting, paging and `status` work exactly as in `GET /v1/slim/project/users`: one row per `Practitioner` membership with a user and a profile, `search` is fuzzy over profile, user and access policy names, `count` is 1 to 100 (default `20`). - Answers are cached for up to about a minute. ## Example ```bash curl -X GET 'https://api.sandbox.ovok.com/v1/slim/project/c3499c27-2973-0a7f-807e-fb8676a92dcb/users?count=50' \ -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE3NjcyNjg4MDAsImV4cCI6MTc2NzI3MjQwMH0.Ql3B_ztDvctlyZ2z0vp4sl3ExXRQGkzmxdmTAqxNzZk' ```