@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.cjs CHANGED
@@ -4113,6 +4113,99 @@ var AppSettingsManager = class {
4113
4113
  async deleteSetting(key) {
4114
4114
  await this.fetch.delete(`/api/v1/admin/settings/custom/${key}`);
4115
4115
  }
4116
+ // ============================================================================
4117
+ // System Secret Settings (encrypted, server-side access only)
4118
+ // ============================================================================
4119
+ /**
4120
+ * Set a system-level secret setting (encrypted)
4121
+ *
4122
+ * Creates or updates an encrypted system secret. The value is encrypted server-side
4123
+ * and can only be accessed by edge functions, background jobs, or custom handlers.
4124
+ * The SDK never returns the decrypted value.
4125
+ *
4126
+ * @param key - Secret key
4127
+ * @param value - Secret value (will be encrypted server-side)
4128
+ * @param options - Optional description
4129
+ * @returns Promise resolving to SecretSettingMetadata (never includes the value)
4130
+ *
4131
+ * @example
4132
+ * ```typescript
4133
+ * await client.admin.settings.app.setSecretSetting('stripe_api_key', 'sk-live-xxx', {
4134
+ * description: 'Stripe API key for payment processing'
4135
+ * })
4136
+ * ```
4137
+ */
4138
+ async setSecretSetting(key, value, options) {
4139
+ try {
4140
+ return await this.fetch.put(
4141
+ `/api/v1/admin/settings/custom/secret/${key}`,
4142
+ {
4143
+ value,
4144
+ description: options?.description
4145
+ }
4146
+ );
4147
+ } catch (error) {
4148
+ if (error.status === 404 || error.message?.includes("not found")) {
4149
+ return await this.fetch.post(
4150
+ "/api/v1/admin/settings/custom/secret",
4151
+ {
4152
+ key,
4153
+ value,
4154
+ description: options?.description
4155
+ }
4156
+ );
4157
+ }
4158
+ throw error;
4159
+ }
4160
+ }
4161
+ /**
4162
+ * Get metadata for a system secret setting (never returns the value)
4163
+ *
4164
+ * @param key - Secret key
4165
+ * @returns Promise resolving to SecretSettingMetadata
4166
+ *
4167
+ * @example
4168
+ * ```typescript
4169
+ * const metadata = await client.admin.settings.app.getSecretSetting('stripe_api_key')
4170
+ * console.log(metadata.key, metadata.updated_at)
4171
+ * // Note: metadata.value is never included
4172
+ * ```
4173
+ */
4174
+ async getSecretSetting(key) {
4175
+ return await this.fetch.get(
4176
+ `/api/v1/admin/settings/custom/secret/${key}`
4177
+ );
4178
+ }
4179
+ /**
4180
+ * List all system secret settings (metadata only, never includes values)
4181
+ *
4182
+ * @returns Promise resolving to array of SecretSettingMetadata
4183
+ *
4184
+ * @example
4185
+ * ```typescript
4186
+ * const secrets = await client.admin.settings.app.listSecretSettings()
4187
+ * secrets.forEach(s => console.log(s.key, s.description))
4188
+ * ```
4189
+ */
4190
+ async listSecretSettings() {
4191
+ return await this.fetch.get(
4192
+ "/api/v1/admin/settings/custom/secrets"
4193
+ );
4194
+ }
4195
+ /**
4196
+ * Delete a system secret setting
4197
+ *
4198
+ * @param key - Secret key to delete
4199
+ * @returns Promise<void>
4200
+ *
4201
+ * @example
4202
+ * ```typescript
4203
+ * await client.admin.settings.app.deleteSecretSetting('stripe_api_key')
4204
+ * ```
4205
+ */
4206
+ async deleteSecretSetting(key) {
4207
+ await this.fetch.delete(`/api/v1/admin/settings/custom/secret/${key}`);
4208
+ }
4116
4209
  };
4117
4210
  var EmailTemplateManager = class {
4118
4211
  constructor(fetch2) {
@@ -4447,6 +4540,103 @@ var SettingsClient = class {
4447
4540
  {}
4448
4541
  );
4449
4542
  }
4543
+ // ============================================================================
4544
+ // User Secret Settings (encrypted, user-specific, server-side access only)
4545
+ // ============================================================================
4546
+ /**
4547
+ * Set a user secret setting (encrypted)
4548
+ *
4549
+ * Creates or updates an encrypted secret that belongs to the current user.
4550
+ * The value is encrypted server-side with a user-specific key and can only be
4551
+ * accessed by edge functions, background jobs, or custom handlers running on
4552
+ * behalf of this user. Even admins cannot see the decrypted value.
4553
+ *
4554
+ * @param key - Secret key
4555
+ * @param value - Secret value (will be encrypted server-side)
4556
+ * @param options - Optional description
4557
+ * @returns Promise resolving to SecretSettingMetadata (never includes the value)
4558
+ *
4559
+ * @example
4560
+ * ```typescript
4561
+ * // Store user's API key for a third-party service
4562
+ * await client.settings.setSecret('openai_api_key', 'sk-abc123', {
4563
+ * description: 'My OpenAI API key'
4564
+ * })
4565
+ * ```
4566
+ */
4567
+ async setSecret(key, value, options) {
4568
+ try {
4569
+ return await this.fetch.put(
4570
+ `/api/v1/settings/secret/${encodeURIComponent(key)}`,
4571
+ {
4572
+ value,
4573
+ description: options?.description
4574
+ }
4575
+ );
4576
+ } catch (error) {
4577
+ if (error.status === 404 || error.message?.includes("not found")) {
4578
+ return await this.fetch.post(
4579
+ "/api/v1/settings/secret/",
4580
+ {
4581
+ key,
4582
+ value,
4583
+ description: options?.description
4584
+ }
4585
+ );
4586
+ }
4587
+ throw error;
4588
+ }
4589
+ }
4590
+ /**
4591
+ * Get metadata for a user secret setting (never returns the value)
4592
+ *
4593
+ * @param key - Secret key
4594
+ * @returns Promise resolving to SecretSettingMetadata
4595
+ *
4596
+ * @example
4597
+ * ```typescript
4598
+ * const metadata = await client.settings.getSecret('openai_api_key')
4599
+ * console.log(metadata.key, metadata.updated_at)
4600
+ * // Note: The actual secret value is never returned
4601
+ * ```
4602
+ */
4603
+ async getSecret(key) {
4604
+ return await this.fetch.get(
4605
+ `/api/v1/settings/secret/${encodeURIComponent(key)}`
4606
+ );
4607
+ }
4608
+ /**
4609
+ * List all user's secret settings (metadata only, never includes values)
4610
+ *
4611
+ * @returns Promise resolving to array of SecretSettingMetadata
4612
+ *
4613
+ * @example
4614
+ * ```typescript
4615
+ * const secrets = await client.settings.listSecrets()
4616
+ * secrets.forEach(s => console.log(s.key, s.description))
4617
+ * ```
4618
+ */
4619
+ async listSecrets() {
4620
+ return await this.fetch.get(
4621
+ "/api/v1/settings/secret/"
4622
+ );
4623
+ }
4624
+ /**
4625
+ * Delete a user secret setting
4626
+ *
4627
+ * @param key - Secret key to delete
4628
+ * @returns Promise<void>
4629
+ *
4630
+ * @example
4631
+ * ```typescript
4632
+ * await client.settings.deleteSecret('openai_api_key')
4633
+ * ```
4634
+ */
4635
+ async deleteSecret(key) {
4636
+ await this.fetch.delete(
4637
+ `/api/v1/settings/secret/${encodeURIComponent(key)}`
4638
+ );
4639
+ }
4450
4640
  };
4451
4641
 
4452
4642
  // src/ddl.ts