@stackable-labs/sdk-extension-contracts 1.84.1 → 1.86.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.
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { ISOTimestamp, MarketplaceMetadata } from '@stackable-labs/lib-contracts';
2
- export { AppRegistryEntry, ClerkOrgId, ClerkUserId, EXTENSION_CATEGORY, EXTENSION_VISIBILITY, ExtensionCategory, ExtensionVisibility, ISOTimestamp, MarketplaceMetadata, asClerkOrgId, asClerkUserId, asISOTimestamp } from '@stackable-labs/lib-contracts';
1
+ import { ISOTimestamp, FieldDefinition, MarketplaceMetadata } from '@stackable-labs/lib-contracts';
2
+ export { AppRegistryEntry, ClerkOrgId, ClerkUserId, EXTENSION_CATEGORY, EXTENSION_VISIBILITY, ExtensionCategory, ExtensionVisibility, FieldDefinition, FieldOption, ISOTimestamp, MarketplaceMetadata, asClerkOrgId, asClerkUserId, asISOTimestamp } from '@stackable-labs/lib-contracts';
3
3
 
4
4
  /**
5
5
  * Shared primitive types used across contracts.
@@ -465,10 +465,12 @@ interface ContextData {
465
465
  customerName?: string;
466
466
  identity?: IdentityState;
467
467
  messaging?: MessagingContext;
468
+ /** Non-secret extension settings for this specific extension on this specific instance. Never includes secret field values. */
469
+ settings?: Record<string, unknown>;
468
470
  [key: string]: unknown;
469
471
  }
470
472
  /** Keys managed exclusively by the host RPC layer — must not appear in surface-level context */
471
- declare const RESERVED_CONTEXT_KEYS: readonly ["identity", "messaging"];
473
+ declare const RESERVED_CONTEXT_KEYS: readonly ["identity", "messaging", "settings"];
472
474
  type ReservedContextKey = typeof RESERVED_CONTEXT_KEYS[number];
473
475
  /** Union of all capability call types */
474
476
  type CapabilityCall = {
@@ -643,6 +645,8 @@ interface ExtensionManifest {
643
645
  * Use an empty array for extensions that do not use data.fetch.
644
646
  */
645
647
  allowedDomains: string[];
648
+ /** Optional schema of configurable fields for per-instance settings (plaintext + secrets). */
649
+ settingsSchema?: FieldDefinition[];
646
650
  }
647
651
  /**
648
652
  * Registry entry for an installed extension (returned by /api/extensions).
package/dist/index.js CHANGED
@@ -342,7 +342,7 @@ var INVOKE_ACTION = {
342
342
  SET_CONVERSATION_TAGS: "setConversationTags",
343
343
  SET_CONVERSATION_FIELDS: "setConversationFields"
344
344
  };
345
- var RESERVED_CONTEXT_KEYS = ["identity", "messaging"];
345
+ var RESERVED_CONTEXT_KEYS = ["identity", "messaging", "settings"];
346
346
 
347
347
  // src/identity.ts
348
348
  var IDENTITY_EVENT = {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stackable-labs/sdk-extension-contracts",
3
- "version": "1.84.1",
3
+ "version": "1.86.0",
4
4
  "type": "module",
5
5
  "private": false,
6
6
  "main": "./dist/index.js",