@sylphx/management 0.2.0 → 0.2.2
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.
- package/CHANGELOG.md +7 -0
- package/dist/admin.d.ts +28 -1
- package/dist/admin.d.ts.map +1 -1
- package/dist/admin.js +29 -2
- package/dist/adminProjectCredentials.d.ts +39 -0
- package/dist/adminProjectCredentials.d.ts.map +1 -0
- package/dist/adminProjectCredentials.js +29 -0
- package/dist/branchDatabases.d.ts +12 -31
- package/dist/branchDatabases.d.ts.map +1 -1
- package/dist/branchDatabases.js +6 -6
- package/dist/client.d.ts +7 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +4 -2
- package/dist/http.d.ts +21 -0
- package/dist/http.d.ts.map +1 -1
- package/dist/http.js +28 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/organizations.d.ts +3 -2
- package/dist/organizations.d.ts.map +1 -1
- package/dist/organizations.js +4 -0
- package/dist/resources.d.ts +13 -0
- package/dist/resources.d.ts.map +1 -0
- package/dist/resources.js +15 -0
- package/package.json +10 -2
package/CHANGELOG.md
CHANGED
package/dist/admin.d.ts
CHANGED
|
@@ -98,7 +98,7 @@ export declare const retireJwtKey: (client: Client, keyId: string) => Promise<{
|
|
|
98
98
|
/**
|
|
99
99
|
* Trigger a project migration between regions. Phase 4b Matrix-2 gap.
|
|
100
100
|
* Underlying endpoint on the platform API is
|
|
101
|
-
* `POST /
|
|
101
|
+
* `POST /operator/projects/:id/migrate` — the SDK wraps it directly rather
|
|
102
102
|
* than going through `adminProjectsEndpoints` because migration is its
|
|
103
103
|
* own operational concern (drain → cut-over → warm-up).
|
|
104
104
|
*/
|
|
@@ -138,4 +138,31 @@ export declare const updateUserRole: (client: Client, userId: string, body: {
|
|
|
138
138
|
}) => Promise<{
|
|
139
139
|
user: AdminUserView;
|
|
140
140
|
}>;
|
|
141
|
+
/**
|
|
142
|
+
* L-15 (2026-05-02): manually verify a user's email. Super-admin only on the
|
|
143
|
+
* platform tenant. The Management API endpoint exists at
|
|
144
|
+
* `POST /admin/users/users/:userId/verify-email`; the SDK helper was the
|
|
145
|
+
* missing piece blocking operators from validating the new-user E2E flow
|
|
146
|
+
* without (a) a real email inbox or (b) a forbidden direct DB UPDATE.
|
|
147
|
+
*/
|
|
148
|
+
export declare const verifyUserEmail: (client: Client, userId: string) => Promise<{
|
|
149
|
+
readonly id: string;
|
|
150
|
+
readonly email: string;
|
|
151
|
+
}>;
|
|
152
|
+
/**
|
|
153
|
+
* L-15 (2026-05-02): soft-delete a platform user. Super-admin only;
|
|
154
|
+
* cannot delete oneself. Existing sessions are revoked first.
|
|
155
|
+
*/
|
|
156
|
+
export declare const deleteUser: (client: Client, userId: string) => Promise<{
|
|
157
|
+
readonly id: string;
|
|
158
|
+
readonly email: string;
|
|
159
|
+
}>;
|
|
160
|
+
/**
|
|
161
|
+
* L-15 (2026-05-02): revoke ALL sessions for a user (force re-login).
|
|
162
|
+
* Super-admin only.
|
|
163
|
+
*/
|
|
164
|
+
export declare const revokeUserSessions: (client: Client, userId: string) => Promise<{
|
|
165
|
+
readonly userId: string;
|
|
166
|
+
readonly revokedCount: number;
|
|
167
|
+
}>;
|
|
141
168
|
//# sourceMappingURL=admin.d.ts.map
|
package/dist/admin.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../src/admin.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../src/admin.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAUH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAKzC,MAAM,WAAW,YAAY;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;CAC9B;AAED,eAAO,MAAM,gBAAgB,GAC5B,QAAQ,MAAM,EACd,WAAW,MAAM,KACf,OAAO,CAAC;IAAE,MAAM,EAAE,SAAS,YAAY,EAAE,CAAA;CAAE,CAG7C,CAAA;AAED,eAAO,MAAM,aAAa,GACzB,QAAQ,MAAM,EACd,WAAW,MAAM,KACf,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAGhC,CAAA;AAED,eAAO,MAAM,cAAc,GAC1B,QAAQ,MAAM,EACd,WAAW,MAAM,KACf,OAAO,CAAC;IACV,MAAM,EAAE,SAAS;QAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAC/F,CAGA,CAAA;AAED,eAAO,MAAM,mBAAmB,GAC/B,QAAQ,MAAM,EACd,WAAW,MAAM,EACjB,MAAM;IAAE,QAAQ,CAAC,MAAM,EAAE,SAAS;QAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAAE,KACzF,OAAO,CAAC;IAAE,MAAM,EAAE,SAAS,YAAY,EAAE,CAAA;CAAE,CAG7C,CAAA;AAED,eAAO,MAAM,qBAAqB,GACjC,QAAQ,MAAM,EACd,SAAS,MAAM,KACb,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CAG9B,CAAA;AAID,MAAM,WAAW,aAAa;IAC7B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC1C;AAED,eAAO,MAAM,YAAY,GACxB,QAAQ,MAAM,EACd,QAAQ;IAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,KAC/E,OAAO,CAAC;IAAE,IAAI,EAAE,SAAS,aAAa,EAAE,CAAA;CAAE,CAG5C,CAAA;AAED,eAAO,MAAM,gBAAgB,GAC5B,QAAQ,MAAM,KACZ,OAAO,CAAC;IAAE,OAAO,EAAE,SAAS,aAAa,EAAE,CAAA;CAAE,CAG/C,CAAA;AAID,MAAM,WAAW,UAAU;IAC1B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;CAClC;AAED,eAAO,MAAM,eAAe,GAC3B,QAAQ,MAAM,KACZ,OAAO,CAAC;IAAE,WAAW,EAAE,SAAS,UAAU,EAAE,CAAA;CAAE,CAGhD,CAAA;AAED,eAAO,MAAM,gBAAgB,GAC5B,QAAQ,MAAM,EACd,MAAM;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,KAC9E,OAAO,CAAC;IAAE,UAAU,EAAE,UAAU,CAAA;CAAE,CAGpC,CAAA;AAED,eAAO,MAAM,gBAAgB,GAAI,QAAQ,MAAM,EAAE,IAAI,MAAM,KAAG,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CAGzF,CAAA;AAED,eAAO,MAAM,gBAAgB,GAC5B,QAAQ,MAAM,EACd,IAAI,MAAM,KACR,OAAO,CAAC;IAAE,UAAU,EAAE,UAAU,CAAA;CAAE,CAGpC,CAAA;AAID,MAAM,WAAW,MAAM;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,MAAM,EAAE,QAAQ,GAAG,SAAS,CAAA;IACrC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;CACjC;AAED,eAAO,MAAM,WAAW,GAAI,QAAQ,MAAM,KAAG,OAAO,CAAC;IAAE,IAAI,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,CAG/E,CAAA;AAED,eAAO,MAAM,aAAa,GAAI,QAAQ,MAAM,KAAG,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAGxE,CAAA;AAED,eAAO,MAAM,YAAY,GAAI,QAAQ,MAAM,EAAE,OAAO,MAAM,KAAG,OAAO,CAAC;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,CAGnF,CAAA;AAID;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,GAC1B,QAAQ,MAAM,EACd,WAAW,MAAM,EACjB,MAAM;IACL,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,eAAe,GAAG,kBAAkB,CAAA;IACxD,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CACzB,KACC,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CACkD,CAAA;AAEjG;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,GACpC,QAAQ,MAAM,EACd,eAAe,MAAM,KACnB,OAAO,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAGxC,CAAA;AAID,MAAM,WAAW,aAAa;IAC7B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IAClC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;CAC3B;AAED,eAAO,MAAM,SAAS,GAAI,QAAQ,MAAM,KAAG,OAAO,CAAC;IAAE,KAAK,EAAE,SAAS,aAAa,EAAE,CAAA;CAAE,CAGrF,CAAA;AAED,eAAO,MAAM,OAAO,GAAI,QAAQ,MAAM,EAAE,QAAQ,MAAM,KAAG,OAAO,CAAC;IAAE,IAAI,EAAE,aAAa,CAAA;CAAE,CAGvF,CAAA;AAED,eAAO,MAAM,cAAc,GAC1B,QAAQ,MAAM,EACd,QAAQ,MAAM,EACd,MAAM;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,KAC7B,OAAO,CAAC;IAAE,IAAI,EAAE,aAAa,CAAA;CAAE,CAGjC,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,GAC3B,QAAQ,MAAM,EACd,QAAQ,MAAM,KACZ,OAAO,CAAC;IAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAGzD,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,UAAU,GACtB,QAAQ,MAAM,EACd,QAAQ,MAAM,KACZ,OAAO,CAAC;IAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAGzD,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,kBAAkB,GAC9B,QAAQ,MAAM,EACd,QAAQ,MAAM,KACZ,OAAO,CAAC;IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAGpE,CAAA"}
|
package/dist/admin.js
CHANGED
|
@@ -68,11 +68,11 @@ export const retireJwtKey = (client, keyId) => {
|
|
|
68
68
|
/**
|
|
69
69
|
* Trigger a project migration between regions. Phase 4b Matrix-2 gap.
|
|
70
70
|
* Underlying endpoint on the platform API is
|
|
71
|
-
* `POST /
|
|
71
|
+
* `POST /operator/projects/:id/migrate` — the SDK wraps it directly rather
|
|
72
72
|
* than going through `adminProjectsEndpoints` because migration is its
|
|
73
73
|
* own operational concern (drain → cut-over → warm-up).
|
|
74
74
|
*/
|
|
75
|
-
export const migrateProject = (client, projectId, body) => request(client, 'POST', `/
|
|
75
|
+
export const migrateProject = (client, projectId, body) => request(client, 'POST', `/operator/projects/${encodeURIComponent(projectId)}/migrate`, { body });
|
|
76
76
|
/**
|
|
77
77
|
* Regenerate an environment's deploy / API key. Already exposed on
|
|
78
78
|
* `adminProjectsEndpoints.regenerateKey`; surfaced here under the `admin`
|
|
@@ -94,3 +94,30 @@ export const updateUserRole = (client, userId, body) => {
|
|
|
94
94
|
const { method, path } = adminUsersEndpoints.updateRole;
|
|
95
95
|
return request(client, method, interpolatePath(path, { userId }), { body });
|
|
96
96
|
};
|
|
97
|
+
/**
|
|
98
|
+
* L-15 (2026-05-02): manually verify a user's email. Super-admin only on the
|
|
99
|
+
* platform tenant. The Management API endpoint exists at
|
|
100
|
+
* `POST /admin/users/users/:userId/verify-email`; the SDK helper was the
|
|
101
|
+
* missing piece blocking operators from validating the new-user E2E flow
|
|
102
|
+
* without (a) a real email inbox or (b) a forbidden direct DB UPDATE.
|
|
103
|
+
*/
|
|
104
|
+
export const verifyUserEmail = (client, userId) => {
|
|
105
|
+
const { method, path } = adminUsersEndpoints.verifyEmail;
|
|
106
|
+
return request(client, method, interpolatePath(path, { userId }));
|
|
107
|
+
};
|
|
108
|
+
/**
|
|
109
|
+
* L-15 (2026-05-02): soft-delete a platform user. Super-admin only;
|
|
110
|
+
* cannot delete oneself. Existing sessions are revoked first.
|
|
111
|
+
*/
|
|
112
|
+
export const deleteUser = (client, userId) => {
|
|
113
|
+
const { method, path } = adminUsersEndpoints.delete;
|
|
114
|
+
return request(client, method, interpolatePath(path, { userId }));
|
|
115
|
+
};
|
|
116
|
+
/**
|
|
117
|
+
* L-15 (2026-05-02): revoke ALL sessions for a user (force re-login).
|
|
118
|
+
* Super-admin only.
|
|
119
|
+
*/
|
|
120
|
+
export const revokeUserSessions = (client, userId) => {
|
|
121
|
+
const { method, path } = adminUsersEndpoints.revokeSessions;
|
|
122
|
+
return request(client, method, interpolatePath(path, { userId }));
|
|
123
|
+
};
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `@sylphx/management/adminProjectCredentials` — operator BaaS credential rotation.
|
|
3
|
+
*
|
|
4
|
+
* Rotates an environment's `sk_*` / `pk_*` pair and optionally syncs the new
|
|
5
|
+
* `sk_*` into the environment-level `SYLPHX_SECRET_KEY` app secret so the
|
|
6
|
+
* reconciler updates deployed workloads through the normal desired-state path.
|
|
7
|
+
*/
|
|
8
|
+
import type { Client } from './client.js';
|
|
9
|
+
export interface RotateEnvironmentCredentialsInput {
|
|
10
|
+
/** TypeID (`env_*`) of the target environment. */
|
|
11
|
+
readonly environmentId: string;
|
|
12
|
+
/** Audit narrative. Min 3 chars. */
|
|
13
|
+
readonly reason: string;
|
|
14
|
+
/** When true, upsert shared env var `SYLPHX_SECRET_KEY` and queue reconciliation. */
|
|
15
|
+
readonly syncDeploymentSecret?: boolean;
|
|
16
|
+
}
|
|
17
|
+
export interface RotateEnvironmentCredentialsBySlugInput {
|
|
18
|
+
/** Project slug, e.g. `keen-wave-x3m9p2`. */
|
|
19
|
+
readonly projectSlug: string;
|
|
20
|
+
/** Environment display name, e.g. `Production`. */
|
|
21
|
+
readonly environmentName: string;
|
|
22
|
+
/** Audit narrative. Min 3 chars. */
|
|
23
|
+
readonly reason: string;
|
|
24
|
+
/** When true, upsert shared env var `SYLPHX_SECRET_KEY` and queue reconciliation. */
|
|
25
|
+
readonly syncDeploymentSecret?: boolean;
|
|
26
|
+
}
|
|
27
|
+
export interface RotateEnvironmentCredentialsResult {
|
|
28
|
+
readonly environmentId: string;
|
|
29
|
+
readonly envType: 'development' | 'staging' | 'production';
|
|
30
|
+
/** Raw secret key, returned once. Do not log. */
|
|
31
|
+
readonly secretKey: string;
|
|
32
|
+
readonly publicKey: string;
|
|
33
|
+
readonly syncedDeploymentSecret: boolean;
|
|
34
|
+
readonly queued: boolean;
|
|
35
|
+
readonly generation: number;
|
|
36
|
+
}
|
|
37
|
+
export declare const rotateEnvironmentCredentials: (client: Client, input: RotateEnvironmentCredentialsInput) => Promise<RotateEnvironmentCredentialsResult>;
|
|
38
|
+
export declare const rotateEnvironmentCredentialsBySlug: (client: Client, input: RotateEnvironmentCredentialsBySlugInput) => Promise<RotateEnvironmentCredentialsResult>;
|
|
39
|
+
//# sourceMappingURL=adminProjectCredentials.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adminProjectCredentials.d.ts","sourceRoot":"","sources":["../src/adminProjectCredentials.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAGzC,MAAM,WAAW,iCAAiC;IACjD,kDAAkD;IAClD,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAC9B,oCAAoC;IACpC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,qFAAqF;IACrF,QAAQ,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAA;CACvC;AAED,MAAM,WAAW,uCAAuC;IACvD,6CAA6C;IAC7C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,mDAAmD;IACnD,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;IAChC,oCAAoC;IACpC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,qFAAqF;IACrF,QAAQ,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAA;CACvC;AAED,MAAM,WAAW,kCAAkC;IAClD,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,OAAO,EAAE,aAAa,GAAG,SAAS,GAAG,YAAY,CAAA;IAC1D,iDAAiD;IACjD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,sBAAsB,EAAE,OAAO,CAAA;IACxC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;CAC3B;AAED,eAAO,MAAM,4BAA4B,GACxC,QAAQ,MAAM,EACd,OAAO,iCAAiC,KACtC,OAAO,CAAC,kCAAkC,CAa5C,CAAA;AAED,eAAO,MAAM,kCAAkC,GAC9C,QAAQ,MAAM,EACd,OAAO,uCAAuC,KAC5C,OAAO,CAAC,kCAAkC,CAe5C,CAAA"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `@sylphx/management/adminProjectCredentials` — operator BaaS credential rotation.
|
|
3
|
+
*
|
|
4
|
+
* Rotates an environment's `sk_*` / `pk_*` pair and optionally syncs the new
|
|
5
|
+
* `sk_*` into the environment-level `SYLPHX_SECRET_KEY` app secret so the
|
|
6
|
+
* reconciler updates deployed workloads through the normal desired-state path.
|
|
7
|
+
*/
|
|
8
|
+
import { adminProjectsEndpoints } from '@sylphx/contract';
|
|
9
|
+
import { request } from './http.js';
|
|
10
|
+
export const rotateEnvironmentCredentials = (client, input) => {
|
|
11
|
+
const { method, path } = adminProjectsEndpoints.rotateEnvironmentCredentials;
|
|
12
|
+
return request(client, method, path.replace(':environmentId', encodeURIComponent(input.environmentId)), {
|
|
13
|
+
body: {
|
|
14
|
+
reason: input.reason,
|
|
15
|
+
syncDeploymentSecret: input.syncDeploymentSecret ?? false,
|
|
16
|
+
},
|
|
17
|
+
});
|
|
18
|
+
};
|
|
19
|
+
export const rotateEnvironmentCredentialsBySlug = (client, input) => {
|
|
20
|
+
const { method, path } = adminProjectsEndpoints.rotateEnvironmentCredentialsBySlug;
|
|
21
|
+
return request(client, method, path
|
|
22
|
+
.replace(':projectSlug', encodeURIComponent(input.projectSlug))
|
|
23
|
+
.replace(':environmentName', encodeURIComponent(input.environmentName)), {
|
|
24
|
+
body: {
|
|
25
|
+
reason: input.reason,
|
|
26
|
+
syncDeploymentSecret: input.syncDeploymentSecret ?? false,
|
|
27
|
+
},
|
|
28
|
+
});
|
|
29
|
+
};
|
|
@@ -9,40 +9,21 @@
|
|
|
9
9
|
* Mirrors `apps/api/src/server/platform/routes/branch-databases.ts`.
|
|
10
10
|
* Route paths sourced from `@sylphx/contract` (ADR-084).
|
|
11
11
|
*/
|
|
12
|
+
import type { BranchDatabase as ContractBranchDatabase, CreateBranchDatabaseInput as ContractCreateBranchDatabaseInput, DestroyBranchDatabaseResult, ListBranchDatabasesResult } from '@sylphx/contract';
|
|
12
13
|
import type { Client } from './client.js';
|
|
13
|
-
export
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
readonly connectionUrl: string | null;
|
|
20
|
-
readonly createdAt: string;
|
|
21
|
-
readonly status: 'ready' | 'provisioning' | 'failed' | 'deleting';
|
|
22
|
-
}
|
|
23
|
-
export interface CreateBranchDatabaseInput {
|
|
24
|
-
readonly parentDatabaseId?: string;
|
|
25
|
-
readonly branchName?: string;
|
|
26
|
-
}
|
|
27
|
-
export declare const list: (client: Client, projectId: string) => Promise<{
|
|
28
|
-
branches: readonly BranchDatabase[];
|
|
29
|
-
}>;
|
|
30
|
-
export declare const create: (client: Client, projectId: string, envId: string, body?: CreateBranchDatabaseInput) => Promise<{
|
|
31
|
-
branch: BranchDatabase;
|
|
32
|
-
}>;
|
|
33
|
-
export declare const get: (client: Client, projectId: string, envId: string) => Promise<{
|
|
34
|
-
branch: BranchDatabase;
|
|
35
|
-
}>;
|
|
36
|
-
declare const _delete: (client: Client, projectId: string, envId: string) => Promise<{
|
|
37
|
-
success: boolean;
|
|
38
|
-
}>;
|
|
14
|
+
export type BranchDatabase = ContractBranchDatabase;
|
|
15
|
+
export type CreateBranchDatabaseInput = ContractCreateBranchDatabaseInput;
|
|
16
|
+
export declare const list: (client: Client, projectId: string) => Promise<ListBranchDatabasesResult>;
|
|
17
|
+
export declare const create: (client: Client, projectId: string, envId: string, body: CreateBranchDatabaseInput) => Promise<BranchDatabase>;
|
|
18
|
+
export declare const get: (client: Client, projectId: string, envId: string) => Promise<BranchDatabase>;
|
|
19
|
+
declare const _delete: (client: Client, projectId: string, envId: string) => Promise<DestroyBranchDatabaseResult>;
|
|
39
20
|
export { _delete as delete };
|
|
40
21
|
/**
|
|
41
|
-
* Merge a branch database back into its parent.
|
|
42
|
-
*
|
|
43
|
-
*
|
|
44
|
-
*
|
|
45
|
-
*
|
|
22
|
+
* Merge a branch database back into its parent.
|
|
23
|
+
*
|
|
24
|
+
* The current server route is not contract-backed, so callers should treat
|
|
25
|
+
* this as an experimental management helper until the merge endpoint joins
|
|
26
|
+
* the contract SSOT.
|
|
46
27
|
*/
|
|
47
28
|
export declare const merge: (client: Client, projectId: string, envId: string, body?: {
|
|
48
29
|
readonly strategy?: "fast-forward" | "squash" | "rebase";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"branchDatabases.d.ts","sourceRoot":"","sources":["../src/branchDatabases.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;
|
|
1
|
+
{"version":3,"file":"branchDatabases.d.ts","sourceRoot":"","sources":["../src/branchDatabases.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EACX,cAAc,IAAI,sBAAsB,EACxC,yBAAyB,IAAI,iCAAiC,EAC9D,2BAA2B,EAC3B,yBAAyB,EACzB,MAAM,kBAAkB,CAAA;AAEzB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAGzC,MAAM,MAAM,cAAc,GAAG,sBAAsB,CAAA;AACnD,MAAM,MAAM,yBAAyB,GAAG,iCAAiC,CAAA;AAEzE,eAAO,MAAM,IAAI,GAAI,QAAQ,MAAM,EAAE,WAAW,MAAM,KAAG,OAAO,CAAC,yBAAyB,CAGzF,CAAA;AAED,eAAO,MAAM,MAAM,GAClB,QAAQ,MAAM,EACd,WAAW,MAAM,EACjB,OAAO,MAAM,EACb,MAAM,yBAAyB,KAC7B,OAAO,CAAC,cAAc,CAGxB,CAAA;AAED,eAAO,MAAM,GAAG,GAAI,QAAQ,MAAM,EAAE,WAAW,MAAM,EAAE,OAAO,MAAM,KAAG,OAAO,CAAC,cAAc,CAG5F,CAAA;AAED,QAAA,MAAM,OAAO,GACZ,QAAQ,MAAM,EACd,WAAW,MAAM,EACjB,OAAO,MAAM,KACX,OAAO,CAAC,2BAA2B,CAGrC,CAAA;AACD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,CAAA;AAE5B;;;;;;GAMG;AACH,eAAO,MAAM,KAAK,GACjB,QAAQ,MAAM,EACd,WAAW,MAAM,EACjB,OAAO,MAAM,EACb,OAAM;IAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,cAAc,GAAG,QAAQ,GAAG,QAAQ,CAAA;CAAO,KACrE,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAM/C,CAAA"}
|
package/dist/branchDatabases.js
CHANGED
|
@@ -15,7 +15,7 @@ export const list = (client, projectId) => {
|
|
|
15
15
|
const { method, path } = branchDatabasesEndpoints.list;
|
|
16
16
|
return request(client, method, interpolatePath(path, { id: projectId }));
|
|
17
17
|
};
|
|
18
|
-
export const create = (client, projectId, envId, body
|
|
18
|
+
export const create = (client, projectId, envId, body) => {
|
|
19
19
|
const { method, path } = branchDatabasesEndpoints.create;
|
|
20
20
|
return request(client, method, interpolatePath(path, { id: projectId, envId }), { body });
|
|
21
21
|
};
|
|
@@ -29,10 +29,10 @@ const _delete = (client, projectId, envId) => {
|
|
|
29
29
|
};
|
|
30
30
|
export { _delete as delete };
|
|
31
31
|
/**
|
|
32
|
-
* Merge a branch database back into its parent.
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
32
|
+
* Merge a branch database back into its parent.
|
|
33
|
+
*
|
|
34
|
+
* The current server route is not contract-backed, so callers should treat
|
|
35
|
+
* this as an experimental management helper until the merge endpoint joins
|
|
36
|
+
* the contract SSOT.
|
|
37
37
|
*/
|
|
38
38
|
export const merge = (client, projectId, envId, body = {}) => request(client, 'POST', `/projects/${encodeURIComponent(projectId)}/preview-envs/${encodeURIComponent(envId)}/branch-db/merge`, { body });
|
package/dist/client.d.ts
CHANGED
|
@@ -28,12 +28,19 @@ export interface ClientOptions {
|
|
|
28
28
|
readonly baseUrl?: string;
|
|
29
29
|
/** User-Agent header value. Default: `@sylphx/management/1.0.0`. */
|
|
30
30
|
readonly userAgent?: string;
|
|
31
|
+
/**
|
|
32
|
+
* Optional organization selector for user-context Management API calls.
|
|
33
|
+
* Multi-org operators use this to scope requests without minting a separate
|
|
34
|
+
* OAuth token per org.
|
|
35
|
+
*/
|
|
36
|
+
readonly preferredOrgId?: string;
|
|
31
37
|
}
|
|
32
38
|
export interface Client {
|
|
33
39
|
readonly token: string;
|
|
34
40
|
readonly baseUrl: string;
|
|
35
41
|
readonly apiBase: string;
|
|
36
42
|
readonly userAgent: string;
|
|
43
|
+
readonly preferredOrgId?: string;
|
|
37
44
|
}
|
|
38
45
|
export declare function createClient(opts: ClientOptions): Client;
|
|
39
46
|
//# sourceMappingURL=client.d.ts.map
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,MAAM,WAAW,aAAa;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,+DAA+D;IAC/D,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB,oEAAoE;IACpE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,MAAM,WAAW,aAAa;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,+DAA+D;IAC/D,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB,oEAAoE;IACpE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B;;;;OAIG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAA;CAChC;AAED,MAAM,WAAW,MAAM;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAA;CAChC;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CAUxD"}
|
package/dist/client.js
CHANGED
|
@@ -24,10 +24,12 @@
|
|
|
24
24
|
*/
|
|
25
25
|
export function createClient(opts) {
|
|
26
26
|
const baseUrl = opts.baseUrl ?? 'https://api.sylphx.com';
|
|
27
|
-
|
|
27
|
+
const client = {
|
|
28
28
|
token: opts.token,
|
|
29
29
|
baseUrl,
|
|
30
30
|
apiBase: `${baseUrl}/v1`,
|
|
31
31
|
userAgent: opts.userAgent ?? '@sylphx/management/1.0.0',
|
|
32
|
-
|
|
32
|
+
...(opts.preferredOrgId ? { preferredOrgId: opts.preferredOrgId } : {}),
|
|
33
|
+
};
|
|
34
|
+
return Object.freeze(client);
|
|
33
35
|
}
|
package/dist/http.d.ts
CHANGED
|
@@ -9,11 +9,32 @@
|
|
|
9
9
|
* the raw text.
|
|
10
10
|
* - Returns `undefined` for 204 No Content.
|
|
11
11
|
* - Accepts optional `body` (JSON-stringified) and `query` (URL-encoded).
|
|
12
|
+
* - Auto-injects an `Idempotency-Key` header on every mutation
|
|
13
|
+
* (POST / PUT / PATCH / DELETE) unless one is explicitly provided
|
|
14
|
+
* or `idempotency: false` is set. See `RequestOptions.idempotencyKey`.
|
|
12
15
|
*/
|
|
13
16
|
import type { Client } from './client.js';
|
|
14
17
|
export interface RequestOptions {
|
|
15
18
|
readonly body?: unknown;
|
|
16
19
|
readonly query?: Readonly<Record<string, string | undefined>>;
|
|
20
|
+
/**
|
|
21
|
+
* Explicit Idempotency-Key. When omitted on a mutating method, the
|
|
22
|
+
* SDK auto-generates a fresh UUID v4 per call so accidental
|
|
23
|
+
* network-retries of the SAME SDK invocation are server-side
|
|
24
|
+
* dedup'd (server middleware `idempotencyMiddleware` enforces).
|
|
25
|
+
*
|
|
26
|
+
* Pass an explicit key when:
|
|
27
|
+
* - The caller wants cross-process retry safety (e.g. a CI script
|
|
28
|
+
* re-running on retry must produce the same logical mutation).
|
|
29
|
+
* - The caller is replaying the SAME deterministic operation and
|
|
30
|
+
* expects the cached response.
|
|
31
|
+
*
|
|
32
|
+
* Pass `null` to opt out entirely (the server middleware no-ops on
|
|
33
|
+
* absent header — this is the "I know what I'm doing" escape hatch
|
|
34
|
+
* for endpoints that DO accept duplicate non-idempotent submissions
|
|
35
|
+
* by design, e.g. usage-counter increments).
|
|
36
|
+
*/
|
|
37
|
+
readonly idempotencyKey?: string | null;
|
|
17
38
|
}
|
|
18
39
|
/**
|
|
19
40
|
* Substitute `:param` tokens in a contract-sourced path with URL-encoded
|
package/dist/http.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAMzC,MAAM,WAAW,cAAc;IAC9B,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAA;IAC7D;;;;;;;;;;;;;;;;OAgBG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CACvC;AAYD;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,MAAM,CAO9F;AAED,wBAAsB,OAAO,CAAC,CAAC,EAC9B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,cAAc,GACnB,OAAO,CAAC,CAAC,CAAC,CA2DZ"}
|
package/dist/http.js
CHANGED
|
@@ -9,8 +9,22 @@
|
|
|
9
9
|
* the raw text.
|
|
10
10
|
* - Returns `undefined` for 204 No Content.
|
|
11
11
|
* - Accepts optional `body` (JSON-stringified) and `query` (URL-encoded).
|
|
12
|
+
* - Auto-injects an `Idempotency-Key` header on every mutation
|
|
13
|
+
* (POST / PUT / PATCH / DELETE) unless one is explicitly provided
|
|
14
|
+
* or `idempotency: false` is set. See `RequestOptions.idempotencyKey`.
|
|
12
15
|
*/
|
|
13
16
|
import { ApiError } from './errors.js';
|
|
17
|
+
/** HTTP methods we treat as mutations for idempotency-key injection. */
|
|
18
|
+
const MUTATING_METHODS = new Set(['POST', 'PUT', 'PATCH', 'DELETE']);
|
|
19
|
+
/**
|
|
20
|
+
* Generate a fresh idempotency key per call. We use `crypto.randomUUID`
|
|
21
|
+
* (available in Bun, Node 20+, Deno, Workers, modern browsers — all our
|
|
22
|
+
* supported runtimes). The server accepts any opaque string ≤256 chars;
|
|
23
|
+
* UUID v4 is 36 chars and collision-free at our volumes.
|
|
24
|
+
*/
|
|
25
|
+
function newIdempotencyKey() {
|
|
26
|
+
return crypto.randomUUID();
|
|
27
|
+
}
|
|
14
28
|
/**
|
|
15
29
|
* Substitute `:param` tokens in a contract-sourced path with URL-encoded
|
|
16
30
|
* values. Throws if any token is missing from `params` — the SDK should
|
|
@@ -41,11 +55,25 @@ export async function request(client, method, path, opts) {
|
|
|
41
55
|
Accept: 'application/json',
|
|
42
56
|
'User-Agent': client.userAgent,
|
|
43
57
|
};
|
|
58
|
+
if (client.preferredOrgId)
|
|
59
|
+
headers['X-Preferred-Org-Id'] = client.preferredOrgId;
|
|
44
60
|
// Only send Content-Type when we actually have a body to describe.
|
|
45
61
|
// Some strict proxies (Cloudflare in non-standard modes, certain
|
|
46
62
|
// WAFs) reject GET / DELETE requests carrying a bodyless Content-Type.
|
|
47
63
|
if (hasBody)
|
|
48
64
|
headers['Content-Type'] = 'application/json';
|
|
65
|
+
// Auto-inject Idempotency-Key on mutations. The server middleware
|
|
66
|
+
// at `apps/api/.../idempotency.ts` is mounted globally and no-ops
|
|
67
|
+
// on safe methods + on requests without the header — sending it
|
|
68
|
+
// gratuitously is harmless on routes that don't expect it. The key
|
|
69
|
+
// is ALWAYS sent for mutations unless caller passes `null` to opt
|
|
70
|
+
// out (e.g. usage-counter endpoints that want duplicate writes).
|
|
71
|
+
if (MUTATING_METHODS.has(method.toUpperCase())) {
|
|
72
|
+
const explicit = opts?.idempotencyKey;
|
|
73
|
+
if (explicit !== null) {
|
|
74
|
+
headers['Idempotency-Key'] = explicit ?? newIdempotencyKey();
|
|
75
|
+
}
|
|
76
|
+
}
|
|
49
77
|
const res = await fetch(url, {
|
|
50
78
|
method,
|
|
51
79
|
headers,
|
package/dist/index.d.ts
CHANGED
|
@@ -19,6 +19,7 @@ export * as admin from './admin.js';
|
|
|
19
19
|
export * as adminBootstrap from './adminBootstrap.js';
|
|
20
20
|
export * as adminBuilds from './adminBuilds.js';
|
|
21
21
|
export * as adminEnvServices from './adminEnvServices.js';
|
|
22
|
+
export * as adminProjectCredentials from './adminProjectCredentials.js';
|
|
22
23
|
export * as adminRateLimits from './adminRateLimits.js';
|
|
23
24
|
export * as adminReconcile from './adminReconcile.js';
|
|
24
25
|
export * as adminResources from './adminResources.js';
|
|
@@ -66,6 +67,7 @@ export * as referrals from './referrals.js';
|
|
|
66
67
|
export * as refresh from './refresh.js';
|
|
67
68
|
export * as remoteConfig from './remoteConfig.js';
|
|
68
69
|
export * as resourceBindings from './resourceBindings.js';
|
|
70
|
+
export * as resources from './resources.js';
|
|
69
71
|
export * as runners from './runners.js';
|
|
70
72
|
export * as saml from './saml.js';
|
|
71
73
|
export * as sandboxes from './sandboxes.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -20,6 +20,7 @@ export * as admin from './admin.js';
|
|
|
20
20
|
export * as adminBootstrap from './adminBootstrap.js';
|
|
21
21
|
export * as adminBuilds from './adminBuilds.js';
|
|
22
22
|
export * as adminEnvServices from './adminEnvServices.js';
|
|
23
|
+
export * as adminProjectCredentials from './adminProjectCredentials.js';
|
|
23
24
|
export * as adminRateLimits from './adminRateLimits.js';
|
|
24
25
|
export * as adminReconcile from './adminReconcile.js';
|
|
25
26
|
export * as adminResources from './adminResources.js';
|
|
@@ -68,6 +69,7 @@ export * as referrals from './referrals.js';
|
|
|
68
69
|
export * as refresh from './refresh.js';
|
|
69
70
|
export * as remoteConfig from './remoteConfig.js';
|
|
70
71
|
export * as resourceBindings from './resourceBindings.js';
|
|
72
|
+
export * as resources from './resources.js';
|
|
71
73
|
export * as runners from './runners.js';
|
|
72
74
|
export * as saml from './saml.js';
|
|
73
75
|
export * as sandboxes from './sandboxes.js';
|
package/dist/organizations.d.ts
CHANGED
|
@@ -3,10 +3,11 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Wire shape sourced from `@sylphx/contract` (ADR-084).
|
|
5
5
|
*/
|
|
6
|
-
import type {
|
|
6
|
+
import type { MyOrgResponse, OrgMember, OrgMemberRole, UpdateMemberRoleResult, UserOrganizationsResponse } from '@sylphx/contract';
|
|
7
7
|
import type { Client } from './client.js';
|
|
8
8
|
export type { OrgMemberRole, UpdateMemberRoleResult };
|
|
9
|
-
export declare const current: (client: Client) => Promise<
|
|
9
|
+
export declare const current: (client: Client) => Promise<MyOrgResponse>;
|
|
10
|
+
export declare const listMemberships: (client: Client) => Promise<UserOrganizationsResponse>;
|
|
10
11
|
export declare const listMembers: (client: Client, orgId: string) => Promise<OrgMember[]>;
|
|
11
12
|
export declare const inviteMember: (client: Client, orgId: string, email: string, role: "admin" | "member") => Promise<void>;
|
|
12
13
|
export declare const removeMember: (client: Client, orgId: string, userId: string) => Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"organizations.d.ts","sourceRoot":"","sources":["../src/organizations.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACX,
|
|
1
|
+
{"version":3,"file":"organizations.d.ts","sourceRoot":"","sources":["../src/organizations.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACX,aAAa,EACb,SAAS,EACT,aAAa,EACb,sBAAsB,EACtB,yBAAyB,EACzB,MAAM,kBAAkB,CAAA;AAEzB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAGzC,YAAY,EAAE,aAAa,EAAE,sBAAsB,EAAE,CAAA;AAErD,eAAO,MAAM,OAAO,GAAI,QAAQ,MAAM,KAAG,OAAO,CAAC,aAAa,CAG7D,CAAA;AAED,eAAO,MAAM,eAAe,GAAI,QAAQ,MAAM,KAAG,OAAO,CAAC,yBAAyB,CAGjF,CAAA;AAED,eAAO,MAAM,WAAW,GAAU,QAAQ,MAAM,EAAE,OAAO,MAAM,KAAG,OAAO,CAAC,SAAS,EAAE,CAQpF,CAAA;AAED,eAAO,MAAM,YAAY,GACxB,QAAQ,MAAM,EACd,OAAO,MAAM,EACb,OAAO,MAAM,EACb,MAAM,OAAO,GAAG,QAAQ,KACtB,OAAO,CAAC,IAAI,CAKd,CAAA;AAED,eAAO,MAAM,YAAY,GAAI,QAAQ,MAAM,EAAE,OAAO,MAAM,EAAE,QAAQ,MAAM,KAAG,OAAO,CAAC,IAAI,CAGxF,CAAA;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,gBAAgB,GAC5B,QAAQ,MAAM,EACd,OAAO,MAAM,EACb,QAAQ,MAAM,EACd,MAAM,aAAa,KACjB,OAAO,CAAC,sBAAsB,CAKhC,CAAA"}
|
package/dist/organizations.js
CHANGED
|
@@ -9,6 +9,10 @@ export const current = (client) => {
|
|
|
9
9
|
const { method, path } = organizationsEndpoints.current;
|
|
10
10
|
return request(client, method, path);
|
|
11
11
|
};
|
|
12
|
+
export const listMemberships = (client) => {
|
|
13
|
+
const { method, path } = organizationsEndpoints.memberships;
|
|
14
|
+
return request(client, method, path);
|
|
15
|
+
};
|
|
12
16
|
export const listMembers = async (client, orgId) => {
|
|
13
17
|
const { method, path } = organizationsEndpoints.listMembers;
|
|
14
18
|
const res = await request(client, method, interpolatePath(path, { orgId }));
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generic managed resources — list/get across database, kv, blob, search, and
|
|
3
|
+
* volume resources through the unified `/resources` Management API.
|
|
4
|
+
*/
|
|
5
|
+
import type { Database as Resource } from '@sylphx/contract';
|
|
6
|
+
import type { Client } from './client.js';
|
|
7
|
+
export type ResourceKind = 'database' | 'kv' | 'blob' | 'search' | 'volume';
|
|
8
|
+
export type { Resource };
|
|
9
|
+
export declare const list: (client: Client, options?: {
|
|
10
|
+
readonly kind?: ResourceKind | string;
|
|
11
|
+
}) => Promise<Resource[]>;
|
|
12
|
+
export declare const get: (client: Client, id: string) => Promise<Resource>;
|
|
13
|
+
//# sourceMappingURL=resources.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resources.d.ts","sourceRoot":"","sources":["../src/resources.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,QAAQ,IAAI,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAE5D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAGzC,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,IAAI,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAA;AAC3E,YAAY,EAAE,QAAQ,EAAE,CAAA;AAExB,eAAO,MAAM,IAAI,GAChB,QAAQ,MAAM,EACd,UAAS;IAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,YAAY,GAAG,MAAM,CAAA;CAAO,KACrD,OAAO,CAAC,QAAQ,EAAE,CASpB,CAAA;AAED,eAAO,MAAM,GAAG,GAAI,QAAQ,MAAM,EAAE,IAAI,MAAM,KAAG,OAAO,CAAC,QAAQ,CAGhE,CAAA"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generic managed resources — list/get across database, kv, blob, search, and
|
|
3
|
+
* volume resources through the unified `/resources` Management API.
|
|
4
|
+
*/
|
|
5
|
+
import { resourcesEndpoints } from '@sylphx/contract';
|
|
6
|
+
import { interpolatePath, request } from './http.js';
|
|
7
|
+
export const list = async (client, options = {}) => {
|
|
8
|
+
const { method, path } = resourcesEndpoints.list;
|
|
9
|
+
const res = await request(client, method, path, options.kind ? { query: { kind: options.kind } } : undefined);
|
|
10
|
+
return Array.isArray(res) ? res : (res.data ?? []);
|
|
11
|
+
};
|
|
12
|
+
export const get = (client, id) => {
|
|
13
|
+
const { method, path } = resourcesEndpoints.get;
|
|
14
|
+
return request(client, method, interpolatePath(path, { id }));
|
|
15
|
+
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sylphx/management",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.2",
|
|
4
4
|
"description": "Sylphx Management SDK — pure-FP Promise client for the Sylphx Platform Management API. 55+ namespaces covering the full PaaS surface (ADR-089 Phase 4b 100% coverage), types derived from @sylphx/contract (Effect Schema SSOT).",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -37,6 +37,10 @@
|
|
|
37
37
|
"import": "./dist/billing.js",
|
|
38
38
|
"types": "./dist/billing.d.ts"
|
|
39
39
|
},
|
|
40
|
+
"./branchDatabases": {
|
|
41
|
+
"import": "./dist/branchDatabases.js",
|
|
42
|
+
"types": "./dist/branchDatabases.d.ts"
|
|
43
|
+
},
|
|
40
44
|
"./certs": {
|
|
41
45
|
"import": "./dist/certs.js",
|
|
42
46
|
"types": "./dist/certs.d.ts"
|
|
@@ -133,6 +137,10 @@
|
|
|
133
137
|
"import": "./dist/resourceBindings.js",
|
|
134
138
|
"types": "./dist/resourceBindings.d.ts"
|
|
135
139
|
},
|
|
140
|
+
"./resources": {
|
|
141
|
+
"import": "./dist/resources.js",
|
|
142
|
+
"types": "./dist/resources.d.ts"
|
|
143
|
+
},
|
|
136
144
|
"./runners": {
|
|
137
145
|
"import": "./dist/runners.js",
|
|
138
146
|
"types": "./dist/runners.d.ts"
|
|
@@ -193,7 +201,7 @@
|
|
|
193
201
|
"prepublishOnly": "bun run build"
|
|
194
202
|
},
|
|
195
203
|
"dependencies": {
|
|
196
|
-
"@sylphx/contract": "
|
|
204
|
+
"@sylphx/contract": "0.3.0"
|
|
197
205
|
},
|
|
198
206
|
"files": [
|
|
199
207
|
"dist",
|