@fabrika/provider-contract 0.0.14 → 0.0.16

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 (2) hide show
  1. package/package.json +2 -2
  2. package/src/control.ts +10 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fabrika/provider-contract",
3
- "version": "0.0.14",
3
+ "version": "0.0.16",
4
4
  "type": "module",
5
5
  "repository": {
6
6
  "type": "git",
@@ -26,6 +26,6 @@
26
26
  "test": "bun test"
27
27
  },
28
28
  "dependencies": {
29
- "@fabrika/auth-core": "^0.0.14"
29
+ "@fabrika/auth-core": "^0.0.16"
30
30
  }
31
31
  }
package/src/control.ts CHANGED
@@ -242,4 +242,14 @@ export interface ControlProvider {
242
242
  reconcile?(input: ProviderReconcileInput): Promise<ProviderReconcileOutcome>
243
243
  readonly secrets?: ProviderManagedSecrets
244
244
  readonly namespaces?: ProviderNamespaceCapabilities
245
+ /**
246
+ * The variable names this artifact declares, so core can refuse one it would silently ignore
247
+ * ([ADR-0035](../../../docs/decisions/0035-the-platform-owns-the-application-iam-issuer.md)).
248
+ *
249
+ * OPTIONAL, and `undefined` is the honest answer rather than an empty set: a provider whose artifact
250
+ * names a config path in the repository cannot know what that config declares, and guessing would
251
+ * refuse a variable that works. A provider that CAN answer — one whose artifact is the compiled
252
+ * manifest — constrains what an operator may set.
253
+ */
254
+ declaredVariables?(input: { readonly artifact: ProviderEnvelope }): readonly string[] | undefined
245
255
  }