@fluxbase/sdk 0.0.1-rc.96 → 0.0.1-rc.98

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/dist/index.d.cts CHANGED
@@ -961,6 +961,20 @@ interface CustomSetting {
961
961
  created_at: string;
962
962
  updated_at: string;
963
963
  }
964
+ /**
965
+ * Metadata for a secret setting (value is never exposed via API)
966
+ * Secret values can only be accessed server-side (in edge functions, jobs, handlers)
967
+ */
968
+ interface SecretSettingMetadata {
969
+ id: string;
970
+ key: string;
971
+ description?: string;
972
+ user_id?: string;
973
+ created_by?: string;
974
+ updated_by?: string;
975
+ created_at: string;
976
+ updated_at: string;
977
+ }
964
978
  /**
965
979
  * Authentication settings for the application
966
980
  */
@@ -4983,6 +4997,66 @@ declare class AppSettingsManager {
4983
4997
  * ```
4984
4998
  */
4985
4999
  deleteSetting(key: string): Promise<void>;
5000
+ /**
5001
+ * Set a system-level secret setting (encrypted)
5002
+ *
5003
+ * Creates or updates an encrypted system secret. The value is encrypted server-side
5004
+ * and can only be accessed by edge functions, background jobs, or custom handlers.
5005
+ * The SDK never returns the decrypted value.
5006
+ *
5007
+ * @param key - Secret key
5008
+ * @param value - Secret value (will be encrypted server-side)
5009
+ * @param options - Optional description
5010
+ * @returns Promise resolving to SecretSettingMetadata (never includes the value)
5011
+ *
5012
+ * @example
5013
+ * ```typescript
5014
+ * await client.admin.settings.app.setSecretSetting('stripe_api_key', 'sk-live-xxx', {
5015
+ * description: 'Stripe API key for payment processing'
5016
+ * })
5017
+ * ```
5018
+ */
5019
+ setSecretSetting(key: string, value: string, options?: {
5020
+ description?: string;
5021
+ }): Promise<SecretSettingMetadata>;
5022
+ /**
5023
+ * Get metadata for a system secret setting (never returns the value)
5024
+ *
5025
+ * @param key - Secret key
5026
+ * @returns Promise resolving to SecretSettingMetadata
5027
+ *
5028
+ * @example
5029
+ * ```typescript
5030
+ * const metadata = await client.admin.settings.app.getSecretSetting('stripe_api_key')
5031
+ * console.log(metadata.key, metadata.updated_at)
5032
+ * // Note: metadata.value is never included
5033
+ * ```
5034
+ */
5035
+ getSecretSetting(key: string): Promise<SecretSettingMetadata>;
5036
+ /**
5037
+ * List all system secret settings (metadata only, never includes values)
5038
+ *
5039
+ * @returns Promise resolving to array of SecretSettingMetadata
5040
+ *
5041
+ * @example
5042
+ * ```typescript
5043
+ * const secrets = await client.admin.settings.app.listSecretSettings()
5044
+ * secrets.forEach(s => console.log(s.key, s.description))
5045
+ * ```
5046
+ */
5047
+ listSecretSettings(): Promise<SecretSettingMetadata[]>;
5048
+ /**
5049
+ * Delete a system secret setting
5050
+ *
5051
+ * @param key - Secret key to delete
5052
+ * @returns Promise<void>
5053
+ *
5054
+ * @example
5055
+ * ```typescript
5056
+ * await client.admin.settings.app.deleteSecretSetting('stripe_api_key')
5057
+ * ```
5058
+ */
5059
+ deleteSecretSetting(key: string): Promise<void>;
4986
5060
  }
4987
5061
  /**
4988
5062
  * Email Template Manager
@@ -5371,6 +5445,68 @@ declare class SettingsClient {
5371
5445
  * ```
5372
5446
  */
5373
5447
  getMany(keys: string[]): Promise<Record<string, any>>;
5448
+ /**
5449
+ * Set a user secret setting (encrypted)
5450
+ *
5451
+ * Creates or updates an encrypted secret that belongs to the current user.
5452
+ * The value is encrypted server-side with a user-specific key and can only be
5453
+ * accessed by edge functions, background jobs, or custom handlers running on
5454
+ * behalf of this user. Even admins cannot see the decrypted value.
5455
+ *
5456
+ * @param key - Secret key
5457
+ * @param value - Secret value (will be encrypted server-side)
5458
+ * @param options - Optional description
5459
+ * @returns Promise resolving to SecretSettingMetadata (never includes the value)
5460
+ *
5461
+ * @example
5462
+ * ```typescript
5463
+ * // Store user's API key for a third-party service
5464
+ * await client.settings.setSecret('openai_api_key', 'sk-abc123', {
5465
+ * description: 'My OpenAI API key'
5466
+ * })
5467
+ * ```
5468
+ */
5469
+ setSecret(key: string, value: string, options?: {
5470
+ description?: string;
5471
+ }): Promise<SecretSettingMetadata>;
5472
+ /**
5473
+ * Get metadata for a user secret setting (never returns the value)
5474
+ *
5475
+ * @param key - Secret key
5476
+ * @returns Promise resolving to SecretSettingMetadata
5477
+ *
5478
+ * @example
5479
+ * ```typescript
5480
+ * const metadata = await client.settings.getSecret('openai_api_key')
5481
+ * console.log(metadata.key, metadata.updated_at)
5482
+ * // Note: The actual secret value is never returned
5483
+ * ```
5484
+ */
5485
+ getSecret(key: string): Promise<SecretSettingMetadata>;
5486
+ /**
5487
+ * List all user's secret settings (metadata only, never includes values)
5488
+ *
5489
+ * @returns Promise resolving to array of SecretSettingMetadata
5490
+ *
5491
+ * @example
5492
+ * ```typescript
5493
+ * const secrets = await client.settings.listSecrets()
5494
+ * secrets.forEach(s => console.log(s.key, s.description))
5495
+ * ```
5496
+ */
5497
+ listSecrets(): Promise<SecretSettingMetadata[]>;
5498
+ /**
5499
+ * Delete a user secret setting
5500
+ *
5501
+ * @param key - Secret key to delete
5502
+ * @returns Promise<void>
5503
+ *
5504
+ * @example
5505
+ * ```typescript
5506
+ * await client.settings.deleteSecret('openai_api_key')
5507
+ * ```
5508
+ */
5509
+ deleteSecret(key: string): Promise<void>;
5374
5510
  }
5375
5511
 
5376
5512
  /**
package/dist/index.d.ts CHANGED
@@ -961,6 +961,20 @@ interface CustomSetting {
961
961
  created_at: string;
962
962
  updated_at: string;
963
963
  }
964
+ /**
965
+ * Metadata for a secret setting (value is never exposed via API)
966
+ * Secret values can only be accessed server-side (in edge functions, jobs, handlers)
967
+ */
968
+ interface SecretSettingMetadata {
969
+ id: string;
970
+ key: string;
971
+ description?: string;
972
+ user_id?: string;
973
+ created_by?: string;
974
+ updated_by?: string;
975
+ created_at: string;
976
+ updated_at: string;
977
+ }
964
978
  /**
965
979
  * Authentication settings for the application
966
980
  */
@@ -4983,6 +4997,66 @@ declare class AppSettingsManager {
4983
4997
  * ```
4984
4998
  */
4985
4999
  deleteSetting(key: string): Promise<void>;
5000
+ /**
5001
+ * Set a system-level secret setting (encrypted)
5002
+ *
5003
+ * Creates or updates an encrypted system secret. The value is encrypted server-side
5004
+ * and can only be accessed by edge functions, background jobs, or custom handlers.
5005
+ * The SDK never returns the decrypted value.
5006
+ *
5007
+ * @param key - Secret key
5008
+ * @param value - Secret value (will be encrypted server-side)
5009
+ * @param options - Optional description
5010
+ * @returns Promise resolving to SecretSettingMetadata (never includes the value)
5011
+ *
5012
+ * @example
5013
+ * ```typescript
5014
+ * await client.admin.settings.app.setSecretSetting('stripe_api_key', 'sk-live-xxx', {
5015
+ * description: 'Stripe API key for payment processing'
5016
+ * })
5017
+ * ```
5018
+ */
5019
+ setSecretSetting(key: string, value: string, options?: {
5020
+ description?: string;
5021
+ }): Promise<SecretSettingMetadata>;
5022
+ /**
5023
+ * Get metadata for a system secret setting (never returns the value)
5024
+ *
5025
+ * @param key - Secret key
5026
+ * @returns Promise resolving to SecretSettingMetadata
5027
+ *
5028
+ * @example
5029
+ * ```typescript
5030
+ * const metadata = await client.admin.settings.app.getSecretSetting('stripe_api_key')
5031
+ * console.log(metadata.key, metadata.updated_at)
5032
+ * // Note: metadata.value is never included
5033
+ * ```
5034
+ */
5035
+ getSecretSetting(key: string): Promise<SecretSettingMetadata>;
5036
+ /**
5037
+ * List all system secret settings (metadata only, never includes values)
5038
+ *
5039
+ * @returns Promise resolving to array of SecretSettingMetadata
5040
+ *
5041
+ * @example
5042
+ * ```typescript
5043
+ * const secrets = await client.admin.settings.app.listSecretSettings()
5044
+ * secrets.forEach(s => console.log(s.key, s.description))
5045
+ * ```
5046
+ */
5047
+ listSecretSettings(): Promise<SecretSettingMetadata[]>;
5048
+ /**
5049
+ * Delete a system secret setting
5050
+ *
5051
+ * @param key - Secret key to delete
5052
+ * @returns Promise<void>
5053
+ *
5054
+ * @example
5055
+ * ```typescript
5056
+ * await client.admin.settings.app.deleteSecretSetting('stripe_api_key')
5057
+ * ```
5058
+ */
5059
+ deleteSecretSetting(key: string): Promise<void>;
4986
5060
  }
4987
5061
  /**
4988
5062
  * Email Template Manager
@@ -5371,6 +5445,68 @@ declare class SettingsClient {
5371
5445
  * ```
5372
5446
  */
5373
5447
  getMany(keys: string[]): Promise<Record<string, any>>;
5448
+ /**
5449
+ * Set a user secret setting (encrypted)
5450
+ *
5451
+ * Creates or updates an encrypted secret that belongs to the current user.
5452
+ * The value is encrypted server-side with a user-specific key and can only be
5453
+ * accessed by edge functions, background jobs, or custom handlers running on
5454
+ * behalf of this user. Even admins cannot see the decrypted value.
5455
+ *
5456
+ * @param key - Secret key
5457
+ * @param value - Secret value (will be encrypted server-side)
5458
+ * @param options - Optional description
5459
+ * @returns Promise resolving to SecretSettingMetadata (never includes the value)
5460
+ *
5461
+ * @example
5462
+ * ```typescript
5463
+ * // Store user's API key for a third-party service
5464
+ * await client.settings.setSecret('openai_api_key', 'sk-abc123', {
5465
+ * description: 'My OpenAI API key'
5466
+ * })
5467
+ * ```
5468
+ */
5469
+ setSecret(key: string, value: string, options?: {
5470
+ description?: string;
5471
+ }): Promise<SecretSettingMetadata>;
5472
+ /**
5473
+ * Get metadata for a user secret setting (never returns the value)
5474
+ *
5475
+ * @param key - Secret key
5476
+ * @returns Promise resolving to SecretSettingMetadata
5477
+ *
5478
+ * @example
5479
+ * ```typescript
5480
+ * const metadata = await client.settings.getSecret('openai_api_key')
5481
+ * console.log(metadata.key, metadata.updated_at)
5482
+ * // Note: The actual secret value is never returned
5483
+ * ```
5484
+ */
5485
+ getSecret(key: string): Promise<SecretSettingMetadata>;
5486
+ /**
5487
+ * List all user's secret settings (metadata only, never includes values)
5488
+ *
5489
+ * @returns Promise resolving to array of SecretSettingMetadata
5490
+ *
5491
+ * @example
5492
+ * ```typescript
5493
+ * const secrets = await client.settings.listSecrets()
5494
+ * secrets.forEach(s => console.log(s.key, s.description))
5495
+ * ```
5496
+ */
5497
+ listSecrets(): Promise<SecretSettingMetadata[]>;
5498
+ /**
5499
+ * Delete a user secret setting
5500
+ *
5501
+ * @param key - Secret key to delete
5502
+ * @returns Promise<void>
5503
+ *
5504
+ * @example
5505
+ * ```typescript
5506
+ * await client.settings.deleteSecret('openai_api_key')
5507
+ * ```
5508
+ */
5509
+ deleteSecret(key: string): Promise<void>;
5374
5510
  }
5375
5511
 
5376
5512
  /**
package/dist/index.js CHANGED
@@ -4111,6 +4111,99 @@ var AppSettingsManager = class {
4111
4111
  async deleteSetting(key) {
4112
4112
  await this.fetch.delete(`/api/v1/admin/settings/custom/${key}`);
4113
4113
  }
4114
+ // ============================================================================
4115
+ // System Secret Settings (encrypted, server-side access only)
4116
+ // ============================================================================
4117
+ /**
4118
+ * Set a system-level secret setting (encrypted)
4119
+ *
4120
+ * Creates or updates an encrypted system secret. The value is encrypted server-side
4121
+ * and can only be accessed by edge functions, background jobs, or custom handlers.
4122
+ * The SDK never returns the decrypted value.
4123
+ *
4124
+ * @param key - Secret key
4125
+ * @param value - Secret value (will be encrypted server-side)
4126
+ * @param options - Optional description
4127
+ * @returns Promise resolving to SecretSettingMetadata (never includes the value)
4128
+ *
4129
+ * @example
4130
+ * ```typescript
4131
+ * await client.admin.settings.app.setSecretSetting('stripe_api_key', 'sk-live-xxx', {
4132
+ * description: 'Stripe API key for payment processing'
4133
+ * })
4134
+ * ```
4135
+ */
4136
+ async setSecretSetting(key, value, options) {
4137
+ try {
4138
+ return await this.fetch.put(
4139
+ `/api/v1/admin/settings/custom/secret/${key}`,
4140
+ {
4141
+ value,
4142
+ description: options?.description
4143
+ }
4144
+ );
4145
+ } catch (error) {
4146
+ if (error.status === 404 || error.message?.includes("not found")) {
4147
+ return await this.fetch.post(
4148
+ "/api/v1/admin/settings/custom/secret",
4149
+ {
4150
+ key,
4151
+ value,
4152
+ description: options?.description
4153
+ }
4154
+ );
4155
+ }
4156
+ throw error;
4157
+ }
4158
+ }
4159
+ /**
4160
+ * Get metadata for a system secret setting (never returns the value)
4161
+ *
4162
+ * @param key - Secret key
4163
+ * @returns Promise resolving to SecretSettingMetadata
4164
+ *
4165
+ * @example
4166
+ * ```typescript
4167
+ * const metadata = await client.admin.settings.app.getSecretSetting('stripe_api_key')
4168
+ * console.log(metadata.key, metadata.updated_at)
4169
+ * // Note: metadata.value is never included
4170
+ * ```
4171
+ */
4172
+ async getSecretSetting(key) {
4173
+ return await this.fetch.get(
4174
+ `/api/v1/admin/settings/custom/secret/${key}`
4175
+ );
4176
+ }
4177
+ /**
4178
+ * List all system secret settings (metadata only, never includes values)
4179
+ *
4180
+ * @returns Promise resolving to array of SecretSettingMetadata
4181
+ *
4182
+ * @example
4183
+ * ```typescript
4184
+ * const secrets = await client.admin.settings.app.listSecretSettings()
4185
+ * secrets.forEach(s => console.log(s.key, s.description))
4186
+ * ```
4187
+ */
4188
+ async listSecretSettings() {
4189
+ return await this.fetch.get(
4190
+ "/api/v1/admin/settings/custom/secrets"
4191
+ );
4192
+ }
4193
+ /**
4194
+ * Delete a system secret setting
4195
+ *
4196
+ * @param key - Secret key to delete
4197
+ * @returns Promise<void>
4198
+ *
4199
+ * @example
4200
+ * ```typescript
4201
+ * await client.admin.settings.app.deleteSecretSetting('stripe_api_key')
4202
+ * ```
4203
+ */
4204
+ async deleteSecretSetting(key) {
4205
+ await this.fetch.delete(`/api/v1/admin/settings/custom/secret/${key}`);
4206
+ }
4114
4207
  };
4115
4208
  var EmailTemplateManager = class {
4116
4209
  constructor(fetch2) {
@@ -4445,6 +4538,103 @@ var SettingsClient = class {
4445
4538
  {}
4446
4539
  );
4447
4540
  }
4541
+ // ============================================================================
4542
+ // User Secret Settings (encrypted, user-specific, server-side access only)
4543
+ // ============================================================================
4544
+ /**
4545
+ * Set a user secret setting (encrypted)
4546
+ *
4547
+ * Creates or updates an encrypted secret that belongs to the current user.
4548
+ * The value is encrypted server-side with a user-specific key and can only be
4549
+ * accessed by edge functions, background jobs, or custom handlers running on
4550
+ * behalf of this user. Even admins cannot see the decrypted value.
4551
+ *
4552
+ * @param key - Secret key
4553
+ * @param value - Secret value (will be encrypted server-side)
4554
+ * @param options - Optional description
4555
+ * @returns Promise resolving to SecretSettingMetadata (never includes the value)
4556
+ *
4557
+ * @example
4558
+ * ```typescript
4559
+ * // Store user's API key for a third-party service
4560
+ * await client.settings.setSecret('openai_api_key', 'sk-abc123', {
4561
+ * description: 'My OpenAI API key'
4562
+ * })
4563
+ * ```
4564
+ */
4565
+ async setSecret(key, value, options) {
4566
+ try {
4567
+ return await this.fetch.put(
4568
+ `/api/v1/settings/secret/${encodeURIComponent(key)}`,
4569
+ {
4570
+ value,
4571
+ description: options?.description
4572
+ }
4573
+ );
4574
+ } catch (error) {
4575
+ if (error.status === 404 || error.message?.includes("not found")) {
4576
+ return await this.fetch.post(
4577
+ "/api/v1/settings/secret/",
4578
+ {
4579
+ key,
4580
+ value,
4581
+ description: options?.description
4582
+ }
4583
+ );
4584
+ }
4585
+ throw error;
4586
+ }
4587
+ }
4588
+ /**
4589
+ * Get metadata for a user secret setting (never returns the value)
4590
+ *
4591
+ * @param key - Secret key
4592
+ * @returns Promise resolving to SecretSettingMetadata
4593
+ *
4594
+ * @example
4595
+ * ```typescript
4596
+ * const metadata = await client.settings.getSecret('openai_api_key')
4597
+ * console.log(metadata.key, metadata.updated_at)
4598
+ * // Note: The actual secret value is never returned
4599
+ * ```
4600
+ */
4601
+ async getSecret(key) {
4602
+ return await this.fetch.get(
4603
+ `/api/v1/settings/secret/${encodeURIComponent(key)}`
4604
+ );
4605
+ }
4606
+ /**
4607
+ * List all user's secret settings (metadata only, never includes values)
4608
+ *
4609
+ * @returns Promise resolving to array of SecretSettingMetadata
4610
+ *
4611
+ * @example
4612
+ * ```typescript
4613
+ * const secrets = await client.settings.listSecrets()
4614
+ * secrets.forEach(s => console.log(s.key, s.description))
4615
+ * ```
4616
+ */
4617
+ async listSecrets() {
4618
+ return await this.fetch.get(
4619
+ "/api/v1/settings/secret/"
4620
+ );
4621
+ }
4622
+ /**
4623
+ * Delete a user secret setting
4624
+ *
4625
+ * @param key - Secret key to delete
4626
+ * @returns Promise<void>
4627
+ *
4628
+ * @example
4629
+ * ```typescript
4630
+ * await client.settings.deleteSecret('openai_api_key')
4631
+ * ```
4632
+ */
4633
+ async deleteSecret(key) {
4634
+ await this.fetch.delete(
4635
+ `/api/v1/settings/secret/${encodeURIComponent(key)}`
4636
+ );
4637
+ }
4448
4638
  };
4449
4639
 
4450
4640
  // src/ddl.ts