@authrim/setup 0.1.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 (78) hide show
  1. package/README.md +303 -0
  2. package/dist/__tests__/config.test.d.ts +5 -0
  3. package/dist/__tests__/config.test.d.ts.map +1 -0
  4. package/dist/__tests__/config.test.js +115 -0
  5. package/dist/__tests__/config.test.js.map +1 -0
  6. package/dist/__tests__/keys.test.d.ts +5 -0
  7. package/dist/__tests__/keys.test.d.ts.map +1 -0
  8. package/dist/__tests__/keys.test.js +87 -0
  9. package/dist/__tests__/keys.test.js.map +1 -0
  10. package/dist/__tests__/naming.test.d.ts +5 -0
  11. package/dist/__tests__/naming.test.d.ts.map +1 -0
  12. package/dist/__tests__/naming.test.js +84 -0
  13. package/dist/__tests__/naming.test.js.map +1 -0
  14. package/dist/cli/commands/config.d.ts +13 -0
  15. package/dist/cli/commands/config.d.ts.map +1 -0
  16. package/dist/cli/commands/config.js +231 -0
  17. package/dist/cli/commands/config.js.map +1 -0
  18. package/dist/cli/commands/deploy.d.ts +21 -0
  19. package/dist/cli/commands/deploy.d.ts.map +1 -0
  20. package/dist/cli/commands/deploy.js +304 -0
  21. package/dist/cli/commands/deploy.js.map +1 -0
  22. package/dist/cli/commands/init.d.ts +14 -0
  23. package/dist/cli/commands/init.d.ts.map +1 -0
  24. package/dist/cli/commands/init.js +1248 -0
  25. package/dist/cli/commands/init.js.map +1 -0
  26. package/dist/core/admin.d.ts +64 -0
  27. package/dist/core/admin.d.ts.map +1 -0
  28. package/dist/core/admin.js +247 -0
  29. package/dist/core/admin.js.map +1 -0
  30. package/dist/core/cloudflare.d.ts +157 -0
  31. package/dist/core/cloudflare.d.ts.map +1 -0
  32. package/dist/core/cloudflare.js +452 -0
  33. package/dist/core/cloudflare.js.map +1 -0
  34. package/dist/core/config.d.ts +891 -0
  35. package/dist/core/config.d.ts.map +1 -0
  36. package/dist/core/config.js +208 -0
  37. package/dist/core/config.js.map +1 -0
  38. package/dist/core/deploy.d.ts +81 -0
  39. package/dist/core/deploy.d.ts.map +1 -0
  40. package/dist/core/deploy.js +389 -0
  41. package/dist/core/deploy.js.map +1 -0
  42. package/dist/core/keys.d.ts +111 -0
  43. package/dist/core/keys.d.ts.map +1 -0
  44. package/dist/core/keys.js +287 -0
  45. package/dist/core/keys.js.map +1 -0
  46. package/dist/core/lock.d.ts +220 -0
  47. package/dist/core/lock.d.ts.map +1 -0
  48. package/dist/core/lock.js +230 -0
  49. package/dist/core/lock.js.map +1 -0
  50. package/dist/core/naming.d.ts +151 -0
  51. package/dist/core/naming.d.ts.map +1 -0
  52. package/dist/core/naming.js +209 -0
  53. package/dist/core/naming.js.map +1 -0
  54. package/dist/core/source.d.ts +68 -0
  55. package/dist/core/source.d.ts.map +1 -0
  56. package/dist/core/source.js +285 -0
  57. package/dist/core/source.js.map +1 -0
  58. package/dist/core/wrangler.d.ts +87 -0
  59. package/dist/core/wrangler.d.ts.map +1 -0
  60. package/dist/core/wrangler.js +398 -0
  61. package/dist/core/wrangler.js.map +1 -0
  62. package/dist/index.d.ts +11 -0
  63. package/dist/index.d.ts.map +1 -0
  64. package/dist/index.js +117 -0
  65. package/dist/index.js.map +1 -0
  66. package/dist/web/api.d.ts +21 -0
  67. package/dist/web/api.d.ts.map +1 -0
  68. package/dist/web/api.js +423 -0
  69. package/dist/web/api.js.map +1 -0
  70. package/dist/web/server.d.ts +12 -0
  71. package/dist/web/server.d.ts.map +1 -0
  72. package/dist/web/server.js +112 -0
  73. package/dist/web/server.js.map +1 -0
  74. package/dist/web/ui.d.ts +7 -0
  75. package/dist/web/ui.d.ts.map +1 -0
  76. package/dist/web/ui.js +765 -0
  77. package/dist/web/ui.js.map +1 -0
  78. package/package.json +61 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,208 @@
1
+ /**
2
+ * Authrim Configuration Schema
3
+ *
4
+ * This module defines the configuration schema using Zod for type safety
5
+ * and validation. The configuration is stored in authrim-config.json.
6
+ */
7
+ import { z } from 'zod';
8
+ // =============================================================================
9
+ // URL Configuration
10
+ // =============================================================================
11
+ export const UrlConfigSchema = z.object({
12
+ /** Custom domain (null = use auto-generated URL) */
13
+ custom: z.string().url().nullable().optional(),
14
+ /** Auto-generated URL (workers.dev or pages.dev) */
15
+ auto: z.string().url().optional(),
16
+ });
17
+ export const UrlsConfigSchema = z.object({
18
+ /** API / OIDC issuer URL */
19
+ api: UrlConfigSchema,
20
+ /** Login UI URL */
21
+ loginUi: UrlConfigSchema,
22
+ /** Admin UI URL */
23
+ adminUi: UrlConfigSchema,
24
+ });
25
+ // =============================================================================
26
+ // Source Information
27
+ // =============================================================================
28
+ export const SourceInfoSchema = z.object({
29
+ /** GitHub repository (e.g., "sgrastar/authrim") */
30
+ repository: z.string(),
31
+ /** Git reference (tag or branch) */
32
+ gitRef: z.string(),
33
+ /** Full commit hash */
34
+ commitHash: z.string(),
35
+ /** SHA256 hash of the source artifact */
36
+ artifactHash: z.string().optional(),
37
+ });
38
+ // =============================================================================
39
+ // Environment Configuration
40
+ // =============================================================================
41
+ export const EnvironmentConfigSchema = z.object({
42
+ /** Environment prefix (e.g., "prod", "staging", "dev") */
43
+ prefix: z.string().regex(/^[a-z][a-z0-9-]*$/, {
44
+ message: 'Prefix must start with a letter and contain only lowercase letters, numbers, and hyphens',
45
+ }),
46
+ });
47
+ // =============================================================================
48
+ // Tenant Configuration
49
+ // =============================================================================
50
+ export const TenantConfigSchema = z.object({
51
+ /** Tenant identifier */
52
+ name: z.string().default('default'),
53
+ /** Human-readable tenant name */
54
+ displayName: z.string().default('Default Tenant'),
55
+ });
56
+ // =============================================================================
57
+ // Components Configuration
58
+ // =============================================================================
59
+ export const ComponentsConfigSchema = z.object({
60
+ /** Core API components (always enabled) */
61
+ api: z.boolean().default(true),
62
+ /** Login UI component */
63
+ loginUi: z.boolean().default(true),
64
+ /** Admin UI component */
65
+ adminUi: z.boolean().default(true),
66
+ /** SAML IdP/SP support */
67
+ saml: z.boolean().default(false),
68
+ /** Async queue processing */
69
+ async: z.boolean().default(false),
70
+ /** Verifiable Credentials */
71
+ vc: z.boolean().default(false),
72
+ /** External IdP Bridge */
73
+ bridge: z.boolean().default(false),
74
+ /** ReBAC Policy service */
75
+ policy: z.boolean().default(false),
76
+ });
77
+ // =============================================================================
78
+ // OIDC Configuration
79
+ // =============================================================================
80
+ export const OidcConfigSchema = z.object({
81
+ /** Access token TTL in seconds */
82
+ accessTokenTtl: z.number().int().positive().default(3600),
83
+ /** Refresh token TTL in seconds */
84
+ refreshTokenTtl: z.number().int().positive().default(604800),
85
+ /** Authorization code TTL in seconds */
86
+ authCodeTtl: z.number().int().positive().default(600),
87
+ /** Require PKCE for all clients */
88
+ pkceRequired: z.boolean().default(true),
89
+ /** Supported response types */
90
+ responseTypes: z.array(z.string()).default(['code']),
91
+ /** Supported grant types */
92
+ grantTypes: z.array(z.string()).default(['authorization_code', 'refresh_token']),
93
+ });
94
+ // =============================================================================
95
+ // Sharding Configuration
96
+ // =============================================================================
97
+ export const ShardingConfigSchema = z.object({
98
+ /** Number of authorization code store shards */
99
+ authCodeShards: z.number().int().positive().default(64),
100
+ /** Number of refresh token rotator shards */
101
+ refreshTokenShards: z.number().int().positive().default(8),
102
+ });
103
+ // =============================================================================
104
+ // Feature Flags
105
+ // =============================================================================
106
+ export const QueueFeatureSchema = z.object({
107
+ enabled: z.boolean().default(false),
108
+ });
109
+ export const R2FeatureSchema = z.object({
110
+ enabled: z.boolean().default(false),
111
+ });
112
+ export const EmailFeatureSchema = z.object({
113
+ provider: z.enum(['none', 'resend', 'sendgrid', 'ses']).default('none'),
114
+ });
115
+ export const FeaturesConfigSchema = z.object({
116
+ queue: QueueFeatureSchema.default({}),
117
+ r2: R2FeatureSchema.default({}),
118
+ email: EmailFeatureSchema.default({}),
119
+ });
120
+ // =============================================================================
121
+ // Keys Configuration
122
+ // =============================================================================
123
+ export const KeysConfigSchema = z.object({
124
+ /** Key ID (kid) for JWK */
125
+ keyId: z.string().optional(),
126
+ /** Public key in JWK format */
127
+ publicKeyJwk: z.record(z.unknown()).optional(),
128
+ /** Path to secrets directory */
129
+ secretsPath: z.string().default('./.keys/'),
130
+ /** Whether to include secrets in config (not recommended) */
131
+ includeSecrets: z.boolean().default(false),
132
+ });
133
+ // =============================================================================
134
+ // Cloudflare Configuration
135
+ // =============================================================================
136
+ export const CloudflareConfigSchema = z.object({
137
+ /** Cloudflare account ID */
138
+ accountId: z.string().optional(),
139
+ });
140
+ // =============================================================================
141
+ // Profile Types
142
+ // =============================================================================
143
+ export const ProfileSchema = z.enum([
144
+ 'basic-op', // Basic OpenID Provider
145
+ 'fapi-rw', // Financial-grade API Read-Write
146
+ 'fapi2-security', // FAPI 2.0 Security Profile
147
+ ]);
148
+ // =============================================================================
149
+ // Main Configuration Schema
150
+ // =============================================================================
151
+ export const AuthrimConfigSchema = z.object({
152
+ /** Configuration schema version */
153
+ version: z.string().default('1.0.0'),
154
+ /** Creation timestamp */
155
+ createdAt: z.string().datetime().optional(),
156
+ /** Last update timestamp */
157
+ updatedAt: z.string().datetime().optional(),
158
+ /** Source information */
159
+ source: SourceInfoSchema.optional(),
160
+ /** Environment configuration */
161
+ environment: EnvironmentConfigSchema,
162
+ /** URL configuration */
163
+ urls: UrlsConfigSchema.optional(),
164
+ /** Tenant configuration */
165
+ tenant: TenantConfigSchema.default({}),
166
+ /** Enabled components */
167
+ components: ComponentsConfigSchema.default({}),
168
+ /** OIDC profile */
169
+ profile: ProfileSchema.default('basic-op'),
170
+ /** OIDC settings */
171
+ oidc: OidcConfigSchema.default({}),
172
+ /** Sharding configuration */
173
+ sharding: ShardingConfigSchema.default({}),
174
+ /** Feature flags */
175
+ features: FeaturesConfigSchema.default({}),
176
+ /** Key configuration */
177
+ keys: KeysConfigSchema.default({}),
178
+ /** Cloudflare configuration */
179
+ cloudflare: CloudflareConfigSchema.default({}),
180
+ });
181
+ // =============================================================================
182
+ // Helper Functions
183
+ // =============================================================================
184
+ /**
185
+ * Create a default configuration with minimal settings
186
+ */
187
+ export function createDefaultConfig(prefix) {
188
+ const now = new Date().toISOString();
189
+ return AuthrimConfigSchema.parse({
190
+ version: '1.0.0',
191
+ createdAt: now,
192
+ updatedAt: now,
193
+ environment: { prefix },
194
+ });
195
+ }
196
+ /**
197
+ * Validate and parse a configuration object
198
+ */
199
+ export function parseConfig(data) {
200
+ return AuthrimConfigSchema.parse(data);
201
+ }
202
+ /**
203
+ * Safely validate a configuration object (returns result instead of throwing)
204
+ */
205
+ export function safeParseConfig(data) {
206
+ return AuthrimConfigSchema.safeParse(data);
207
+ }
208
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,81 @@
1
+ /**
2
+ * Authrim Deployment Module
3
+ *
4
+ * Handles the deployment order, parallel execution, and retry logic
5
+ * for Authrim Workers.
6
+ */
7
+ import { type WorkerComponent } from './naming.js';
8
+ import type { AuthrimLock } from './lock.js';
9
+ export interface DeployOptions {
10
+ env: string;
11
+ rootDir: string;
12
+ configFile?: string;
13
+ dryRun?: boolean;
14
+ maxRetries?: number;
15
+ retryDelayMs?: number;
16
+ onProgress?: (message: string) => void;
17
+ onError?: (component: string, error: Error) => void;
18
+ }
19
+ export interface DeployResult {
20
+ component: WorkerComponent;
21
+ workerName: string;
22
+ success: boolean;
23
+ error?: string;
24
+ deployedAt?: string;
25
+ version?: string;
26
+ duration?: number;
27
+ }
28
+ export interface DeploymentSummary {
29
+ totalComponents: number;
30
+ successCount: number;
31
+ failedCount: number;
32
+ results: DeployResult[];
33
+ startedAt: string;
34
+ completedAt: string;
35
+ duration: number;
36
+ }
37
+ /**
38
+ * Get deployment levels - components that can be deployed in parallel
39
+ */
40
+ export declare function getDeploymentLevels(enabledComponents?: WorkerComponent[]): WorkerComponent[][];
41
+ /**
42
+ * Deploy a single worker with retry logic
43
+ */
44
+ export declare function deployWorker(component: WorkerComponent, options: DeployOptions): Promise<DeployResult>;
45
+ /**
46
+ * Deploy multiple workers in parallel
47
+ */
48
+ export declare function deployParallel(components: WorkerComponent[], options: DeployOptions): Promise<DeployResult[]>;
49
+ /**
50
+ * Deploy all workers in the correct order
51
+ */
52
+ export declare function deployAll(options: DeployOptions, enabledComponents?: WorkerComponent[]): Promise<DeploymentSummary>;
53
+ /**
54
+ * Update lock file with deployment results
55
+ */
56
+ export declare function updateLockWithDeployments(lock: AuthrimLock, results: DeployResult[]): AuthrimLock;
57
+ /**
58
+ * Upload secrets to all workers that need them
59
+ */
60
+ export declare function uploadSecrets(secrets: Record<string, string>, options: DeployOptions, workers?: WorkerComponent[]): Promise<{
61
+ success: boolean;
62
+ errors: string[];
63
+ }>;
64
+ /** Pages component type (separate from Worker components) */
65
+ export type PagesComponent = 'ar-ui';
66
+ /** Result for Pages deployment */
67
+ export interface PagesDeployResult {
68
+ component: PagesComponent;
69
+ projectName: string;
70
+ success: boolean;
71
+ error?: string;
72
+ deployedAt?: string;
73
+ duration?: number;
74
+ }
75
+ /**
76
+ * Deploy UI to Cloudflare Pages
77
+ */
78
+ export declare function deployPages(options: DeployOptions & {
79
+ projectName?: string;
80
+ }): Promise<PagesDeployResult>;
81
+ //# sourceMappingURL=deploy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../src/core/deploy.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,EAML,KAAK,eAAe,EACrB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,WAAW,EAAe,MAAM,WAAW,CAAC;AAyB1D,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CACrD;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,eAAe,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAMD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,iBAAiB,CAAC,EAAE,eAAe,EAAE,GAAG,eAAe,EAAE,EAAE,CAQ9F;AAMD;;GAEG;AACH,wBAAsB,YAAY,CAChC,SAAS,EAAE,eAAe,EAC1B,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,YAAY,CAAC,CA0HvB;AAMD;;GAEG;AACH,wBAAsB,cAAc,CAClC,UAAU,EAAE,eAAe,EAAE,EAC7B,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,YAAY,EAAE,CAAC,CAczB;AAMD;;GAEG;AACH,wBAAsB,SAAS,CAC7B,OAAO,EAAE,aAAa,EACtB,iBAAiB,CAAC,EAAE,eAAe,EAAE,GACpC,OAAO,CAAC,iBAAiB,CAAC,CA+E5B;AAMD;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,WAAW,CAkBjG;AAMD;;GAEG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,OAAO,EAAE,aAAa,EACtB,OAAO,CAAC,EAAE,eAAe,EAAE,GAC1B,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAkDjD;AAMD,6DAA6D;AAC7D,MAAM,MAAM,cAAc,GAAG,OAAO,CAAC;AAErC,kCAAkC;AAClC,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,cAAc,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,wBAAsB,WAAW,CAC/B,OAAO,EAAE,aAAa,GAAG;IAAE,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,GAChD,OAAO,CAAC,iBAAiB,CAAC,CA8E5B"}