Delete a child project
- Sandbox: available
- Staging: available
- Production: unknown
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,DeviceorLocation, and no child projects of its own. Otherwise the request is refused with 409 and nothing is changed. The 409 body haserror: "project_not_empty", acountsobject per resource type and thechildProjectIds. - 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'bearerAuthorizationBearer <JWT>subProjectId*string1 <= lengthThe sub tenant was deleted successfully.
application/json- response
success*booleanAlways true.
curl -X DELETE 'https://api.sandbox.ovok.com/v1/slim/project/child/string'{ "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' ```