Skip to content

Commit 021a087

Browse files
committed
Update api
1 parent 5950fce commit 021a087

3 files changed

Lines changed: 30 additions & 30 deletions

File tree

‎package.json‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "openworkers-api",
3-
"version": "1.1.2",
3+
"version": "1.1.3",
44
"license": "MIT",
55
"module": "src/index.ts",
66
"type": "module",

‎src/services/storage.ts‎

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -4,29 +4,29 @@ import { sharedStorage } from '../config';
44
import { MASKED_SECRET } from '../types';
55
import type { IStorageConfig, IStorageConfigCreateInput, IStorageConfigUpdateInput } from '../types';
66

7-
// Determine mode from storage config row
8-
function getMode(row: db.StorageConfigRow): 'shared' | 'custom' {
9-
// Shared mode uses platform R2 (endpoint is null or matches sharedStorage endpoint)
10-
// Custom mode has user-provided endpoint
11-
return row.endpoint === null || row.endpoint === sharedStorage.endpoint ? 'shared' : 'custom';
7+
// Determine provider from storage config row
8+
function getProvider(row: db.StorageConfigRow): 'platform' | 's3' {
9+
// Platform provider uses shared R2 (endpoint is null or matches sharedStorage endpoint)
10+
// S3 provider has user-provided endpoint
11+
return row.endpoint === null || row.endpoint === sharedStorage.endpoint ? 'platform' : 's3';
1212
}
1313

1414
function rowToStorageConfig(row: db.StorageConfigRow): IStorageConfig {
15-
const mode = getMode(row);
15+
const provider = getProvider(row);
1616

1717
return {
1818
id: row.id,
1919
name: row.name,
2020
desc: row.desc,
21-
mode,
22-
// Expose S3 details for custom mode, hide bucket/endpoint for shared
23-
bucket: mode === 'custom' ? row.bucket : undefined,
21+
provider,
22+
// Expose S3 details for s3 provider, hide bucket/endpoint for platform
23+
bucket: provider === 's3' ? row.bucket : undefined,
2424
prefix: row.prefix,
2525
// Always mask credentials
26-
accessKeyId: mode === 'custom' ? MASKED_SECRET : undefined,
27-
secretAccessKey: mode === 'custom' ? MASKED_SECRET : undefined,
28-
endpoint: mode === 'custom' ? row.endpoint : undefined,
29-
region: mode === 'custom' ? row.region : undefined,
26+
accessKeyId: provider === 's3' ? MASKED_SECRET : undefined,
27+
secretAccessKey: provider === 's3' ? MASKED_SECRET : undefined,
28+
endpoint: provider === 's3' ? row.endpoint : undefined,
29+
region: provider === 's3' ? row.region : undefined,
3030
publicUrl: row.publicUrl,
3131
createdAt: row.createdAt,
3232
updatedAt: row.updatedAt
@@ -50,7 +50,7 @@ export class StorageService {
5050
}
5151

5252
async create(userId: string, input: IStorageConfigCreateInput): Promise<IStorageConfig> {
53-
const { name, desc, mode } = input;
53+
const { name, desc, provider } = input;
5454

5555
// Check limit
5656
const user = await usersDb.findUserById(userId);
@@ -74,8 +74,8 @@ export class StorageService {
7474

7575
let row: db.StorageConfigRow;
7676

77-
if (mode === 'shared') {
78-
// Shared mode: use platform R2 credentials with user-specific prefix
77+
if (provider === 'platform') {
78+
// Platform provider: use shared R2 credentials with user-specific prefix
7979
if (!sharedStorage.bucket || !sharedStorage.accessKeyId || !sharedStorage.secretAccessKey) {
8080
throw new Error('Shared storage is not configured on this platform');
8181
}
@@ -93,7 +93,7 @@ export class StorageService {
9393
sharedStorage.publicUrl ?? undefined
9494
);
9595
} else {
96-
// Custom mode: use user-provided credentials
96+
// S3 provider: use user-provided credentials
9797
row = await db.createStorageConfig(
9898
userId,
9999
name,

‎src/types/schemas/storage.schema.ts‎

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ export const MASKED_SECRET = '********';
88
// Storage config (S3/R2 credentials) - used for both assets and storage bindings
99
// The binding type determines access: assets = read-only, storage = read/write
1010
export const StorageConfigSchema = ResourceSchema.extend({
11-
mode: z.enum(['shared', 'custom']),
12-
// Custom mode fields (hidden for shared mode)
11+
provider: z.enum(['platform', 's3']),
12+
// S3 provider fields (hidden for platform provider)
1313
bucket: z.string().max(255).optional(),
1414
prefix: z.string().max(255).nullable().optional(),
1515
accessKeyId: z.string().max(255).optional(), // Always masked as '********'
@@ -19,14 +19,14 @@ export const StorageConfigSchema = ResourceSchema.extend({
1919
publicUrl: z.string().max(255).nullable().optional()
2020
});
2121

22-
// Create input - shared mode (uses platform R2, no credentials needed)
23-
export const StorageConfigCreateSharedInputSchema = ResourceCreateInputSchema.extend({
24-
mode: z.literal('shared')
22+
// Create input - platform provider (uses shared R2, no credentials needed)
23+
export const StorageConfigCreatePlatformInputSchema = ResourceCreateInputSchema.extend({
24+
provider: z.literal('platform')
2525
});
2626

27-
// Create input - custom mode (user provides S3/R2 credentials)
28-
export const StorageConfigCreateCustomInputSchema = ResourceCreateInputSchema.extend({
29-
mode: z.literal('custom'),
27+
// Create input - s3 provider (user provides S3/R2 credentials)
28+
export const StorageConfigCreateS3InputSchema = ResourceCreateInputSchema.extend({
29+
provider: z.literal('s3'),
3030
bucket: z.string().min(1).max(255),
3131
prefix: z.string().max(255).optional(),
3232
accessKeyId: z.string().min(1).max(255),
@@ -37,12 +37,12 @@ export const StorageConfigCreateCustomInputSchema = ResourceCreateInputSchema.ex
3737
});
3838

3939
// Union of both create inputs
40-
export const StorageConfigCreateInputSchema = z.discriminatedUnion('mode', [
41-
StorageConfigCreateSharedInputSchema,
42-
StorageConfigCreateCustomInputSchema
40+
export const StorageConfigCreateInputSchema = z.discriminatedUnion('provider', [
41+
StorageConfigCreatePlatformInputSchema,
42+
StorageConfigCreateS3InputSchema
4343
]);
4444

45-
// Update input - includes custom config fields
45+
// Update input - includes S3 config fields
4646
export const StorageConfigUpdateInputSchema = ResourceUpdateInputSchema.extend({
4747
bucket: z.string().min(1).max(255).optional(),
4848
prefix: z.string().max(255).nullable().optional(),

0 commit comments

Comments
 (0)