@ankhorage/studio 0.1.6 → 0.3.0

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 (38) hide show
  1. package/README.md +1 -1
  2. package/dist/host/http/secretRoutes.d.ts +7 -0
  3. package/dist/host/http/secretRoutes.d.ts.map +1 -0
  4. package/dist/host/http/secretRoutes.js +165 -0
  5. package/dist/host/http/secretRoutes.js.map +1 -0
  6. package/dist/host/index.d.ts +4 -0
  7. package/dist/host/index.d.ts.map +1 -1
  8. package/dist/host/index.js +4 -0
  9. package/dist/host/index.js.map +1 -1
  10. package/dist/host/secrets/bunSupabaseVaultClient.d.ts +12 -0
  11. package/dist/host/secrets/bunSupabaseVaultClient.d.ts.map +1 -0
  12. package/dist/host/secrets/bunSupabaseVaultClient.js +43 -0
  13. package/dist/host/secrets/bunSupabaseVaultClient.js.map +1 -0
  14. package/dist/host/secrets/projectSecretService.d.ts +81 -0
  15. package/dist/host/secrets/projectSecretService.d.ts.map +1 -0
  16. package/dist/host/secrets/projectSecretService.js +240 -0
  17. package/dist/host/secrets/projectSecretService.js.map +1 -0
  18. package/dist/host/secrets/resolveProjectSecretDatabaseUrl.d.ts +12 -0
  19. package/dist/host/secrets/resolveProjectSecretDatabaseUrl.d.ts.map +1 -0
  20. package/dist/host/secrets/resolveProjectSecretDatabaseUrl.js +68 -0
  21. package/dist/host/secrets/resolveProjectSecretDatabaseUrl.js.map +1 -0
  22. package/dist/projectSecretApi.d.ts +70 -0
  23. package/dist/projectSecretApi.d.ts.map +1 -0
  24. package/dist/projectSecretApi.js +233 -0
  25. package/dist/projectSecretApi.js.map +1 -0
  26. package/dist/studioAdminRouteModel.d.ts +6 -5
  27. package/dist/studioAdminRouteModel.d.ts.map +1 -1
  28. package/dist/studioAdminRouteModel.js +1 -1
  29. package/dist/studioAdminRouteModel.js.map +1 -1
  30. package/dist/ui/StudioAdminOverlay.d.ts +11 -0
  31. package/dist/ui/StudioAdminOverlay.d.ts.map +1 -0
  32. package/dist/ui/StudioAdminOverlay.js +359 -0
  33. package/dist/ui/StudioAdminOverlay.js.map +1 -0
  34. package/dist/ui/useStudioAppBarAugmentation.d.ts +1 -1
  35. package/dist/ui/useStudioAppBarAugmentation.d.ts.map +1 -1
  36. package/dist/ui/useStudioAppBarAugmentation.js +38 -1
  37. package/dist/ui/useStudioAppBarAugmentation.js.map +1 -1
  38. package/package.json +15 -6
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projectSecretService.js","sourceRoot":"","sources":["../../../src/host/secrets/projectSecretService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ export interface ResolveProjectSecretDatabaseUrlInput {
2
+ readonly projectPath: string;
3
+ readonly processEnvironment?: Readonly<Record<string, string | undefined>>;
4
+ }
5
+ /**
6
+ * Resolves the trusted database bootstrap URL without consulting the app manifest.
7
+ *
8
+ * Project-local values are read only from the generated, untracked Minikube environment file.
9
+ * There is deliberately no plaintext project-file fallback.
10
+ */
11
+ export declare function resolveProjectSecretDatabaseUrl(input: ResolveProjectSecretDatabaseUrlInput): Promise<string>;
12
+ //# sourceMappingURL=resolveProjectSecretDatabaseUrl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveProjectSecretDatabaseUrl.d.ts","sourceRoot":"","sources":["../../../src/host/secrets/resolveProjectSecretDatabaseUrl.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,oCAAoC;IACnD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,kBAAkB,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;CAC5E;AAED;;;;;GAKG;AACH,wBAAsB,+BAA+B,CACnD,KAAK,EAAE,oCAAoC,GAC1C,OAAO,CAAC,MAAM,CAAC,CAajB"}
@@ -0,0 +1,68 @@
1
+ import { promises as fs } from 'fs';
2
+ import path from 'path';
3
+ const DATABASE_URL_KEYS = [
4
+ 'ANKH_SECRET_STORE_DATABASE_URL',
5
+ 'SUPABASE_DB_URL',
6
+ 'POSTGRES_URL',
7
+ 'DB_URL',
8
+ 'DATABASE_URL',
9
+ ];
10
+ /**
11
+ * Resolves the trusted database bootstrap URL without consulting the app manifest.
12
+ *
13
+ * Project-local values are read only from the generated, untracked Minikube environment file.
14
+ * There is deliberately no plaintext project-file fallback.
15
+ */
16
+ export async function resolveProjectSecretDatabaseUrl(input) {
17
+ const processEnvironment = input.processEnvironment ?? process.env;
18
+ const processValue = readFirstValue(processEnvironment);
19
+ if (processValue)
20
+ return processValue;
21
+ const envFile = path.join(input.projectPath, 'infra', 'minikube', '.env');
22
+ const projectEnvironment = await readEnvFile(envFile);
23
+ const projectValue = readFirstValue(projectEnvironment);
24
+ if (projectValue)
25
+ return projectValue;
26
+ throw new Error('Supabase Vault database access is not configured. Run the generated local Supabase bootstrap or set ANKH_SECRET_STORE_DATABASE_URL in the trusted Studio host environment.');
27
+ }
28
+ function readFirstValue(environment) {
29
+ for (const key of DATABASE_URL_KEYS) {
30
+ const value = environment[key]?.trim();
31
+ if (value)
32
+ return value;
33
+ }
34
+ return null;
35
+ }
36
+ async function readEnvFile(filePath) {
37
+ try {
38
+ const content = await fs.readFile(filePath, 'utf8');
39
+ const environment = {};
40
+ for (const line of content.split(/\r?\n/u)) {
41
+ const trimmed = line.trim();
42
+ if (!trimmed || trimmed.startsWith('#'))
43
+ continue;
44
+ const separator = trimmed.indexOf('=');
45
+ if (separator <= 0)
46
+ continue;
47
+ const key = trimmed.slice(0, separator).trim();
48
+ const value = trimmed
49
+ .slice(separator + 1)
50
+ .trim()
51
+ .replace(/^['"]|['"]$/gu, '');
52
+ environment[key] = value;
53
+ }
54
+ return environment;
55
+ }
56
+ catch (error) {
57
+ if (isMissingFileError(error))
58
+ return {};
59
+ throw error;
60
+ }
61
+ }
62
+ function isMissingFileError(error) {
63
+ return (typeof error === 'object' &&
64
+ error !== null &&
65
+ 'code' in error &&
66
+ error.code === 'ENOENT');
67
+ }
68
+ //# sourceMappingURL=resolveProjectSecretDatabaseUrl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveProjectSecretDatabaseUrl.js","sourceRoot":"","sources":["../../../src/host/secrets/resolveProjectSecretDatabaseUrl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,MAAM,iBAAiB,GAAG;IACxB,gCAAgC;IAChC,iBAAiB;IACjB,cAAc;IACd,QAAQ;IACR,cAAc;CACN,CAAC;AAOX;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,+BAA+B,CACnD,KAA2C;IAE3C,MAAM,kBAAkB,GAAG,KAAK,CAAC,kBAAkB,IAAI,OAAO,CAAC,GAAG,CAAC;IACnE,MAAM,YAAY,GAAG,cAAc,CAAC,kBAAkB,CAAC,CAAC;IACxD,IAAI,YAAY;QAAE,OAAO,YAAY,CAAC;IAEtC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;IAC1E,MAAM,kBAAkB,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,CAAC;IACtD,MAAM,YAAY,GAAG,cAAc,CAAC,kBAAkB,CAAC,CAAC;IACxD,IAAI,YAAY;QAAE,OAAO,YAAY,CAAC;IAEtC,MAAM,IAAI,KAAK,CACb,4KAA4K,CAC7K,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,WAAyD;IAC/E,KAAK,MAAM,GAAG,IAAI,iBAAiB,EAAE,CAAC;QACpC,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC;QACvC,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC;IAC1B,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,QAAgB;IACzC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACpD,MAAM,WAAW,GAA2B,EAAE,CAAC;QAE/C,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YAC5B,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,SAAS;YAElD,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACvC,IAAI,SAAS,IAAI,CAAC;gBAAE,SAAS;YAE7B,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC;YAC/C,MAAM,KAAK,GAAG,OAAO;iBAClB,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC;iBACpB,IAAI,EAAE;iBACN,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;YAChC,WAAW,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QAC3B,CAAC;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,kBAAkB,CAAC,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QACzC,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAc;IACxC,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,MAAM,IAAI,KAAK;QACd,KAA4B,CAAC,IAAI,KAAK,QAAQ,CAChD,CAAC;AACJ,CAAC"}
@@ -0,0 +1,70 @@
1
+ import type { AuthOAuthProviderId } from '@ankhorage/contracts';
2
+ import type { SecretMetadata, SecretPayload } from '@ankhorage/contracts/secrets';
3
+ export interface ProjectSecretCreateInput {
4
+ readonly projectId: string;
5
+ readonly environment?: string;
6
+ readonly ref: string;
7
+ readonly kind: string;
8
+ readonly provider?: string;
9
+ readonly payload: SecretPayload;
10
+ }
11
+ export interface ProjectSecretReplaceInput {
12
+ readonly projectId: string;
13
+ readonly environment?: string;
14
+ readonly ref: string;
15
+ readonly payload: SecretPayload;
16
+ }
17
+ export interface ProjectSecretRemoveInput {
18
+ readonly projectId: string;
19
+ readonly environment?: string;
20
+ readonly ref: string;
21
+ }
22
+ export interface ConfigureProjectOAuthProviderInput {
23
+ readonly projectId: string;
24
+ readonly providerId: AuthOAuthProviderId;
25
+ readonly environment?: string;
26
+ readonly credentialsRef?: string;
27
+ readonly enabled?: boolean;
28
+ readonly label?: string;
29
+ readonly scopes?: readonly string[];
30
+ readonly callbackRoute?: string;
31
+ readonly payload: SecretPayload;
32
+ }
33
+ export type ConfigureProjectOAuthProviderResponse = {
34
+ readonly ok: true;
35
+ readonly state: 'saved';
36
+ readonly metadata: SecretMetadata;
37
+ readonly credentialsRef: string;
38
+ } | {
39
+ readonly ok: false;
40
+ readonly state: 'secret_write_failed' | 'secret_saved_manifest_failed';
41
+ readonly error: {
42
+ readonly code: string;
43
+ readonly message: string;
44
+ };
45
+ readonly metadata?: SecretMetadata;
46
+ readonly credentialsRef?: string;
47
+ };
48
+ export declare class ProjectSecretApiError extends Error {
49
+ readonly code: string;
50
+ readonly status: number;
51
+ constructor(args: {
52
+ readonly code: string;
53
+ readonly message: string;
54
+ readonly status: number;
55
+ });
56
+ }
57
+ export declare function listProjectSecrets(input: {
58
+ readonly projectId: string;
59
+ readonly environment?: string;
60
+ readonly kind?: string;
61
+ readonly provider?: string;
62
+ }): Promise<readonly SecretMetadata[]>;
63
+ export declare function createProjectSecret(input: ProjectSecretCreateInput): Promise<SecretMetadata>;
64
+ export declare function replaceProjectSecret(input: ProjectSecretReplaceInput): Promise<SecretMetadata>;
65
+ export declare function removeProjectSecret(input: ProjectSecretRemoveInput): Promise<void>;
66
+ export declare function configureProjectOAuthProvider(input: ConfigureProjectOAuthProviderInput): Promise<ConfigureProjectOAuthProviderResponse>;
67
+ export declare function parseProjectSecretListResponse(value: unknown): readonly SecretMetadata[];
68
+ export declare function parseProjectSecretMetadataResponse(value: unknown): SecretMetadata;
69
+ export declare function parseConfigureProjectOAuthProviderResponse(value: unknown): ConfigureProjectOAuthProviderResponse;
70
+ //# sourceMappingURL=projectSecretApi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projectSecretApi.d.ts","sourceRoot":"","sources":["../src/projectSecretApi.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAalF,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;CACjC;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;CACjC;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,kCAAkC;IACjD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,mBAAmB,CAAC;IACzC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;CACjC;AAED,MAAM,MAAM,qCAAqC,GAC7C;IACE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAClB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC,GACD;IACE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IACnB,QAAQ,CAAC,KAAK,EAAE,qBAAqB,GAAG,8BAA8B,CAAC;IACvE,QAAQ,CAAC,KAAK,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IACpE,QAAQ,CAAC,QAAQ,CAAC,EAAE,cAAc,CAAC;IACnC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;CAClC,CAAC;AAEN,qBAAa,qBAAsB,SAAQ,KAAK;IAC9C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBAEZ,IAAI,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;KAAE;CAM/F;AAED,wBAAsB,kBAAkB,CAAC,KAAK,EAAE;IAC9C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B,GAAG,OAAO,CAAC,SAAS,cAAc,EAAE,CAAC,CAUrC;AAED,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,wBAAwB,GAC9B,OAAO,CAAC,cAAc,CAAC,CAazB;AAED,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,yBAAyB,GAC/B,OAAO,CAAC,cAAc,CAAC,CAWzB;AAED,wBAAsB,mBAAmB,CAAC,KAAK,EAAE,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC,CAOxF;AAED,wBAAsB,6BAA6B,CACjD,KAAK,EAAE,kCAAkC,GACxC,OAAO,CAAC,qCAAqC,CAAC,CAmBhD;AAED,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,cAAc,EAAE,CAMxF;AAED,wBAAgB,kCAAkC,CAAC,KAAK,EAAE,OAAO,GAAG,cAAc,CAMjF;AASD,wBAAgB,0CAA0C,CACxD,KAAK,EAAE,OAAO,GACb,qCAAqC,CA6BvC"}
@@ -0,0 +1,233 @@
1
+ const FORBIDDEN_SECRET_RESPONSE_KEYS = new Set([
2
+ 'clientSecret',
3
+ 'payload',
4
+ 'privateKey',
5
+ 'rawValue',
6
+ 'secret',
7
+ 'secretValue',
8
+ 'token',
9
+ 'value',
10
+ ]);
11
+ export class ProjectSecretApiError extends Error {
12
+ code;
13
+ status;
14
+ constructor(args) {
15
+ super(args.message);
16
+ this.name = 'ProjectSecretApiError';
17
+ this.code = args.code;
18
+ this.status = args.status;
19
+ }
20
+ }
21
+ export async function listProjectSecrets(input) {
22
+ const query = createQuery({
23
+ environment: input.environment,
24
+ kind: input.kind,
25
+ provider: input.provider,
26
+ });
27
+ const value = await requestJson(`/projects/${encodeURIComponent(input.projectId)}/secrets${query}`);
28
+ return parseProjectSecretListResponse(value);
29
+ }
30
+ export async function createProjectSecret(input) {
31
+ const value = await requestJson(`/projects/${encodeURIComponent(input.projectId)}/secrets`, {
32
+ method: 'POST',
33
+ headers: { 'Content-Type': 'application/json' },
34
+ body: JSON.stringify({
35
+ environment: input.environment,
36
+ ref: input.ref,
37
+ kind: input.kind,
38
+ provider: input.provider,
39
+ payload: input.payload,
40
+ }),
41
+ });
42
+ return parseProjectSecretMetadataResponse(value);
43
+ }
44
+ export async function replaceProjectSecret(input) {
45
+ const value = await requestJson(`/projects/${encodeURIComponent(input.projectId)}/secrets`, {
46
+ method: 'PUT',
47
+ headers: { 'Content-Type': 'application/json' },
48
+ body: JSON.stringify({
49
+ environment: input.environment,
50
+ ref: input.ref,
51
+ payload: input.payload,
52
+ }),
53
+ });
54
+ return parseProjectSecretMetadataResponse(value);
55
+ }
56
+ export async function removeProjectSecret(input) {
57
+ const query = createQuery({ environment: input.environment, ref: input.ref });
58
+ const value = await requestJson(`/projects/${encodeURIComponent(input.projectId)}/secrets${query}`, { method: 'DELETE' });
59
+ parseProjectSecretRemoveResponse(value);
60
+ }
61
+ export async function configureProjectOAuthProvider(input) {
62
+ const value = await requestJson(`/projects/${encodeURIComponent(input.projectId)}/auth/oauth/${encodeURIComponent(input.providerId)}`, {
63
+ method: 'POST',
64
+ headers: { 'Content-Type': 'application/json' },
65
+ body: JSON.stringify({
66
+ environment: input.environment,
67
+ credentialsRef: input.credentialsRef,
68
+ enabled: input.enabled,
69
+ label: input.label,
70
+ scopes: input.scopes,
71
+ callbackRoute: input.callbackRoute,
72
+ payload: input.payload,
73
+ }),
74
+ }, true);
75
+ return parseConfigureProjectOAuthProviderResponse(value);
76
+ }
77
+ export function parseProjectSecretListResponse(value) {
78
+ const result = readResult(value);
79
+ if (!result.ok || !Array.isArray(result.data)) {
80
+ throw createInvalidResponseError('Secret list response was invalid.');
81
+ }
82
+ return result.data.map(parseSecretMetadata);
83
+ }
84
+ export function parseProjectSecretMetadataResponse(value) {
85
+ const result = readResult(value);
86
+ if (!result.ok) {
87
+ throw createInvalidResponseError('Secret metadata response was invalid.');
88
+ }
89
+ return parseSecretMetadata(result.data);
90
+ }
91
+ function parseProjectSecretRemoveResponse(value) {
92
+ const result = readResult(value);
93
+ if (!result.ok) {
94
+ throw createInvalidResponseError('Secret removal response was invalid.');
95
+ }
96
+ }
97
+ export function parseConfigureProjectOAuthProviderResponse(value) {
98
+ const record = asRecord(value);
99
+ if (record === null || typeof record.ok !== 'boolean') {
100
+ throw createInvalidResponseError('OAuth configuration response was invalid.');
101
+ }
102
+ if (record.ok) {
103
+ if (record.state !== 'saved' || typeof record.credentialsRef !== 'string') {
104
+ throw createInvalidResponseError('OAuth configuration response was invalid.');
105
+ }
106
+ return {
107
+ ok: true,
108
+ state: 'saved',
109
+ metadata: parseSecretMetadata(record.metadata),
110
+ credentialsRef: record.credentialsRef,
111
+ };
112
+ }
113
+ if (record.state !== 'secret_write_failed' && record.state !== 'secret_saved_manifest_failed') {
114
+ throw createInvalidResponseError('OAuth configuration response was invalid.');
115
+ }
116
+ return {
117
+ ok: false,
118
+ state: record.state,
119
+ error: parseError(record.error),
120
+ ...(record.metadata === undefined ? {} : { metadata: parseSecretMetadata(record.metadata) }),
121
+ ...(typeof record.credentialsRef === 'string' ? { credentialsRef: record.credentialsRef } : {}),
122
+ };
123
+ }
124
+ async function requestJson(path, init, allowStructuredFailure = false) {
125
+ const { API_BASE } = await import('./core/constants');
126
+ const response = await fetch(`${API_BASE}${path}`, init);
127
+ const value = await readJson(response);
128
+ if (!response.ok && !allowStructuredFailure) {
129
+ throw parseHttpError(value, response.status);
130
+ }
131
+ if (!response.ok && allowStructuredFailure) {
132
+ const record = asRecord(value);
133
+ if (record?.ok !== false) {
134
+ throw parseHttpError(value, response.status);
135
+ }
136
+ }
137
+ return value;
138
+ }
139
+ async function readJson(response) {
140
+ try {
141
+ return await response.json();
142
+ }
143
+ catch {
144
+ throw new ProjectSecretApiError({
145
+ code: 'invalid_response',
146
+ message: 'The Studio host returned a non-JSON secret response.',
147
+ status: response.status,
148
+ });
149
+ }
150
+ }
151
+ function parseHttpError(value, status) {
152
+ const record = asRecord(value);
153
+ const errorRecord = asRecord(record?.error);
154
+ const code = typeof errorRecord?.code === 'string'
155
+ ? errorRecord.code
156
+ : typeof record?.code === 'string'
157
+ ? record.code
158
+ : 'request_failed';
159
+ const message = typeof errorRecord?.message === 'string'
160
+ ? errorRecord.message
161
+ : typeof record?.error === 'string'
162
+ ? record.error
163
+ : 'The Studio secret request failed.';
164
+ return new ProjectSecretApiError({ code, message, status });
165
+ }
166
+ function readResult(value) {
167
+ const record = asRecord(value);
168
+ if (record === null || typeof record.ok !== 'boolean') {
169
+ throw createInvalidResponseError('Secret-store response was invalid.');
170
+ }
171
+ return { ok: record.ok, data: record.data };
172
+ }
173
+ function parseSecretMetadata(value) {
174
+ const record = asRecord(value);
175
+ if (record === null) {
176
+ throw createInvalidResponseError('Secret metadata was invalid.');
177
+ }
178
+ for (const key of Object.keys(record)) {
179
+ if (FORBIDDEN_SECRET_RESPONSE_KEYS.has(key)) {
180
+ throw createInvalidResponseError('Secret response unexpectedly contained a raw value field.');
181
+ }
182
+ }
183
+ const scope = asRecord(record.scope);
184
+ if (typeof record.ref !== 'string' ||
185
+ scope === null ||
186
+ typeof scope.projectId !== 'string' ||
187
+ typeof scope.environment !== 'string' ||
188
+ typeof record.kind !== 'string' ||
189
+ (record.provider !== undefined && typeof record.provider !== 'string') ||
190
+ !isStringArray(record.configuredFields) ||
191
+ typeof record.createdAt !== 'string' ||
192
+ typeof record.updatedAt !== 'string') {
193
+ throw createInvalidResponseError('Secret metadata was invalid.');
194
+ }
195
+ return {
196
+ ref: record.ref,
197
+ scope: { projectId: scope.projectId, environment: scope.environment },
198
+ kind: record.kind,
199
+ ...(typeof record.provider === 'string' ? { provider: record.provider } : {}),
200
+ configuredFields: [...record.configuredFields],
201
+ createdAt: record.createdAt,
202
+ updatedAt: record.updatedAt,
203
+ };
204
+ }
205
+ function parseError(value) {
206
+ const record = asRecord(value);
207
+ if (record === null || typeof record.code !== 'string' || typeof record.message !== 'string') {
208
+ throw createInvalidResponseError('Secret error response was invalid.');
209
+ }
210
+ return { code: record.code, message: record.message };
211
+ }
212
+ function createQuery(values) {
213
+ const params = new URLSearchParams();
214
+ for (const [key, value] of Object.entries(values)) {
215
+ const normalized = value?.trim();
216
+ if (normalized)
217
+ params.set(key, normalized);
218
+ }
219
+ const query = params.toString();
220
+ return query ? `?${query}` : '';
221
+ }
222
+ function asRecord(value) {
223
+ return typeof value === 'object' && value !== null && !Array.isArray(value)
224
+ ? value
225
+ : null;
226
+ }
227
+ function isStringArray(value) {
228
+ return Array.isArray(value) && value.every((entry) => typeof entry === 'string');
229
+ }
230
+ function createInvalidResponseError(message) {
231
+ return new ProjectSecretApiError({ code: 'invalid_response', message, status: 502 });
232
+ }
233
+ //# sourceMappingURL=projectSecretApi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projectSecretApi.js","sourceRoot":"","sources":["../src/projectSecretApi.ts"],"names":[],"mappings":"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"}
@@ -1,21 +1,22 @@
1
1
  import type { StudioAdminRoutePath, StudioPanelId } from './index';
2
+ export type StudioResolvedAdminRoutePath = StudioAdminRoutePath | '/ankh/secrets';
2
3
  export interface StudioAdminRouteRenderState {
3
- routeAdminPath: StudioAdminRoutePath | null;
4
- resolvedAdminRoutePath: StudioAdminRoutePath;
4
+ routeAdminPath: StudioResolvedAdminRoutePath | null;
5
+ resolvedAdminRoutePath: StudioResolvedAdminRoutePath;
5
6
  propertiesNodeId: string | null;
6
7
  shouldRenderAppContent: true;
7
8
  shouldRenderAdminOverlay: boolean;
8
9
  }
9
- export declare function resolveStudioAdminRoutePath(pathname: string): StudioAdminRoutePath | null;
10
+ export declare function resolveStudioAdminRoutePath(pathname: string): StudioResolvedAdminRoutePath | null;
10
11
  export declare function resolveStudioPropertiesNodeId(pathname: string): string | null;
11
12
  export declare function createStudioAdminRouteRenderState(args: {
12
13
  pathname: string;
13
14
  activeAdminRoutePath: StudioAdminRoutePath;
14
15
  }): StudioAdminRouteRenderState;
15
16
  export declare function openStudioAdminRoute(args: {
16
- next: Exclude<StudioAdminRoutePath, '/'>;
17
+ next: Exclude<StudioResolvedAdminRoutePath, '/'>;
17
18
  setActivePanelId: (panelId: StudioPanelId | null) => void;
18
- pushRoute: (routePath: Exclude<StudioAdminRoutePath, '/'>) => void;
19
+ pushRoute: (routePath: Exclude<StudioResolvedAdminRoutePath, '/'>) => void;
19
20
  }): void;
20
21
  export declare function createStudioPropertiesRoutePath(nodeId: string): `/ankh/properties/${string}`;
21
22
  //# sourceMappingURL=studioAdminRouteModel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"studioAdminRouteModel.d.ts","sourceRoot":"","sources":["../src/studioAdminRouteModel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAEnE,MAAM,WAAW,2BAA2B;IAC1C,cAAc,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAC5C,sBAAsB,EAAE,oBAAoB,CAAC;IAC7C,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,sBAAsB,EAAE,IAAI,CAAC;IAC7B,wBAAwB,EAAE,OAAO,CAAC;CACnC;AAKD,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,MAAM,GAAG,oBAAoB,GAAG,IAAI,CAMzF;AAED,wBAAgB,6BAA6B,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAe7E;AAED,wBAAgB,iCAAiC,CAAC,IAAI,EAAE;IACtD,QAAQ,EAAE,MAAM,CAAC;IACjB,oBAAoB,EAAE,oBAAoB,CAAC;CAC5C,GAAG,2BAA2B,CAW9B;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE;IACzC,IAAI,EAAE,OAAO,CAAC,oBAAoB,EAAE,GAAG,CAAC,CAAC;IACzC,gBAAgB,EAAE,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,KAAK,IAAI,CAAC;IAC1D,SAAS,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,oBAAoB,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC;CACpE,GAAG,IAAI,CAGP;AAED,wBAAgB,+BAA+B,CAAC,MAAM,EAAE,MAAM,GAAG,oBAAoB,MAAM,EAAE,CAE5F"}
1
+ {"version":3,"file":"studioAdminRouteModel.d.ts","sourceRoot":"","sources":["../src/studioAdminRouteModel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAEnE,MAAM,MAAM,4BAA4B,GAAG,oBAAoB,GAAG,eAAe,CAAC;AAElF,MAAM,WAAW,2BAA2B;IAC1C,cAAc,EAAE,4BAA4B,GAAG,IAAI,CAAC;IACpD,sBAAsB,EAAE,4BAA4B,CAAC;IACrD,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,sBAAsB,EAAE,IAAI,CAAC;IAC7B,wBAAwB,EAAE,OAAO,CAAC;CACnC;AAKD,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,MAAM,GAAG,4BAA4B,GAAG,IAAI,CAMjG;AAED,wBAAgB,6BAA6B,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAe7E;AAED,wBAAgB,iCAAiC,CAAC,IAAI,EAAE;IACtD,QAAQ,EAAE,MAAM,CAAC;IACjB,oBAAoB,EAAE,oBAAoB,CAAC;CAC5C,GAAG,2BAA2B,CAW9B;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE;IACzC,IAAI,EAAE,OAAO,CAAC,4BAA4B,EAAE,GAAG,CAAC,CAAC;IACjD,gBAAgB,EAAE,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,KAAK,IAAI,CAAC;IAC1D,SAAS,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,4BAA4B,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC;CAC5E,GAAG,IAAI,CAGP;AAED,wBAAgB,+BAA+B,CAAC,MAAM,EAAE,MAAM,GAAG,oBAAoB,MAAM,EAAE,CAE5F"}
@@ -1,4 +1,4 @@
1
- const ADMIN_ROUTE_PATHS = ['/ankh/apis', '/ankh/auth', '/ankh/theme'];
1
+ const ADMIN_ROUTE_PATHS = ['/ankh/apis', '/ankh/auth', '/ankh/secrets', '/ankh/theme'];
2
2
  const PROPERTIES_ROUTE_PREFIX = '/ankh/properties/';
3
3
  export function resolveStudioAdminRoutePath(pathname) {
4
4
  if (pathname.startsWith(PROPERTIES_ROUTE_PREFIX)) {
@@ -1 +1 @@
1
- {"version":3,"file":"studioAdminRouteModel.js","sourceRoot":"","sources":["../src/studioAdminRouteModel.ts"],"names":[],"mappings":"AAUA,MAAM,iBAAiB,GAAG,CAAC,YAAY,EAAE,YAAY,EAAE,aAAa,CAAU,CAAC;AAC/E,MAAM,uBAAuB,GAAG,mBAAmB,CAAC;AAEpD,MAAM,UAAU,2BAA2B,CAAC,QAAgB;IAC1D,IAAI,QAAQ,CAAC,UAAU,CAAC,uBAAuB,CAAC,EAAE,CAAC;QACjD,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IAED,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,KAAK,QAAQ,CAAC,IAAI,IAAI,CAAC;AAC/E,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,QAAgB;IAC5D,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,uBAAuB,CAAC,EAAE,CAAC;QAClD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAClF,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC;QACH,OAAO,kBAAkB,CAAC,aAAa,CAAC,CAAC;IAC3C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,aAAa,CAAC;IACvB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,iCAAiC,CAAC,IAGjD;IACC,MAAM,cAAc,GAAG,2BAA2B,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAClE,MAAM,sBAAsB,GAAG,cAAc,IAAI,IAAI,CAAC,oBAAoB,CAAC;IAE3E,OAAO;QACL,cAAc;QACd,sBAAsB;QACtB,gBAAgB,EAAE,6BAA6B,CAAC,IAAI,CAAC,QAAQ,CAAC;QAC9D,sBAAsB,EAAE,IAAI;QAC5B,wBAAwB,EAAE,sBAAsB,KAAK,GAAG;KACzD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,IAIpC;IACC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC5B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,+BAA+B,CAAC,MAAc;IAC5D,OAAO,oBAAoB,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC;AAC1D,CAAC"}
1
+ {"version":3,"file":"studioAdminRouteModel.js","sourceRoot":"","sources":["../src/studioAdminRouteModel.ts"],"names":[],"mappings":"AAYA,MAAM,iBAAiB,GAAG,CAAC,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,aAAa,CAAU,CAAC;AAChG,MAAM,uBAAuB,GAAG,mBAAmB,CAAC;AAEpD,MAAM,UAAU,2BAA2B,CAAC,QAAgB;IAC1D,IAAI,QAAQ,CAAC,UAAU,CAAC,uBAAuB,CAAC,EAAE,CAAC;QACjD,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IAED,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,KAAK,QAAQ,CAAC,IAAI,IAAI,CAAC;AAC/E,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,QAAgB;IAC5D,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,uBAAuB,CAAC,EAAE,CAAC;QAClD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAClF,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC;QACH,OAAO,kBAAkB,CAAC,aAAa,CAAC,CAAC;IAC3C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,aAAa,CAAC;IACvB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,iCAAiC,CAAC,IAGjD;IACC,MAAM,cAAc,GAAG,2BAA2B,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAClE,MAAM,sBAAsB,GAAG,cAAc,IAAI,IAAI,CAAC,oBAAoB,CAAC;IAE3E,OAAO;QACL,cAAc;QACd,sBAAsB;QACtB,gBAAgB,EAAE,6BAA6B,CAAC,IAAI,CAAC,QAAQ,CAAC;QAC9D,sBAAsB,EAAE,IAAI;QAC5B,wBAAwB,EAAE,sBAAsB,KAAK,GAAG;KACzD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,IAIpC;IACC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC5B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,+BAA+B,CAAC,MAAc;IAC5D,OAAO,oBAAoB,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC;AAC1D,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { AppManifest } from '@ankhorage/contracts';
2
+ import React from 'react';
3
+ export type StudioPhase2AdminRoute = '/ankh/auth' | '/ankh/secrets';
4
+ export interface StudioAdminOverlayProps {
5
+ readonly route: StudioPhase2AdminRoute;
6
+ readonly projectId: string;
7
+ readonly manifest: AppManifest | null;
8
+ readonly onClose: () => void;
9
+ }
10
+ export declare function StudioAdminOverlay(props: StudioAdminOverlayProps): React.JSX.Element;
11
+ //# sourceMappingURL=StudioAdminOverlay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StudioAdminOverlay.d.ts","sourceRoot":"","sources":["../../src/ui/StudioAdminOverlay.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAuB,MAAM,sBAAsB,CAAC;AAQ7E,OAAO,KAAoD,MAAM,OAAO,CAAC;AAsBzE,MAAM,MAAM,sBAAsB,GAAG,YAAY,GAAG,eAAe,CAAC;AAEpE,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,KAAK,EAAE,sBAAsB,CAAC;IACvC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,WAAW,GAAG,IAAI,CAAC;IACtC,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;CAC9B;AAcD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,qBAqChE"}