Skip to content

Commit ccd58fb

Browse files
chore: version packages [skip ci]
1 parent b108648 commit ccd58fb

4 files changed

Lines changed: 23 additions & 23 deletions

File tree

.changeset/bright-permissions-unlocked.md

Lines changed: 0 additions & 17 deletions
This file was deleted.

.changeset/warm-chefs-divide.md

Lines changed: 0 additions & 5 deletions
This file was deleted.

CHANGELOG.md

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,27 @@
11
# thatopen-services
22

3+
## 0.14.0
4+
5+
### Minor Changes
6+
7+
- b108648: Align the client with the platform's new project-scoped permissions model and split the client surface for apps vs components.
8+
9+
**New: `PlatformClient`.** Extends `EngineServicesClient` with a bearer-only constructor. Use it from apps, frontends, and any caller authenticating with a user JWT. On top of the inherited API-token-compatible surface, `PlatformClient` owns the JWT-only routes `getProject`, `getProjectData`, `checkPermission`, and `checkPermissionBatch` — those hit `ProjectController` on the backend which is guarded by JWT, so they're not reachable from an access token. `EngineServicesClient` remains the right choice for components (API-token auth, local server, WebSocket progress).
10+
11+
The `PlatformClient` constructor accepts either a static JWT string **or a provider function** (`() => string | Promise<string>`) that's called on every request — so Auth0's `getAccessTokenSilently()` and similar refreshing sources can be passed directly and expired tokens never stick. `PlatformClient.fromPlatformContext()` is available as a static factory for apps running inside the platform iframe.
12+
13+
**Project-scoped listings on the main list methods.** `listFiles`, `listFolders`, `listApps`, and `listComponents` now accept an optional `projectId` and forward it to the new public `GET /item?projectId=X` / `GET /item/folder?projectId=X` routes. Per-entity role overrides are applied server-side; callers without project role permission get 403 (not an empty list). Pass `itemType: 'APP' | 'TOOL' | 'FILE'` to switch what comes back.
14+
15+
**Updated permission checks.** `checkPermission` now returns `{ hasPermission, scope }` where `scope` is `'global' | 'project' | 'entity' | 'none'`. New `checkPermissionBatch(checks)` evaluates multiple checks in one round-trip.
16+
17+
**Execution scoping.** `executeComponent` accepts `projectId` as a reserved key on `executionParams`; foreign project ids are rejected by the backend. `listExecutions(componentId, projectId?)` forwards the query param.
18+
19+
**Breaking.** The v1 convenience helpers `listProjectFiles`, `listProjectFolders`, `listProjectApps`, `listProjectComponents` are removed. They pointed at JWT-only `/project/:id/*` routes, which was the wrong target for an API-token client. Replace with `listFiles({ projectId })` / `listFolders({ projectId })` / `listApps({ projectId })` / `listComponents({ projectId })`.
20+
21+
### Patch Changes
22+
23+
- d92f4e9: update @thatopen dependencies to version 3.4.0 across templates
24+
325
## 0.13.1
426

527
### Patch Changes

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"name": "thatopen-services",
33
"description": "Client library and CLI for building BIM apps and cloud components on the That Open Platform",
44
"private": false,
5-
"version": "0.13.1",
5+
"version": "0.14.0",
66
"main": "dist/index.cjs.js",
77
"module": "dist/index.es.js",
88
"types": "dist/index.d.ts",

0 commit comments

Comments
 (0)