@agent-foundry/studio 1.0.0 → 1.0.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/README.md +180 -47
- package/dist/bff/client.d.ts +168 -0
- package/dist/bff/client.d.ts.map +1 -0
- package/dist/bff/client.js +288 -0
- package/dist/bff/client.js.map +1 -0
- package/dist/bff/index.d.ts +27 -0
- package/dist/bff/index.d.ts.map +1 -0
- package/dist/bff/index.js +26 -0
- package/dist/bff/index.js.map +1 -0
- package/dist/bff/types.d.ts +168 -0
- package/dist/bff/types.d.ts.map +1 -0
- package/dist/bff/types.js +8 -0
- package/dist/bff/types.js.map +1 -0
- package/dist/db/deployments.d.ts +67 -1
- package/dist/db/deployments.d.ts.map +1 -1
- package/dist/db/deployments.js +92 -1
- package/dist/db/deployments.js.map +1 -1
- package/dist/db/index.d.ts +17 -0
- package/dist/db/index.d.ts.map +1 -1
- package/dist/db/index.js +17 -0
- package/dist/db/index.js.map +1 -1
- package/dist/db/projects.d.ts +54 -1
- package/dist/db/projects.d.ts.map +1 -1
- package/dist/db/projects.js +79 -1
- package/dist/db/projects.js.map +1 -1
- package/dist/index.d.ts +14 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +16 -2
- package/dist/index.js.map +1 -1
- package/dist/types/deployment.d.ts +56 -0
- package/dist/types/deployment.d.ts.map +1 -1
- package/dist/types/project.d.ts +6 -0
- package/dist/types/project.d.ts.map +1 -1
- package/package.json +14 -4
- package/src/bff/client.ts +412 -0
- package/src/bff/index.ts +32 -0
- package/src/bff/types.ts +212 -0
- package/src/db/deployments.ts +99 -1
- package/src/db/index.ts +17 -0
- package/src/db/projects.ts +86 -1
- package/src/db/schema.sql +35 -52
- package/src/index.ts +18 -2
- package/src/types/deployment.ts +75 -0
- package/src/types/project.ts +7 -0
package/dist/db/deployments.js
CHANGED
|
@@ -1,7 +1,38 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Deployments Repository
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* Provides access to studio_deployments table via Supabase client.
|
|
5
|
+
*
|
|
6
|
+
* ## Important: Hybrid Access Pattern
|
|
7
|
+
*
|
|
8
|
+
* Due to RLS (Row Level Security) restrictions, this repository should
|
|
9
|
+
* primarily be used for **read operations only**.
|
|
10
|
+
*
|
|
11
|
+
* **For write operations, use the BFF client or DirectUploader:**
|
|
12
|
+
*
|
|
13
|
+
* ```typescript
|
|
14
|
+
* import { DirectUploader } from '@agent-foundry/studio/oss';
|
|
15
|
+
*
|
|
16
|
+
* // DirectUploader handles the complete deployment workflow via BFF
|
|
17
|
+
* const uploader = new DirectUploader({
|
|
18
|
+
* bffBaseUrl: 'http://localhost:11001',
|
|
19
|
+
* authToken: 'your-jwt-token',
|
|
20
|
+
* });
|
|
21
|
+
*
|
|
22
|
+
* const result = await uploader.upload({
|
|
23
|
+
* projectId: 'project-uuid',
|
|
24
|
+
* files: distFiles,
|
|
25
|
+
* });
|
|
26
|
+
* ```
|
|
27
|
+
*
|
|
28
|
+
* Or use the BFF client directly:
|
|
29
|
+
*
|
|
30
|
+
* ```typescript
|
|
31
|
+
* import { createBFFClient } from '@agent-foundry/studio/bff';
|
|
32
|
+
*
|
|
33
|
+
* const bff = createBFFClient({ ... });
|
|
34
|
+
* const deployment = await bff.deployments.start({ projectId: '...' });
|
|
35
|
+
* ```
|
|
5
36
|
*/
|
|
6
37
|
/**
|
|
7
38
|
* Convert database row to Deployment
|
|
@@ -16,6 +47,7 @@ function rowToDeployment(row) {
|
|
|
16
47
|
ossBucket: row.oss_bucket ?? undefined,
|
|
17
48
|
ossKey: row.oss_key ?? undefined,
|
|
18
49
|
ossUrl: row.oss_url ?? undefined,
|
|
50
|
+
artifactId: row.artifact_id ?? undefined,
|
|
19
51
|
bundleSizeBytes: row.bundle_size_bytes ?? undefined,
|
|
20
52
|
buildLog: row.build_log ?? undefined,
|
|
21
53
|
errorMessage: row.error_message ?? undefined,
|
|
@@ -46,6 +78,12 @@ export class DeploymentsRepository {
|
|
|
46
78
|
}
|
|
47
79
|
/**
|
|
48
80
|
* Create a new deployment
|
|
81
|
+
*
|
|
82
|
+
* @deprecated Use `DirectUploader.upload()` or `createBFFClient().deployments.start()` instead.
|
|
83
|
+
*
|
|
84
|
+
* This method may fail with RLS errors. The recommended workflow is:
|
|
85
|
+
* 1. Use DirectUploader which handles the complete deployment lifecycle
|
|
86
|
+
* 2. Or use BFF client's deployments.start() to get STS credentials
|
|
49
87
|
*/
|
|
50
88
|
async create(input) {
|
|
51
89
|
const { data: { user } } = await this.supabase.auth.getUser();
|
|
@@ -119,6 +157,10 @@ export class DeploymentsRepository {
|
|
|
119
157
|
}
|
|
120
158
|
/**
|
|
121
159
|
* Update a deployment
|
|
160
|
+
*
|
|
161
|
+
* @deprecated Use `createBFFClient().deployments.updateStatus()` instead.
|
|
162
|
+
*
|
|
163
|
+
* This method may fail with RLS errors. Use BFF client for write operations.
|
|
122
164
|
*/
|
|
123
165
|
async update(id, input) {
|
|
124
166
|
const updateData = {};
|
|
@@ -167,18 +209,24 @@ export class DeploymentsRepository {
|
|
|
167
209
|
}
|
|
168
210
|
/**
|
|
169
211
|
* Mark deployment as building
|
|
212
|
+
*
|
|
213
|
+
* @deprecated Use `createBFFClient().deployments.updateStatus()` instead.
|
|
170
214
|
*/
|
|
171
215
|
async markBuilding(id) {
|
|
172
216
|
return this.update(id, { status: 'building' });
|
|
173
217
|
}
|
|
174
218
|
/**
|
|
175
219
|
* Mark deployment as uploading
|
|
220
|
+
*
|
|
221
|
+
* @deprecated Use `createBFFClient().deployments.updateStatus()` instead.
|
|
176
222
|
*/
|
|
177
223
|
async markUploading(id) {
|
|
178
224
|
return this.update(id, { status: 'uploading' });
|
|
179
225
|
}
|
|
180
226
|
/**
|
|
181
227
|
* Mark deployment as published
|
|
228
|
+
*
|
|
229
|
+
* @deprecated Use `createBFFClient().deployments.complete()` instead.
|
|
182
230
|
*/
|
|
183
231
|
async markPublished(id, ossInfo) {
|
|
184
232
|
return this.update(id, {
|
|
@@ -192,6 +240,8 @@ export class DeploymentsRepository {
|
|
|
192
240
|
}
|
|
193
241
|
/**
|
|
194
242
|
* Mark deployment as failed
|
|
243
|
+
*
|
|
244
|
+
* @deprecated Use `createBFFClient().deployments.fail()` instead.
|
|
195
245
|
*/
|
|
196
246
|
async markFailed(id, errorMessage, buildLog) {
|
|
197
247
|
return this.update(id, {
|
|
@@ -222,6 +272,9 @@ export class DeploymentsRepository {
|
|
|
222
272
|
}
|
|
223
273
|
/**
|
|
224
274
|
* Delete a deployment
|
|
275
|
+
*
|
|
276
|
+
* @deprecated Deployment deletion should be handled server-side.
|
|
277
|
+
* This method may fail with RLS errors.
|
|
225
278
|
*/
|
|
226
279
|
async delete(id) {
|
|
227
280
|
const { error } = await this.supabase
|
|
@@ -234,6 +287,9 @@ export class DeploymentsRepository {
|
|
|
234
287
|
}
|
|
235
288
|
/**
|
|
236
289
|
* Append to build log
|
|
290
|
+
*
|
|
291
|
+
* @deprecated Use `createBFFClient().deployments.updateStatus()` with buildLog field.
|
|
292
|
+
* This method may fail with RLS errors.
|
|
237
293
|
*/
|
|
238
294
|
async appendBuildLog(id, logLine) {
|
|
239
295
|
const existing = await this.getById(id);
|
|
@@ -245,5 +301,40 @@ export class DeploymentsRepository {
|
|
|
245
301
|
: logLine;
|
|
246
302
|
await this.update(id, { buildLog: newLog });
|
|
247
303
|
}
|
|
304
|
+
/**
|
|
305
|
+
* Link deployment to an artifact (called after publishing to Feed)
|
|
306
|
+
*
|
|
307
|
+
* @deprecated This is handled automatically by BFF's publish workflow.
|
|
308
|
+
* Use `createBFFClient().projects.publish()` instead.
|
|
309
|
+
*/
|
|
310
|
+
async linkToArtifact(id, artifactId) {
|
|
311
|
+
const { data, error } = await this.supabase
|
|
312
|
+
.from(this.TABLE)
|
|
313
|
+
.update({ artifact_id: artifactId })
|
|
314
|
+
.eq('id', id)
|
|
315
|
+
.select()
|
|
316
|
+
.single();
|
|
317
|
+
if (error) {
|
|
318
|
+
throw new Error(`Failed to link deployment to artifact: ${error.message}`);
|
|
319
|
+
}
|
|
320
|
+
return rowToDeployment(data);
|
|
321
|
+
}
|
|
322
|
+
/**
|
|
323
|
+
* Get deployment by artifact ID
|
|
324
|
+
*/
|
|
325
|
+
async getByArtifactId(artifactId) {
|
|
326
|
+
const { data, error } = await this.supabase
|
|
327
|
+
.from(this.TABLE)
|
|
328
|
+
.select()
|
|
329
|
+
.eq('artifact_id', artifactId)
|
|
330
|
+
.single();
|
|
331
|
+
if (error) {
|
|
332
|
+
if (error.code === 'PGRST116') {
|
|
333
|
+
return null; // Not found
|
|
334
|
+
}
|
|
335
|
+
throw new Error(`Failed to get deployment: ${error.message}`);
|
|
336
|
+
}
|
|
337
|
+
return rowToDeployment(data);
|
|
338
|
+
}
|
|
248
339
|
}
|
|
249
340
|
//# sourceMappingURL=deployments.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deployments.js","sourceRoot":"","sources":["../../src/db/deployments.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"deployments.js","sourceRoot":"","sources":["../../src/db/deployments.ts"],"names":[],"mappings":"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"}
|
package/dist/db/index.d.ts
CHANGED
|
@@ -1,5 +1,22 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Database module - Supabase client for Studio
|
|
3
|
+
*
|
|
4
|
+
* ## Important: Read-Only Usage Recommended
|
|
5
|
+
*
|
|
6
|
+
* Due to RLS (Row Level Security), this module should primarily be used
|
|
7
|
+
* for **read operations only**. For write operations, use the BFF client:
|
|
8
|
+
*
|
|
9
|
+
* ```typescript
|
|
10
|
+
* // Read operations - use this module
|
|
11
|
+
* import { createStudioClient } from '@agent-foundry/studio/db';
|
|
12
|
+
* const db = createStudioClient({ supabaseUrl: '...', supabaseKey: '...' });
|
|
13
|
+
* const projects = await db.projects.list();
|
|
14
|
+
*
|
|
15
|
+
* // Write operations - use BFF client
|
|
16
|
+
* import { createBFFClient } from '@agent-foundry/studio/bff';
|
|
17
|
+
* const bff = createBFFClient({ baseUrl: '...', authToken: '...' });
|
|
18
|
+
* const project = await bff.projects.create({ ... });
|
|
19
|
+
* ```
|
|
3
20
|
*/
|
|
4
21
|
export { createStudioClient, type StudioClientConfig } from './client';
|
|
5
22
|
export { ProjectsRepository } from './projects';
|
package/dist/db/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/db/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/db/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,kBAAkB,EAAE,KAAK,kBAAkB,EAAE,MAAM,UAAU,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC"}
|
package/dist/db/index.js
CHANGED
|
@@ -1,5 +1,22 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Database module - Supabase client for Studio
|
|
3
|
+
*
|
|
4
|
+
* ## Important: Read-Only Usage Recommended
|
|
5
|
+
*
|
|
6
|
+
* Due to RLS (Row Level Security), this module should primarily be used
|
|
7
|
+
* for **read operations only**. For write operations, use the BFF client:
|
|
8
|
+
*
|
|
9
|
+
* ```typescript
|
|
10
|
+
* // Read operations - use this module
|
|
11
|
+
* import { createStudioClient } from '@agent-foundry/studio/db';
|
|
12
|
+
* const db = createStudioClient({ supabaseUrl: '...', supabaseKey: '...' });
|
|
13
|
+
* const projects = await db.projects.list();
|
|
14
|
+
*
|
|
15
|
+
* // Write operations - use BFF client
|
|
16
|
+
* import { createBFFClient } from '@agent-foundry/studio/bff';
|
|
17
|
+
* const bff = createBFFClient({ baseUrl: '...', authToken: '...' });
|
|
18
|
+
* const project = await bff.projects.create({ ... });
|
|
19
|
+
* ```
|
|
3
20
|
*/
|
|
4
21
|
export { createStudioClient } from './client';
|
|
5
22
|
export { ProjectsRepository } from './projects';
|
package/dist/db/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/db/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/db/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,kBAAkB,EAA2B,MAAM,UAAU,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC"}
|
package/dist/db/projects.d.ts
CHANGED
|
@@ -1,7 +1,29 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Projects Repository
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* Provides access to studio_projects table via Supabase client.
|
|
5
|
+
*
|
|
6
|
+
* ## Important: Hybrid Access Pattern
|
|
7
|
+
*
|
|
8
|
+
* Due to RLS (Row Level Security) restrictions, this repository should
|
|
9
|
+
* primarily be used for **read operations only**.
|
|
10
|
+
*
|
|
11
|
+
* **For write operations (create, update, delete, fork), use the BFF client:**
|
|
12
|
+
*
|
|
13
|
+
* ```typescript
|
|
14
|
+
* import { createBFFClient } from '@agent-foundry/studio/bff';
|
|
15
|
+
*
|
|
16
|
+
* const bff = createBFFClient({
|
|
17
|
+
* baseUrl: 'http://localhost:11001',
|
|
18
|
+
* authToken: 'your-jwt-token',
|
|
19
|
+
* });
|
|
20
|
+
*
|
|
21
|
+
* // Create project via BFF (recommended)
|
|
22
|
+
* const project = await bff.projects.create({ ... });
|
|
23
|
+
* ```
|
|
24
|
+
*
|
|
25
|
+
* The BFF uses service_role credentials which bypass RLS, ensuring
|
|
26
|
+
* consistent and secure write operations.
|
|
5
27
|
*/
|
|
6
28
|
import { SupabaseClient } from '@supabase/supabase-js';
|
|
7
29
|
import type { StudioProject, CreateProjectInput, UpdateProjectInput, ProjectListFilters } from '../types/project';
|
|
@@ -14,6 +36,11 @@ export declare class ProjectsRepository {
|
|
|
14
36
|
constructor(supabase: SupabaseClient);
|
|
15
37
|
/**
|
|
16
38
|
* Create a new project
|
|
39
|
+
*
|
|
40
|
+
* @deprecated Use BFF client instead: `createBFFClient().projects.create()`
|
|
41
|
+
*
|
|
42
|
+
* This method may fail with RLS errors when using anon key.
|
|
43
|
+
* The BFF client uses service_role credentials which bypass RLS.
|
|
17
44
|
*/
|
|
18
45
|
create(input: CreateProjectInput): Promise<StudioProject>;
|
|
19
46
|
/**
|
|
@@ -30,19 +57,45 @@ export declare class ProjectsRepository {
|
|
|
30
57
|
list(filters?: ProjectListFilters): Promise<StudioProject[]>;
|
|
31
58
|
/**
|
|
32
59
|
* Update a project
|
|
60
|
+
*
|
|
61
|
+
* @deprecated Use BFF client instead: `createBFFClient().projects.update()`
|
|
62
|
+
*
|
|
63
|
+
* This method may fail with RLS errors when using anon key.
|
|
64
|
+
* The BFF client uses service_role credentials which bypass RLS.
|
|
33
65
|
*/
|
|
34
66
|
update(id: string, input: UpdateProjectInput): Promise<StudioProject>;
|
|
35
67
|
/**
|
|
36
68
|
* Delete a project
|
|
69
|
+
*
|
|
70
|
+
* @deprecated Use BFF client instead: `createBFFClient().projects.delete()`
|
|
71
|
+
*
|
|
72
|
+
* This method may fail with RLS errors when using anon key.
|
|
73
|
+
* The BFF client uses service_role credentials which bypass RLS.
|
|
37
74
|
*/
|
|
38
75
|
delete(id: string): Promise<void>;
|
|
39
76
|
/**
|
|
40
77
|
* Fork a project (create a copy)
|
|
78
|
+
*
|
|
79
|
+
* @deprecated Use BFF client instead: `createBFFClient().projects.fork()`
|
|
80
|
+
*
|
|
81
|
+
* This method may fail with RLS errors when using anon key.
|
|
82
|
+
* The BFF client uses service_role credentials which bypass RLS.
|
|
41
83
|
*/
|
|
42
84
|
fork(id: string, newSlug: string, newRootPath: string): Promise<StudioProject>;
|
|
43
85
|
/**
|
|
44
86
|
* Check if a slug is available for current user
|
|
45
87
|
*/
|
|
46
88
|
isSlugAvailable(slug: string): Promise<boolean>;
|
|
89
|
+
/**
|
|
90
|
+
* Link project to a registered app (called after publishing to Feed)
|
|
91
|
+
*
|
|
92
|
+
* @deprecated This is handled automatically by BFF's publish workflow.
|
|
93
|
+
* Use `createBFFClient().projects.publish()` instead.
|
|
94
|
+
*/
|
|
95
|
+
linkToApp(id: string, appId: string): Promise<StudioProject>;
|
|
96
|
+
/**
|
|
97
|
+
* Get project by app ID
|
|
98
|
+
*/
|
|
99
|
+
getByAppId(appId: string): Promise<StudioProject | null>;
|
|
47
100
|
}
|
|
48
101
|
//# sourceMappingURL=projects.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../../src/db/projects.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../../src/db/projects.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,KAAK,EACV,aAAa,EACb,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAEnB,MAAM,kBAAkB,CAAC;AAwC1B;;GAEG;AACH,qBAAa,kBAAkB;IAGjB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAFrC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAqB;gBAEd,QAAQ,EAAE,cAAc;IAErD;;;;;;;OAOG;IACG,MAAM,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,aAAa,CAAC;IA4B/D;;OAEG;IACG,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAiBxD;;OAEG;IACG,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAiB5D;;OAEG;IACG,IAAI,CAAC,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAoCtE;;;;;;;OAOG;IACG,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,aAAa,CAAC;IAgC3E;;;;;;;OAOG;IACG,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAWvC;;;;;;;OAOG;IACG,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAiBpF;;OAEG;IACG,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKrD;;;;;OAKG;IACG,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAelE;;OAEG;IACG,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;CAgB/D"}
|
package/dist/db/projects.js
CHANGED
|
@@ -1,7 +1,29 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Projects Repository
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* Provides access to studio_projects table via Supabase client.
|
|
5
|
+
*
|
|
6
|
+
* ## Important: Hybrid Access Pattern
|
|
7
|
+
*
|
|
8
|
+
* Due to RLS (Row Level Security) restrictions, this repository should
|
|
9
|
+
* primarily be used for **read operations only**.
|
|
10
|
+
*
|
|
11
|
+
* **For write operations (create, update, delete, fork), use the BFF client:**
|
|
12
|
+
*
|
|
13
|
+
* ```typescript
|
|
14
|
+
* import { createBFFClient } from '@agent-foundry/studio/bff';
|
|
15
|
+
*
|
|
16
|
+
* const bff = createBFFClient({
|
|
17
|
+
* baseUrl: 'http://localhost:11001',
|
|
18
|
+
* authToken: 'your-jwt-token',
|
|
19
|
+
* });
|
|
20
|
+
*
|
|
21
|
+
* // Create project via BFF (recommended)
|
|
22
|
+
* const project = await bff.projects.create({ ... });
|
|
23
|
+
* ```
|
|
24
|
+
*
|
|
25
|
+
* The BFF uses service_role credentials which bypass RLS, ensuring
|
|
26
|
+
* consistent and secure write operations.
|
|
5
27
|
*/
|
|
6
28
|
/**
|
|
7
29
|
* Convert database row to StudioProject
|
|
@@ -13,6 +35,7 @@ function rowToProject(row) {
|
|
|
13
35
|
name: row.name,
|
|
14
36
|
slug: row.slug,
|
|
15
37
|
description: row.description ?? undefined,
|
|
38
|
+
appId: row.app_id ?? undefined,
|
|
16
39
|
rootPath: row.root_path,
|
|
17
40
|
framework: row.framework,
|
|
18
41
|
config: row.config,
|
|
@@ -31,6 +54,11 @@ export class ProjectsRepository {
|
|
|
31
54
|
}
|
|
32
55
|
/**
|
|
33
56
|
* Create a new project
|
|
57
|
+
*
|
|
58
|
+
* @deprecated Use BFF client instead: `createBFFClient().projects.create()`
|
|
59
|
+
*
|
|
60
|
+
* This method may fail with RLS errors when using anon key.
|
|
61
|
+
* The BFF client uses service_role credentials which bypass RLS.
|
|
34
62
|
*/
|
|
35
63
|
async create(input) {
|
|
36
64
|
const { data: { user } } = await this.supabase.auth.getUser();
|
|
@@ -123,6 +151,11 @@ export class ProjectsRepository {
|
|
|
123
151
|
}
|
|
124
152
|
/**
|
|
125
153
|
* Update a project
|
|
154
|
+
*
|
|
155
|
+
* @deprecated Use BFF client instead: `createBFFClient().projects.update()`
|
|
156
|
+
*
|
|
157
|
+
* This method may fail with RLS errors when using anon key.
|
|
158
|
+
* The BFF client uses service_role credentials which bypass RLS.
|
|
126
159
|
*/
|
|
127
160
|
async update(id, input) {
|
|
128
161
|
const updateData = {};
|
|
@@ -153,6 +186,11 @@ export class ProjectsRepository {
|
|
|
153
186
|
}
|
|
154
187
|
/**
|
|
155
188
|
* Delete a project
|
|
189
|
+
*
|
|
190
|
+
* @deprecated Use BFF client instead: `createBFFClient().projects.delete()`
|
|
191
|
+
*
|
|
192
|
+
* This method may fail with RLS errors when using anon key.
|
|
193
|
+
* The BFF client uses service_role credentials which bypass RLS.
|
|
156
194
|
*/
|
|
157
195
|
async delete(id) {
|
|
158
196
|
const { error } = await this.supabase
|
|
@@ -165,6 +203,11 @@ export class ProjectsRepository {
|
|
|
165
203
|
}
|
|
166
204
|
/**
|
|
167
205
|
* Fork a project (create a copy)
|
|
206
|
+
*
|
|
207
|
+
* @deprecated Use BFF client instead: `createBFFClient().projects.fork()`
|
|
208
|
+
*
|
|
209
|
+
* This method may fail with RLS errors when using anon key.
|
|
210
|
+
* The BFF client uses service_role credentials which bypass RLS.
|
|
168
211
|
*/
|
|
169
212
|
async fork(id, newSlug, newRootPath) {
|
|
170
213
|
const original = await this.getById(id);
|
|
@@ -188,5 +231,40 @@ export class ProjectsRepository {
|
|
|
188
231
|
const existing = await this.getBySlug(slug);
|
|
189
232
|
return existing === null;
|
|
190
233
|
}
|
|
234
|
+
/**
|
|
235
|
+
* Link project to a registered app (called after publishing to Feed)
|
|
236
|
+
*
|
|
237
|
+
* @deprecated This is handled automatically by BFF's publish workflow.
|
|
238
|
+
* Use `createBFFClient().projects.publish()` instead.
|
|
239
|
+
*/
|
|
240
|
+
async linkToApp(id, appId) {
|
|
241
|
+
const { data, error } = await this.supabase
|
|
242
|
+
.from(this.TABLE)
|
|
243
|
+
.update({ app_id: appId })
|
|
244
|
+
.eq('id', id)
|
|
245
|
+
.select()
|
|
246
|
+
.single();
|
|
247
|
+
if (error) {
|
|
248
|
+
throw new Error(`Failed to link project to app: ${error.message}`);
|
|
249
|
+
}
|
|
250
|
+
return rowToProject(data);
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* Get project by app ID
|
|
254
|
+
*/
|
|
255
|
+
async getByAppId(appId) {
|
|
256
|
+
const { data, error } = await this.supabase
|
|
257
|
+
.from(this.TABLE)
|
|
258
|
+
.select()
|
|
259
|
+
.eq('app_id', appId)
|
|
260
|
+
.single();
|
|
261
|
+
if (error) {
|
|
262
|
+
if (error.code === 'PGRST116') {
|
|
263
|
+
return null; // Not found
|
|
264
|
+
}
|
|
265
|
+
throw new Error(`Failed to get project: ${error.message}`);
|
|
266
|
+
}
|
|
267
|
+
return rowToProject(data);
|
|
268
|
+
}
|
|
191
269
|
}
|
|
192
270
|
//# sourceMappingURL=projects.js.map
|
package/dist/db/projects.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projects.js","sourceRoot":"","sources":["../../src/db/projects.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"projects.js","sourceRoot":"","sources":["../../src/db/projects.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -2,10 +2,23 @@
|
|
|
2
2
|
* @agent-foundry/studio
|
|
3
3
|
*
|
|
4
4
|
* Full SDK for Agent Foundry Build Studio.
|
|
5
|
-
* Provides types, Alibaba Cloud OSS upload utilities, and Supabase database client.
|
|
5
|
+
* Provides types, Alibaba Cloud OSS upload utilities, BFF API client, and Supabase database client.
|
|
6
|
+
*
|
|
7
|
+
* ## Recommended Usage Pattern (Hybrid Approach)
|
|
8
|
+
*
|
|
9
|
+
* - **Write operations**: Use BFF client (`@agent-foundry/studio/bff`)
|
|
10
|
+
* - **Read operations**: Use Supabase client (`@agent-foundry/studio/db`)
|
|
11
|
+
* - **File uploads**: Use DirectUploader (`@agent-foundry/studio/oss`)
|
|
12
|
+
*
|
|
13
|
+
* This pattern ensures:
|
|
14
|
+
* - Security: Write operations go through BFF with service_role (bypasses RLS)
|
|
15
|
+
* - Performance: Read operations use direct Supabase connection
|
|
16
|
+
* - Consistency: All writes are validated server-side
|
|
6
17
|
*/
|
|
7
18
|
export * from './types';
|
|
8
19
|
export * from './oss';
|
|
20
|
+
export { createBFFClient, BFFAPIError } from './bff';
|
|
21
|
+
export type { BFFClient, BFFClientConfig } from './bff';
|
|
9
22
|
export * from './db';
|
|
10
23
|
export * from './utils';
|
|
11
24
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,cAAc,SAAS,CAAC;AAGxB,cAAc,OAAO,CAAC;AAItB,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACrD,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,OAAO,CAAC;AAGxD,cAAc,MAAM,CAAC;AAGrB,cAAc,SAAS,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -2,13 +2,27 @@
|
|
|
2
2
|
* @agent-foundry/studio
|
|
3
3
|
*
|
|
4
4
|
* Full SDK for Agent Foundry Build Studio.
|
|
5
|
-
* Provides types, Alibaba Cloud OSS upload utilities, and Supabase database client.
|
|
5
|
+
* Provides types, Alibaba Cloud OSS upload utilities, BFF API client, and Supabase database client.
|
|
6
|
+
*
|
|
7
|
+
* ## Recommended Usage Pattern (Hybrid Approach)
|
|
8
|
+
*
|
|
9
|
+
* - **Write operations**: Use BFF client (`@agent-foundry/studio/bff`)
|
|
10
|
+
* - **Read operations**: Use Supabase client (`@agent-foundry/studio/db`)
|
|
11
|
+
* - **File uploads**: Use DirectUploader (`@agent-foundry/studio/oss`)
|
|
12
|
+
*
|
|
13
|
+
* This pattern ensures:
|
|
14
|
+
* - Security: Write operations go through BFF with service_role (bypasses RLS)
|
|
15
|
+
* - Performance: Read operations use direct Supabase connection
|
|
16
|
+
* - Consistency: All writes are validated server-side
|
|
6
17
|
*/
|
|
7
18
|
// Re-export all types
|
|
8
19
|
export * from './types';
|
|
9
20
|
// Re-export OSS utilities
|
|
10
21
|
export * from './oss';
|
|
11
|
-
// Re-export
|
|
22
|
+
// Re-export BFF API client (recommended for write operations)
|
|
23
|
+
// Note: Use '@agent-foundry/studio/bff' for full BFF types
|
|
24
|
+
export { createBFFClient, BFFAPIError } from './bff';
|
|
25
|
+
// Re-export database client (recommended for read operations only)
|
|
12
26
|
export * from './db';
|
|
13
27
|
// Re-export utilities
|
|
14
28
|
export * from './utils';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,sBAAsB;AACtB,cAAc,SAAS,CAAC;AAExB,0BAA0B;AAC1B,cAAc,OAAO,CAAC;AAEtB,8DAA8D;AAC9D,2DAA2D;AAC3D,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAGrD,mEAAmE;AACnE,cAAc,MAAM,CAAC;AAErB,sBAAsB;AACtB,cAAc,SAAS,CAAC"}
|
|
@@ -46,6 +46,11 @@ export interface Deployment {
|
|
|
46
46
|
ossKey?: string;
|
|
47
47
|
/** Public access URL for the deployed app */
|
|
48
48
|
ossUrl?: string;
|
|
49
|
+
/**
|
|
50
|
+
* Artifact ID created when publishing to Feed.
|
|
51
|
+
* Set when user publishes deployment to AF ecosystem.
|
|
52
|
+
*/
|
|
53
|
+
artifactId?: string;
|
|
49
54
|
/** Total bundle size in bytes */
|
|
50
55
|
bundleSizeBytes?: number;
|
|
51
56
|
/** Build output log */
|
|
@@ -75,6 +80,7 @@ export interface UpdateDeploymentInput {
|
|
|
75
80
|
ossBucket?: string;
|
|
76
81
|
ossKey?: string;
|
|
77
82
|
ossUrl?: string;
|
|
83
|
+
artifactId?: string;
|
|
78
84
|
bundleSizeBytes?: number;
|
|
79
85
|
buildLog?: string;
|
|
80
86
|
errorMessage?: string;
|
|
@@ -109,4 +115,54 @@ export interface DeploymentProgress {
|
|
|
109
115
|
message?: string;
|
|
110
116
|
timestamp: string;
|
|
111
117
|
}
|
|
118
|
+
/**
|
|
119
|
+
* App manifest for publishing to Feed
|
|
120
|
+
*/
|
|
121
|
+
export interface AppManifest {
|
|
122
|
+
/** App name */
|
|
123
|
+
name: string;
|
|
124
|
+
/** App version */
|
|
125
|
+
version: string;
|
|
126
|
+
/** Entry point path (default: "/index.html") */
|
|
127
|
+
entry?: string;
|
|
128
|
+
/** Minimum shell version required */
|
|
129
|
+
minShellVersion?: string;
|
|
130
|
+
/** App capabilities */
|
|
131
|
+
capabilities?: {
|
|
132
|
+
bridge?: string[];
|
|
133
|
+
network?: string[];
|
|
134
|
+
storage?: string[];
|
|
135
|
+
};
|
|
136
|
+
/** App permissions */
|
|
137
|
+
permissions?: Array<{
|
|
138
|
+
name: string;
|
|
139
|
+
reason: string;
|
|
140
|
+
}>;
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Input for publishing a project to Feed
|
|
144
|
+
*/
|
|
145
|
+
export interface PublishInput {
|
|
146
|
+
/** Specific deployment ID to publish (defaults to latest) */
|
|
147
|
+
deploymentId?: string;
|
|
148
|
+
/** App manifest override */
|
|
149
|
+
manifest?: AppManifest;
|
|
150
|
+
/** App status in registry */
|
|
151
|
+
status?: 'canary' | 'stable';
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Result of publishing to Feed
|
|
155
|
+
*/
|
|
156
|
+
export interface PublishResult {
|
|
157
|
+
/** Registered app ID */
|
|
158
|
+
appId: string;
|
|
159
|
+
/** Created artifact ID */
|
|
160
|
+
artifactId: string;
|
|
161
|
+
/** Deployment that was published */
|
|
162
|
+
deploymentId: string;
|
|
163
|
+
/** Share URL for the app */
|
|
164
|
+
shareUrl: string;
|
|
165
|
+
/** Direct entry URL (OSS) */
|
|
166
|
+
entryUrl: string;
|
|
167
|
+
}
|
|
112
168
|
//# sourceMappingURL=deployment.d.ts.map
|