@xemahq/app-platform-api-client 0.3.11 → 0.3.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/dist/custom-fetch.d.ts +22 -0
  2. package/dist/custom-fetch.js +27 -0
  3. package/dist/endpoints/delegated-session-keys/delegated-session-keys.d.ts +5 -0
  4. package/dist/endpoints/delegated-session-keys/delegated-session-keys.js +23 -0
  5. package/dist/endpoints/project-apps/project-apps.d.ts +29 -4
  6. package/dist/endpoints/project-apps/project-apps.js +102 -6
  7. package/dist/index.d.ts +1 -0
  8. package/dist/index.js +1 -0
  9. package/dist/models/anonAuthDto.d.ts +6 -2
  10. package/dist/models/anonAuthResultDto.d.ts +2 -0
  11. package/dist/models/appReleaseActionDto.d.ts +9 -0
  12. package/dist/models/appReleaseDto.d.ts +21 -10
  13. package/dist/models/{audiencePolicyDtoRateLimitPerHourPerSubject.d.ts → appReleaseDtoCompatibilityEvidence.d.ts} +2 -5
  14. package/dist/models/{updateAudiencePolicyDtoRateLimitPerHourPerSubject.d.ts → appReleaseDtoDependenciesItem.d.ts} +2 -5
  15. package/dist/models/appReleaseDtoDependenciesItem.js +7 -0
  16. package/dist/models/appReleaseDtoProvenanceEvidence.d.ts +8 -0
  17. package/dist/models/appReleaseDtoProvenanceEvidence.js +7 -0
  18. package/dist/models/appReleaseDtoRelease.d.ts +11 -0
  19. package/dist/models/appReleaseDtoRelease.js +7 -0
  20. package/dist/models/appReleaseDtoReleasePolicyEvidence.d.ts +8 -0
  21. package/dist/models/appReleaseDtoReleasePolicyEvidence.js +7 -0
  22. package/dist/models/appReleaseDtoSignatureEvidence.d.ts +8 -0
  23. package/dist/models/appReleaseDtoSignatureEvidence.js +7 -0
  24. package/dist/models/appReleaseHistoryDto.d.ts +21 -0
  25. package/dist/models/appReleaseHistoryDtoDataArrayEnvelope.d.ts +9 -0
  26. package/dist/models/appReleaseHistoryDtoDataArrayEnvelope.js +2 -0
  27. package/dist/models/appReleaseHistoryDtoOperation.d.ts +11 -0
  28. package/dist/models/appReleaseHistoryDtoOperation.js +13 -0
  29. package/dist/models/appReleaseHistoryDtoTarget.d.ts +8 -0
  30. package/dist/models/appReleaseHistoryDtoTarget.js +7 -0
  31. package/dist/models/audiencePolicyDto.d.ts +4 -3
  32. package/dist/models/biomeInstallDto.d.ts +0 -2
  33. package/dist/models/createAudiencePolicyDto.d.ts +3 -1
  34. package/dist/models/createPortalLaunchEntryDto.d.ts +21 -0
  35. package/dist/models/createPortalLaunchEntryDto.js +2 -0
  36. package/dist/models/delegatedSessionActorDto.d.ts +12 -0
  37. package/dist/models/delegatedSessionActorDto.js +2 -0
  38. package/dist/models/exactRevisionPinDto.d.ts +13 -0
  39. package/dist/models/exactRevisionPinDto.js +7 -0
  40. package/dist/models/exactRevisionSelectorDto.d.ts +13 -0
  41. package/dist/models/exactRevisionSelectorDto.js +2 -0
  42. package/dist/models/exactRevisionSelectorDtoKind.d.ts +9 -0
  43. package/dist/models/exactRevisionSelectorDtoKind.js +11 -0
  44. package/dist/models/index.d.ts +27 -4
  45. package/dist/models/index.js +27 -4
  46. package/dist/models/installPortalBiomeDto.d.ts +0 -2
  47. package/dist/models/oidcAuthDto.d.ts +6 -2
  48. package/dist/models/oidcAuthResultDto.d.ts +2 -0
  49. package/dist/models/portalLaunchEntriesControllerRemoveParams.d.ts +12 -0
  50. package/dist/models/portalLaunchEntriesControllerRemoveParams.js +7 -0
  51. package/dist/models/portalLaunchEntryDto.d.ts +19 -0
  52. package/dist/models/portalLaunchEntryDto.js +2 -0
  53. package/dist/models/portalLaunchEntryDtoDataArrayEnvelope.d.ts +9 -0
  54. package/dist/models/portalLaunchEntryDtoDataArrayEnvelope.js +2 -0
  55. package/dist/models/portalLaunchEntryDtoDataEnvelope.d.ts +9 -0
  56. package/dist/models/portalLaunchEntryDtoDataEnvelope.js +2 -0
  57. package/dist/models/portalLaunchPresentationDto.d.ts +13 -0
  58. package/dist/models/portalLaunchPresentationDto.js +7 -0
  59. package/dist/models/releaseChannelRevisionSelectorDto.d.ts +11 -0
  60. package/dist/models/releaseChannelRevisionSelectorDto.js +2 -0
  61. package/dist/models/releaseChannelRevisionSelectorDtoKind.d.ts +9 -0
  62. package/dist/models/releaseChannelRevisionSelectorDtoKind.js +11 -0
  63. package/dist/models/requestMagicLinkDto.d.ts +4 -2
  64. package/dist/models/resolvedPortalLaunchDto.d.ts +9 -0
  65. package/dist/models/resolvedPortalLaunchDto.js +2 -0
  66. package/dist/models/resolvedPortalLaunchDtoDataEnvelope.d.ts +9 -0
  67. package/dist/models/resolvedPortalLaunchDtoDataEnvelope.js +2 -0
  68. package/dist/models/revisionTargetDto.d.ts +14 -0
  69. package/dist/models/revisionTargetDto.js +2 -0
  70. package/dist/models/updateAudiencePolicyDto.d.ts +2 -3
  71. package/dist/models/updatePortalLaunchEntryDto.d.ts +26 -0
  72. package/dist/models/updatePortalLaunchEntryDto.js +2 -0
  73. package/dist/models/verifyDelegatedSessionResponseDto.d.ts +2 -1
  74. package/dist/models/verifyMagicLinkResultDto.d.ts +2 -0
  75. package/package.json +2 -2
  76. package/dist/models/appReleaseDtoDataArrayEnvelope.d.ts +0 -9
  77. package/dist/models/appReleaseState.d.ts +0 -14
  78. package/dist/models/appReleaseState.js +0 -16
  79. /package/dist/models/{audiencePolicyDtoRateLimitPerHourPerSubject.js → appReleaseActionDto.js} +0 -0
  80. /package/dist/models/{updateAudiencePolicyDtoRateLimitPerHourPerSubject.js → appReleaseDtoCompatibilityEvidence.js} +0 -0
  81. /package/dist/models/{appReleaseDtoDataArrayEnvelope.js → appReleaseHistoryDto.js} +0 -0
@@ -47,6 +47,28 @@ export interface ClientConfig {
47
47
  getAuthToken?: () => Promise<string>;
48
48
  /** Optional callback returning headers to inject on every request. Per-call headers take precedence. */
49
49
  getHeaders?: () => Record<string, string> | Promise<Record<string, string>>;
50
+ /**
51
+ * Optional resolver for the CORRELATION ID of the request being made — the
52
+ * handle that ties one causal chain together across every service hop.
53
+ *
54
+ * WHY IT IS A CALLBACK AND NOT A VALUE. `ClientConfig` is process-global
55
+ * (`configureClient` is called once at wiring time), and a correlation id is
56
+ * per-request. This is invoked INSIDE the request, so a server can point it
57
+ * at whatever carries its ambient request context and get the CURRENT id
58
+ * rather than the one that happened to be live at boot.
59
+ *
60
+ * WHY THE TRANSPORT DOES NOT MINT ONE. Returning `undefined` sends no header,
61
+ * and the receiving service's `RequestContextMiddleware` mints its own — a
62
+ * new trace, which is honest. A transport that minted per call would produce
63
+ * a FRESH id on every hop while looking like propagation, which is strictly
64
+ * worse than none: every row would carry a correlation id and no two rows
65
+ * that belong together would share one. That is the exact defect this exists
66
+ * to fix, so the transport must not reproduce it one layer down.
67
+ *
68
+ * A caller-supplied `X-Correlation-Id` header always wins, and so does one
69
+ * from `getHeaders`.
70
+ */
71
+ getCorrelationId?: () => string | undefined | Promise<string | undefined>;
50
72
  /**
51
73
  * Optional callback invoked on a 401 before ONE re-attempt. Supplying it is
52
74
  * what opts this client into that re-attempt; without it a 401 comes back to
@@ -89,6 +89,16 @@ function getClientConfig() {
89
89
  */
90
90
  /** The only statuses that state the request was NOT processed. See above. */
91
91
  const RETRYABLE_STATUSES = [429, 503];
92
+ /**
93
+ * The platform's correlation header, spelled once.
94
+ *
95
+ * Value-identical to what `RequestContextMiddleware` reads in
96
+ * `@xemahq/platform-common`. It is a literal here rather than an import
97
+ * because this file has ZERO imports on purpose: it ships byte-identical into
98
+ * browser-target clients as well as server-target ones, and a dependency on a
99
+ * NestJS-peer package would follow it into every one of them.
100
+ */
101
+ const CORRELATION_ID_HEADER = 'X-Correlation-Id';
92
102
  /** Backoff floor, doubling per attempt up to {@link MAX_BACKOFF_MS}. */
93
103
  const BASE_BACKOFF_MS = 1000;
94
104
  /** Ceiling on a single backoff, however many attempts have elapsed. */
@@ -104,6 +114,23 @@ async function buildHeaders(config, callerHeaders) {
104
114
  }
105
115
  }
106
116
  }
117
+ // Correlation id (caller and global headers still take precedence).
118
+ //
119
+ // Without this, every server-to-server hop through a generated client started
120
+ // a NEW trace: the id is read-or-minted per hop by the receiving service's
121
+ // RequestContextMiddleware, and nothing carried it outbound — so an audit
122
+ // journal could record a whole causal chain and offer no way to join it back
123
+ // together.
124
+ //
125
+ // Absent resolver, or a resolver that answers `undefined`: NO header. The
126
+ // receiver mints and a new trace begins, which is the truthful outcome when
127
+ // there is nothing to continue.
128
+ if (config.getCorrelationId && !headers.has(CORRELATION_ID_HEADER)) {
129
+ const correlationId = await Promise.resolve(config.getCorrelationId());
130
+ if (correlationId) {
131
+ headers.set(CORRELATION_ID_HEADER, correlationId);
132
+ }
133
+ }
107
134
  // Auth token (caller or global headers take precedence)
108
135
  if (config.getAuthToken && !headers.has('Authorization')) {
109
136
  const token = await config.getAuthToken();
@@ -0,0 +1,5 @@
1
+ export declare const getDelegatedSessionJwksControllerJwksUrl: () => string;
2
+ /**
3
+ * @summary Public signing keys for delegated-session JWTs. Contains the ACTIVE key plus any key rotated out but still inside its publication window.
4
+ */
5
+ export declare const delegatedSessionJwksControllerJwks: (options?: RequestInit) => Promise<void>;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.delegatedSessionJwksControllerJwks = exports.getDelegatedSessionJwksControllerJwksUrl = void 0;
4
+ /**
5
+ * Generated by @xemahq/api-client-generator — do not edit manually.
6
+ * App Runtime API
7
+ * OpenAPI spec version: 0.1.2
8
+ */
9
+ const custom_fetch_1 = require("../../custom-fetch");
10
+ const getDelegatedSessionJwksControllerJwksUrl = () => {
11
+ return `/public/.well-known/delegated-session-jwks.json`;
12
+ };
13
+ exports.getDelegatedSessionJwksControllerJwksUrl = getDelegatedSessionJwksControllerJwksUrl;
14
+ /**
15
+ * @summary Public signing keys for delegated-session JWTs. Contains the ACTIVE key plus any key rotated out but still inside its publication window.
16
+ */
17
+ const delegatedSessionJwksControllerJwks = async (options) => {
18
+ return (0, custom_fetch_1.customFetch)((0, exports.getDelegatedSessionJwksControllerJwksUrl)(), {
19
+ ...options,
20
+ method: 'GET'
21
+ });
22
+ };
23
+ exports.delegatedSessionJwksControllerJwks = delegatedSessionJwksControllerJwks;
@@ -3,7 +3,7 @@
3
3
  * App Runtime API
4
4
  * OpenAPI spec version: 0.1.2
5
5
  */
6
- import type { AppClientDtoDataArrayEnvelope, AppClientDtoDataEnvelope, AppDtoDataArrayEnvelope, AppDtoDataEnvelope, AppDtoPaginatedEnvelope, AppReleaseDtoDataArrayEnvelope, AppReleaseDtoDataEnvelope, AudiencePolicyDtoDataArrayEnvelope, AudiencePolicyDtoDataEnvelope, CreateAppClientDto, CreateAudiencePolicyDto, CreatePortalDto, CreateProjectAppDto, CreatedAppClientDtoDataEnvelope, InstallPortalBiomeDto, PortalDetailDtoDataEnvelope, PortalsControllerListParams, ProjectAppsControllerListParams, UnarchivePortalDto, UpdateAudiencePolicyDto, UpdatePortalDto } from '../../models';
6
+ import type { AppClientDtoDataArrayEnvelope, AppClientDtoDataEnvelope, AppDtoDataArrayEnvelope, AppDtoDataEnvelope, AppDtoPaginatedEnvelope, AppReleaseActionDto, AppReleaseDtoDataEnvelope, AppReleaseHistoryDtoDataArrayEnvelope, AudiencePolicyDtoDataArrayEnvelope, AudiencePolicyDtoDataEnvelope, CreateAppClientDto, CreateAudiencePolicyDto, CreatePortalDto, CreatePortalLaunchEntryDto, CreateProjectAppDto, CreatedAppClientDtoDataEnvelope, InstallPortalBiomeDto, PortalDetailDtoDataEnvelope, PortalLaunchEntriesControllerRemoveParams, PortalLaunchEntryDtoDataArrayEnvelope, PortalLaunchEntryDtoDataEnvelope, PortalsControllerListParams, ProjectAppsControllerListParams, ResolvedPortalLaunchDtoDataEnvelope, UnarchivePortalDto, UpdateAudiencePolicyDto, UpdatePortalDto, UpdatePortalLaunchEntryDto } from '../../models';
7
7
  export declare const getProjectAppsControllerCreateUrl: () => string;
8
8
  /**
9
9
  * @summary Create an App in the caller org + named project.
@@ -43,12 +43,12 @@ export declare const getProjectAppReleasesControllerListHistoryUrl: (appId: stri
43
43
  /**
44
44
  * @summary List immutable App Platform release history newest-first.
45
45
  */
46
- export declare const projectAppReleasesControllerListHistory: (appId: string, options?: RequestInit) => Promise<AppReleaseDtoDataArrayEnvelope>;
47
- export declare const getProjectAppReleasesControllerRollbackUrl: (appId: string, releaseId: string) => string;
46
+ export declare const projectAppReleasesControllerListHistory: (appId: string, options?: RequestInit) => Promise<AppReleaseHistoryDtoDataArrayEnvelope>;
47
+ export declare const getProjectAppReleasesControllerRollbackUrl: (appId: string, releaseSetId: string) => string;
48
48
  /**
49
49
  * @summary Atomically roll back Live to a retained release (org admin only).
50
50
  */
51
- export declare const projectAppReleasesControllerRollback: (appId: string, releaseId: string, options?: RequestInit) => Promise<AppReleaseDtoDataEnvelope>;
51
+ export declare const projectAppReleasesControllerRollback: (appId: string, releaseSetId: string, appReleaseActionDto: AppReleaseActionDto, options?: RequestInit) => Promise<AppReleaseDtoDataEnvelope>;
52
52
  export declare const getProjectAudiencePoliciesControllerCreateUrl: (appId: string) => string;
53
53
  /**
54
54
  * @summary Create an AudiencePolicy on an App.
@@ -124,3 +124,28 @@ export declare const getPortalsControllerRefreshLockfileUrl: (id: string) => str
124
124
  * @summary Refresh a portal lockfile (portal-admin only). Re-pins kernel + installed biomes via the kernel Lockfile Resolver. Returns 422 LOCKFILE_RESOLVER_FAILED on any unsatisfiable constraint, malformed ref, or unreachable upstream.
125
125
  */
126
126
  export declare const portalsControllerRefreshLockfile: (id: string, options?: RequestInit) => Promise<AppDtoDataEnvelope>;
127
+ export declare const getPortalLaunchEntriesControllerListUrl: (portalId: string) => string;
128
+ /**
129
+ * @summary List authored LaunchDefinition targets for a visible portal.
130
+ */
131
+ export declare const portalLaunchEntriesControllerList: (portalId: string, options?: RequestInit) => Promise<PortalLaunchEntryDtoDataArrayEnvelope>;
132
+ export declare const getPortalLaunchEntriesControllerCreateUrl: (portalId: string) => string;
133
+ /**
134
+ * @summary Create a Portal-owned tile with one RevisionTarget.
135
+ */
136
+ export declare const portalLaunchEntriesControllerCreate: (portalId: string, createPortalLaunchEntryDto: CreatePortalLaunchEntryDto, options?: RequestInit) => Promise<PortalLaunchEntryDtoDataEnvelope>;
137
+ export declare const getPortalLaunchEntriesControllerUpdateUrl: (portalId: string, entryId: string) => string;
138
+ /**
139
+ * @summary CAS-update a Portal-owned tile or its RevisionTarget.
140
+ */
141
+ export declare const portalLaunchEntriesControllerUpdate: (portalId: string, entryId: string, updatePortalLaunchEntryDto: UpdatePortalLaunchEntryDto, options?: RequestInit) => Promise<PortalLaunchEntryDtoDataEnvelope>;
142
+ export declare const getPortalLaunchEntriesControllerRemoveUrl: (portalId: string, entryId: string, params: PortalLaunchEntriesControllerRemoveParams) => string;
143
+ /**
144
+ * @summary CAS-delete a Portal-owned launch tile.
145
+ */
146
+ export declare const portalLaunchEntriesControllerRemove: (portalId: string, entryId: string, params: PortalLaunchEntriesControllerRemoveParams, options?: RequestInit) => Promise<void>;
147
+ export declare const getPortalLaunchEntriesControllerResolveUrl: (portalId: string, entryId: string) => string;
148
+ /**
149
+ * @summary Resolve one Portal target to an exact verified LaunchDefinition pin.
150
+ */
151
+ export declare const portalLaunchEntriesControllerResolve: (portalId: string, entryId: string, options?: RequestInit) => Promise<ResolvedPortalLaunchDtoDataEnvelope>;
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.portalsControllerRefreshLockfile = exports.getPortalsControllerRefreshLockfileUrl = exports.portalsControllerUninstallBiome = exports.getPortalsControllerUninstallBiomeUrl = exports.portalsControllerInstallBiome = exports.getPortalsControllerInstallBiomeUrl = exports.portalsControllerReadopt = exports.getPortalsControllerReadoptUrl = exports.portalsControllerUnarchive = exports.getPortalsControllerUnarchiveUrl = exports.portalsControllerArchive = exports.getPortalsControllerArchiveUrl = exports.portalsControllerRemove = exports.getPortalsControllerRemoveUrl = exports.portalsControllerUpdate = exports.getPortalsControllerUpdateUrl = exports.portalsControllerGetOne = exports.getPortalsControllerGetOneUrl = exports.portalsControllerCreate = exports.getPortalsControllerCreateUrl = exports.portalsControllerList = exports.getPortalsControllerListUrl = exports.projectAudiencePoliciesControllerDelete = exports.getProjectAudiencePoliciesControllerDeleteUrl = exports.projectAudiencePoliciesControllerUpdate = exports.getProjectAudiencePoliciesControllerUpdateUrl = exports.projectAudiencePoliciesControllerList = exports.getProjectAudiencePoliciesControllerListUrl = exports.projectAudiencePoliciesControllerCreate = exports.getProjectAudiencePoliciesControllerCreateUrl = exports.projectAppReleasesControllerRollback = exports.getProjectAppReleasesControllerRollbackUrl = exports.projectAppReleasesControllerListHistory = exports.getProjectAppReleasesControllerListHistoryUrl = exports.projectAppReleasesControllerGetLive = exports.getProjectAppReleasesControllerGetLiveUrl = exports.projectAppClientsControllerRevoke = exports.getProjectAppClientsControllerRevokeUrl = exports.projectAppClientsControllerList = exports.getProjectAppClientsControllerListUrl = exports.projectAppClientsControllerCreate = exports.getProjectAppClientsControllerCreateUrl = exports.projectAppsControllerGetById = exports.getProjectAppsControllerGetByIdUrl = exports.projectAppsControllerList = exports.getProjectAppsControllerListUrl = exports.projectAppsControllerCreate = exports.getProjectAppsControllerCreateUrl = void 0;
3
+ exports.portalLaunchEntriesControllerList = exports.getPortalLaunchEntriesControllerListUrl = exports.portalsControllerRefreshLockfile = exports.getPortalsControllerRefreshLockfileUrl = exports.portalsControllerUninstallBiome = exports.getPortalsControllerUninstallBiomeUrl = exports.portalsControllerInstallBiome = exports.getPortalsControllerInstallBiomeUrl = exports.portalsControllerReadopt = exports.getPortalsControllerReadoptUrl = exports.portalsControllerUnarchive = exports.getPortalsControllerUnarchiveUrl = exports.portalsControllerArchive = exports.getPortalsControllerArchiveUrl = exports.portalsControllerRemove = exports.getPortalsControllerRemoveUrl = exports.portalsControllerUpdate = exports.getPortalsControllerUpdateUrl = exports.portalsControllerGetOne = exports.getPortalsControllerGetOneUrl = exports.portalsControllerCreate = exports.getPortalsControllerCreateUrl = exports.portalsControllerList = exports.getPortalsControllerListUrl = exports.projectAudiencePoliciesControllerDelete = exports.getProjectAudiencePoliciesControllerDeleteUrl = exports.projectAudiencePoliciesControllerUpdate = exports.getProjectAudiencePoliciesControllerUpdateUrl = exports.projectAudiencePoliciesControllerList = exports.getProjectAudiencePoliciesControllerListUrl = exports.projectAudiencePoliciesControllerCreate = exports.getProjectAudiencePoliciesControllerCreateUrl = exports.projectAppReleasesControllerRollback = exports.getProjectAppReleasesControllerRollbackUrl = exports.projectAppReleasesControllerListHistory = exports.getProjectAppReleasesControllerListHistoryUrl = exports.projectAppReleasesControllerGetLive = exports.getProjectAppReleasesControllerGetLiveUrl = exports.projectAppClientsControllerRevoke = exports.getProjectAppClientsControllerRevokeUrl = exports.projectAppClientsControllerList = exports.getProjectAppClientsControllerListUrl = exports.projectAppClientsControllerCreate = exports.getProjectAppClientsControllerCreateUrl = exports.projectAppsControllerGetById = exports.getProjectAppsControllerGetByIdUrl = exports.projectAppsControllerList = exports.getProjectAppsControllerListUrl = exports.projectAppsControllerCreate = exports.getProjectAppsControllerCreateUrl = void 0;
4
+ exports.portalLaunchEntriesControllerResolve = exports.getPortalLaunchEntriesControllerResolveUrl = exports.portalLaunchEntriesControllerRemove = exports.getPortalLaunchEntriesControllerRemoveUrl = exports.portalLaunchEntriesControllerUpdate = exports.getPortalLaunchEntriesControllerUpdateUrl = exports.portalLaunchEntriesControllerCreate = exports.getPortalLaunchEntriesControllerCreateUrl = void 0;
4
5
  const custom_fetch_1 = require("../../custom-fetch");
5
6
  const getProjectAppsControllerCreateUrl = () => {
6
7
  return `/bff/apps`;
@@ -137,17 +138,19 @@ const projectAppReleasesControllerListHistory = async (appId, options) => {
137
138
  });
138
139
  };
139
140
  exports.projectAppReleasesControllerListHistory = projectAppReleasesControllerListHistory;
140
- const getProjectAppReleasesControllerRollbackUrl = (appId, releaseId) => {
141
- return `/bff/apps/${appId}/releases/${releaseId}/rollback`;
141
+ const getProjectAppReleasesControllerRollbackUrl = (appId, releaseSetId) => {
142
+ return `/bff/apps/${appId}/releases/${releaseSetId}/rollback`;
142
143
  };
143
144
  exports.getProjectAppReleasesControllerRollbackUrl = getProjectAppReleasesControllerRollbackUrl;
144
145
  /**
145
146
  * @summary Atomically roll back Live to a retained release (org admin only).
146
147
  */
147
- const projectAppReleasesControllerRollback = async (appId, releaseId, options) => {
148
- return (0, custom_fetch_1.customFetch)((0, exports.getProjectAppReleasesControllerRollbackUrl)(appId, releaseId), {
148
+ const projectAppReleasesControllerRollback = async (appId, releaseSetId, appReleaseActionDto, options) => {
149
+ return (0, custom_fetch_1.customFetch)((0, exports.getProjectAppReleasesControllerRollbackUrl)(appId, releaseSetId), {
149
150
  ...options,
150
- method: 'POST'
151
+ method: 'POST',
152
+ headers: { 'Content-Type': 'application/json', ...options?.headers },
153
+ body: JSON.stringify(appReleaseActionDto)
151
154
  });
152
155
  };
153
156
  exports.projectAppReleasesControllerRollback = projectAppReleasesControllerRollback;
@@ -392,3 +395,96 @@ const portalsControllerRefreshLockfile = async (id, options) => {
392
395
  });
393
396
  };
394
397
  exports.portalsControllerRefreshLockfile = portalsControllerRefreshLockfile;
398
+ const getPortalLaunchEntriesControllerListUrl = (portalId) => {
399
+ return `/bff/portals/${portalId}/launch-entries`;
400
+ };
401
+ exports.getPortalLaunchEntriesControllerListUrl = getPortalLaunchEntriesControllerListUrl;
402
+ /**
403
+ * @summary List authored LaunchDefinition targets for a visible portal.
404
+ */
405
+ const portalLaunchEntriesControllerList = async (portalId, options) => {
406
+ return (0, custom_fetch_1.customFetch)((0, exports.getPortalLaunchEntriesControllerListUrl)(portalId), {
407
+ ...options,
408
+ method: 'GET'
409
+ });
410
+ };
411
+ exports.portalLaunchEntriesControllerList = portalLaunchEntriesControllerList;
412
+ const getPortalLaunchEntriesControllerCreateUrl = (portalId) => {
413
+ return `/bff/portals/${portalId}/launch-entries`;
414
+ };
415
+ exports.getPortalLaunchEntriesControllerCreateUrl = getPortalLaunchEntriesControllerCreateUrl;
416
+ /**
417
+ * @summary Create a Portal-owned tile with one RevisionTarget.
418
+ */
419
+ const portalLaunchEntriesControllerCreate = async (portalId, createPortalLaunchEntryDto, options) => {
420
+ return (0, custom_fetch_1.customFetch)((0, exports.getPortalLaunchEntriesControllerCreateUrl)(portalId), {
421
+ ...options,
422
+ method: 'POST',
423
+ headers: { 'Content-Type': 'application/json', ...options?.headers },
424
+ body: JSON.stringify(createPortalLaunchEntryDto)
425
+ });
426
+ };
427
+ exports.portalLaunchEntriesControllerCreate = portalLaunchEntriesControllerCreate;
428
+ const getPortalLaunchEntriesControllerUpdateUrl = (portalId, entryId) => {
429
+ return `/bff/portals/${portalId}/launch-entries/${entryId}`;
430
+ };
431
+ exports.getPortalLaunchEntriesControllerUpdateUrl = getPortalLaunchEntriesControllerUpdateUrl;
432
+ /**
433
+ * @summary CAS-update a Portal-owned tile or its RevisionTarget.
434
+ */
435
+ const portalLaunchEntriesControllerUpdate = async (portalId, entryId, updatePortalLaunchEntryDto, options) => {
436
+ return (0, custom_fetch_1.customFetch)((0, exports.getPortalLaunchEntriesControllerUpdateUrl)(portalId, entryId), {
437
+ ...options,
438
+ method: 'PATCH',
439
+ headers: { 'Content-Type': 'application/json', ...options?.headers },
440
+ body: JSON.stringify(updatePortalLaunchEntryDto)
441
+ });
442
+ };
443
+ exports.portalLaunchEntriesControllerUpdate = portalLaunchEntriesControllerUpdate;
444
+ const getPortalLaunchEntriesControllerRemoveUrl = (portalId, entryId, params) => {
445
+ const normalizedParams = new URLSearchParams();
446
+ Object.entries(params || {}).forEach(([key, value]) => {
447
+ if (value === undefined)
448
+ return;
449
+ if (value === null) {
450
+ normalizedParams.append(key, 'null');
451
+ return;
452
+ }
453
+ if (Array.isArray(value)) {
454
+ for (const item of value) {
455
+ if (item === undefined || item === null)
456
+ continue;
457
+ normalizedParams.append(key, item.toString());
458
+ }
459
+ return;
460
+ }
461
+ normalizedParams.append(key, value.toString());
462
+ });
463
+ const stringifiedParams = normalizedParams.toString();
464
+ return stringifiedParams.length > 0 ? `/bff/portals/${portalId}/launch-entries/${entryId}?${stringifiedParams}` : `/bff/portals/${portalId}/launch-entries/${entryId}`;
465
+ };
466
+ exports.getPortalLaunchEntriesControllerRemoveUrl = getPortalLaunchEntriesControllerRemoveUrl;
467
+ /**
468
+ * @summary CAS-delete a Portal-owned launch tile.
469
+ */
470
+ const portalLaunchEntriesControllerRemove = async (portalId, entryId, params, options) => {
471
+ return (0, custom_fetch_1.customFetch)((0, exports.getPortalLaunchEntriesControllerRemoveUrl)(portalId, entryId, params), {
472
+ ...options,
473
+ method: 'DELETE'
474
+ });
475
+ };
476
+ exports.portalLaunchEntriesControllerRemove = portalLaunchEntriesControllerRemove;
477
+ const getPortalLaunchEntriesControllerResolveUrl = (portalId, entryId) => {
478
+ return `/bff/portals/${portalId}/launch-entries/${entryId}/resolve`;
479
+ };
480
+ exports.getPortalLaunchEntriesControllerResolveUrl = getPortalLaunchEntriesControllerResolveUrl;
481
+ /**
482
+ * @summary Resolve one Portal target to an exact verified LaunchDefinition pin.
483
+ */
484
+ const portalLaunchEntriesControllerResolve = async (portalId, entryId, options) => {
485
+ return (0, custom_fetch_1.customFetch)((0, exports.getPortalLaunchEntriesControllerResolveUrl)(portalId, entryId), {
486
+ ...options,
487
+ method: 'POST'
488
+ });
489
+ };
490
+ exports.portalLaunchEntriesControllerResolve = portalLaunchEntriesControllerResolve;
package/dist/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  export { configureClient, getClientConfig, ClientError, customFetch, type ClientConfig, type RetryNotice } from './custom-fetch';
2
2
  export * from './models';
3
+ export * from './endpoints/delegated-session-keys/delegated-session-keys';
3
4
  export * from './endpoints/delegated-sessions/delegated-sessions';
4
5
  export * from './endpoints/project-apps/project-apps';
5
6
  export * from './endpoints/public-ingress/public-ingress';
package/dist/index.js CHANGED
@@ -22,6 +22,7 @@ Object.defineProperty(exports, "getClientConfig", { enumerable: true, get: funct
22
22
  Object.defineProperty(exports, "ClientError", { enumerable: true, get: function () { return custom_fetch_1.ClientError; } });
23
23
  Object.defineProperty(exports, "customFetch", { enumerable: true, get: function () { return custom_fetch_1.customFetch; } });
24
24
  __exportStar(require("./models"), exports);
25
+ __exportStar(require("./endpoints/delegated-session-keys/delegated-session-keys"), exports);
25
26
  __exportStar(require("./endpoints/delegated-sessions/delegated-sessions"), exports);
26
27
  __exportStar(require("./endpoints/project-apps/project-apps"), exports);
27
28
  __exportStar(require("./endpoints/public-ingress/public-ingress"), exports);
@@ -4,8 +4,12 @@
4
4
  * OpenAPI spec version: 0.1.2
5
5
  */
6
6
  export interface AnonAuthDto {
7
+ /** AppClient public identifier. */
8
+ clientId: string;
9
+ /** Plaintext AppClient secret. Required on EVERY external-auth door, the anonymous one included: "anonymous" describes the subject, never the caller — the App owner controls who may open sessions in its name. */
10
+ clientSecret: string;
7
11
  /** Optional client-supplied hint used for logging / debugging purposes. Not used for identity resolution — every call creates a fresh anon subject. */
8
12
  sessionHint?: string;
9
- /** AppClient id issuing this auth request. */
10
- appClientId: string;
13
+ /** Requested ExecutionEnvironment slug. Defaults to the App’s `defaultZone`, and either way must be in the resolved AudiencePolicy.allowedEnvironments[]. */
14
+ requestedZone?: string;
11
15
  }
@@ -12,4 +12,6 @@ export interface AnonAuthResultDto {
12
12
  sessionId: string;
13
13
  /** Subject ref minted into the token. */
14
14
  subjectRef: string;
15
+ /** ExecutionEnvironment slug the session was minted into. */
16
+ environment: string;
15
17
  }
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Generated by @xemahq/api-client-generator — do not edit manually.
3
+ * App Runtime API
4
+ * OpenAPI spec version: 0.1.2
5
+ */
6
+ export interface AppReleaseActionDto {
7
+ expectedChannelVersion: number;
8
+ reason: string;
9
+ }
@@ -5,26 +5,37 @@
5
5
  */
6
6
  import type { AppLockfileDto } from './appLockfileDto.js';
7
7
  import type { AppReleaseDtoAudienceSnapshot } from './appReleaseDtoAudienceSnapshot.js';
8
+ import type { AppReleaseDtoCompatibilityEvidence } from './appReleaseDtoCompatibilityEvidence.js';
8
9
  import type { AppReleaseDtoDefinition } from './appReleaseDtoDefinition.js';
10
+ import type { AppReleaseDtoDependenciesItem } from './appReleaseDtoDependenciesItem.js';
9
11
  import type { AppReleaseDtoPolicySnapshot } from './appReleaseDtoPolicySnapshot.js';
12
+ import type { AppReleaseDtoProvenanceEvidence } from './appReleaseDtoProvenanceEvidence.js';
13
+ import type { AppReleaseDtoRelease } from './appReleaseDtoRelease.js';
14
+ import type { AppReleaseDtoReleasePolicyEvidence } from './appReleaseDtoReleasePolicyEvidence.js';
10
15
  import type { AppReleaseDtoSchemaPlan } from './appReleaseDtoSchemaPlan.js';
16
+ import type { AppReleaseDtoSignatureEvidence } from './appReleaseDtoSignatureEvidence.js';
11
17
  import type { AppReleaseDtoSourceArtifacts } from './appReleaseDtoSourceArtifacts.js';
12
- import type { AppReleaseState } from './appReleaseState.js';
13
18
  export interface AppReleaseDto {
14
19
  id: string;
15
20
  appId: string;
21
+ /** Immutable descriptive revision sequence. */
16
22
  version: number;
17
23
  definition: AppReleaseDtoDefinition;
18
24
  lockfile: AppLockfileDto;
19
25
  schemaPlan: AppReleaseDtoSchemaPlan;
20
- state: AppReleaseState;
21
26
  preparationKey?: string;
22
- manifestHash?: string;
23
- sourceRevisionId?: string;
24
- sourceContentHash?: string;
25
- sourceArtifacts?: AppReleaseDtoSourceArtifacts;
26
- audienceSnapshot?: AppReleaseDtoAudienceSnapshot;
27
- policySnapshot?: AppReleaseDtoPolicySnapshot;
28
- preparedAt?: string;
29
- activatedAt?: string;
27
+ manifestHash: string;
28
+ sourceRevisionId: string;
29
+ sourceContentHash: string;
30
+ sourceArtifacts: AppReleaseDtoSourceArtifacts;
31
+ audienceSnapshot: AppReleaseDtoAudienceSnapshot;
32
+ policySnapshot: AppReleaseDtoPolicySnapshot;
33
+ dependencies: AppReleaseDtoDependenciesItem[];
34
+ signatureEvidence: AppReleaseDtoSignatureEvidence;
35
+ provenanceEvidence: AppReleaseDtoProvenanceEvidence;
36
+ compatibilityEvidence: AppReleaseDtoCompatibilityEvidence;
37
+ releasePolicyEvidence: AppReleaseDtoReleasePolicyEvidence;
38
+ preparedAt: string;
39
+ /** Generic exact resolution metadata, including resolutionId, closureHash, closure, and followed channels. */
40
+ release?: AppReleaseDtoRelease;
30
41
  }
@@ -3,9 +3,6 @@
3
3
  * App Runtime API
4
4
  * OpenAPI spec version: 0.1.2
5
5
  */
6
- /**
7
- * @nullable
8
- */
9
- export type AudiencePolicyDtoRateLimitPerHourPerSubject = {
6
+ export type AppReleaseDtoCompatibilityEvidence = {
10
7
  [key: string]: unknown;
11
- } | null;
8
+ };
@@ -3,9 +3,6 @@
3
3
  * App Runtime API
4
4
  * OpenAPI spec version: 0.1.2
5
5
  */
6
- /**
7
- * @nullable
8
- */
9
- export type UpdateAudiencePolicyDtoRateLimitPerHourPerSubject = {
6
+ export type AppReleaseDtoDependenciesItem = {
10
7
  [key: string]: unknown;
11
- } | null;
8
+ };
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ /**
3
+ * Generated by @xemahq/api-client-generator — do not edit manually.
4
+ * App Runtime API
5
+ * OpenAPI spec version: 0.1.2
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Generated by @xemahq/api-client-generator — do not edit manually.
3
+ * App Runtime API
4
+ * OpenAPI spec version: 0.1.2
5
+ */
6
+ export type AppReleaseDtoProvenanceEvidence = {
7
+ [key: string]: unknown;
8
+ };
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ /**
3
+ * Generated by @xemahq/api-client-generator — do not edit manually.
4
+ * App Runtime API
5
+ * OpenAPI spec version: 0.1.2
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Generated by @xemahq/api-client-generator — do not edit manually.
3
+ * App Runtime API
4
+ * OpenAPI spec version: 0.1.2
5
+ */
6
+ /**
7
+ * Generic exact resolution metadata, including resolutionId, closureHash, closure, and followed channels.
8
+ */
9
+ export type AppReleaseDtoRelease = {
10
+ [key: string]: unknown;
11
+ };
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ /**
3
+ * Generated by @xemahq/api-client-generator — do not edit manually.
4
+ * App Runtime API
5
+ * OpenAPI spec version: 0.1.2
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Generated by @xemahq/api-client-generator — do not edit manually.
3
+ * App Runtime API
4
+ * OpenAPI spec version: 0.1.2
5
+ */
6
+ export type AppReleaseDtoReleasePolicyEvidence = {
7
+ [key: string]: unknown;
8
+ };
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ /**
3
+ * Generated by @xemahq/api-client-generator — do not edit manually.
4
+ * App Runtime API
5
+ * OpenAPI spec version: 0.1.2
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Generated by @xemahq/api-client-generator — do not edit manually.
3
+ * App Runtime API
4
+ * OpenAPI spec version: 0.1.2
5
+ */
6
+ export type AppReleaseDtoSignatureEvidence = {
7
+ [key: string]: unknown;
8
+ };
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ /**
3
+ * Generated by @xemahq/api-client-generator — do not edit manually.
4
+ * App Runtime API
5
+ * OpenAPI spec version: 0.1.2
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Generated by @xemahq/api-client-generator — do not edit manually.
3
+ * App Runtime API
4
+ * OpenAPI spec version: 0.1.2
5
+ */
6
+ import type { AppReleaseHistoryDtoOperation } from './appReleaseHistoryDtoOperation.js';
7
+ import type { AppReleaseHistoryDtoTarget } from './appReleaseHistoryDtoTarget.js';
8
+ export interface AppReleaseHistoryDto {
9
+ releaseSetId: string;
10
+ resolutionId: string;
11
+ closureHash: string;
12
+ operation: AppReleaseHistoryDtoOperation;
13
+ rollbackOfReleaseSetId?: string;
14
+ target: AppReleaseHistoryDtoTarget;
15
+ channel: string;
16
+ channelVersion: number;
17
+ retired: boolean;
18
+ actorClientId: string;
19
+ reason: string;
20
+ createdAt: string;
21
+ }
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Generated by @xemahq/api-client-generator — do not edit manually.
3
+ * App Runtime API
4
+ * OpenAPI spec version: 0.1.2
5
+ */
6
+ import type { AppReleaseHistoryDto } from './appReleaseHistoryDto.js';
7
+ export interface AppReleaseHistoryDtoDataArrayEnvelope {
8
+ data: AppReleaseHistoryDto[];
9
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Generated by @xemahq/api-client-generator — do not edit manually.
3
+ * App Runtime API
4
+ * OpenAPI spec version: 0.1.2
5
+ */
6
+ export type AppReleaseHistoryDtoOperation = typeof AppReleaseHistoryDtoOperation[keyof typeof AppReleaseHistoryDtoOperation];
7
+ export declare const AppReleaseHistoryDtoOperation: {
8
+ readonly promote: "promote";
9
+ readonly rollback: "rollback";
10
+ readonly retire: "retire";
11
+ };
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ /**
3
+ * Generated by @xemahq/api-client-generator — do not edit manually.
4
+ * App Runtime API
5
+ * OpenAPI spec version: 0.1.2
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.AppReleaseHistoryDtoOperation = void 0;
9
+ exports.AppReleaseHistoryDtoOperation = {
10
+ promote: 'promote',
11
+ rollback: 'rollback',
12
+ retire: 'retire',
13
+ };
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Generated by @xemahq/api-client-generator — do not edit manually.
3
+ * App Runtime API
4
+ * OpenAPI spec version: 0.1.2
5
+ */
6
+ export type AppReleaseHistoryDtoTarget = {
7
+ [key: string]: unknown;
8
+ };
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ /**
3
+ * Generated by @xemahq/api-client-generator — do not edit manually.
4
+ * App Runtime API
5
+ * OpenAPI spec version: 0.1.2
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -4,7 +4,6 @@
4
4
  * OpenAPI spec version: 0.1.2
5
5
  */
6
6
  import type { AudienceKind } from './audienceKind.js';
7
- import type { AudiencePolicyDtoRateLimitPerHourPerSubject } from './audiencePolicyDtoRateLimitPerHourPerSubject.js';
8
7
  import type { AudienceUpstreamDto } from './audienceUpstreamDto.js';
9
8
  export interface AudiencePolicyDto {
10
9
  id: string;
@@ -12,8 +11,10 @@ export interface AudiencePolicyDto {
12
11
  kind: AudienceKind;
13
12
  allowedEnvironments: string[];
14
13
  authUpstream?: AudienceUpstreamDto | null;
15
- /** @nullable */
16
- rateLimitPerHourPerSubject?: AudiencePolicyDtoRateLimitPerHourPerSubject;
14
+ /** Session opens per hour for ONE identified external subject. Never null: a null used to mean "no limit", so an audience created without one was uncapped while reading as configured. */
15
+ rateLimitPerHourPerSubject: number;
16
+ /** Session opens per hour for the whole AppClient, across subjects. This is the cap the ANONYMOUS door is measured against — an anon subject is minted fresh on every call, so no per-subject bucket can bound it. */
17
+ rateLimitPerHourPerClient: number;
17
18
  createdAt: string;
18
19
  updatedAt: string;
19
20
  }
@@ -7,8 +7,6 @@ import type { BiomeInstallDtoConfiguration } from './biomeInstallDtoConfiguratio
7
7
  export interface BiomeInstallDto {
8
8
  /** Canonical XemaObjectRef for the biome (e.g. `xema://system/biome/document-buddy`). */
9
9
  biomeRef: string;
10
- /** Semver-range string (`^1.2.0`, `~1.2.0`, `1.2.0`, `latest-compatible`). */
11
- versionConstraint: string;
12
10
  /** Free-form per-install configuration the biome consumes. */
13
11
  configuration?: BiomeInstallDtoConfiguration;
14
12
  }
@@ -10,6 +10,8 @@ export interface CreateAudiencePolicyDto {
10
10
  /** ExecutionEnvironmentRef slugs this audience may invoke. Required. */
11
11
  allowedEnvironments: string[];
12
12
  authUpstream?: AudienceUpstreamDto;
13
- /** Rate cap (calls/hour/subject). */
13
+ /** Session opens per hour for ONE identified external subject. Omitted means the column default, NOT "unlimited" — there is no value that means unlimited. */
14
14
  rateLimitPerHourPerSubject?: number;
15
+ /** Session opens per hour for the whole AppClient, across subjects. This is the cap the ANONYMOUS door is measured against — an anon subject is minted fresh on every call, so no per-subject bucket can bound it. Omitted means the column default, NOT "unlimited". */
16
+ rateLimitPerHourPerClient?: number;
15
17
  }