@databricks/appkit-ui 0.37.0 → 0.38.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/CLAUDE.md +3 -2
- package/dist/cli/commands/plugin/add-resource/add-resource.js.map +1 -1
- package/dist/cli/commands/plugin/create/resource-defaults.js +2 -1
- package/dist/cli/commands/plugin/create/resource-defaults.js.map +1 -1
- package/dist/cli/commands/plugin/schema-resources.js +34 -51
- package/dist/cli/commands/plugin/schema-resources.js.map +1 -1
- package/dist/cli/commands/plugin/sync/sync.js +20 -6
- package/dist/cli/commands/plugin/sync/sync.js.map +1 -1
- package/dist/cli/commands/plugin/validate/validate-manifest.js +71 -157
- package/dist/cli/commands/plugin/validate/validate-manifest.js.map +1 -1
- package/dist/cli/commands/plugin/validate/validate.js +2 -2
- package/dist/cli/commands/plugin/validate/validate.js.map +1 -1
- package/dist/cli/commands/setup.js +2 -2
- package/dist/cli/commands/setup.js.map +1 -1
- package/dist/schemas/manifest.d.ts +1139 -0
- package/dist/schemas/manifest.d.ts.map +1 -0
- package/dist/schemas/manifest.js +524 -0
- package/dist/schemas/manifest.js.map +1 -0
- package/dist/shared/src/plugin.d.ts +1 -0
- package/dist/shared/src/plugin.d.ts.map +1 -1
- package/dist/shared/src/schemas/manifest.d.ts +1 -0
- package/docs/api/appkit/Enumeration.ResourceType.md +1 -1
- package/docs/api/appkit/Interface.PluginManifest.md +57 -3
- package/docs/api/appkit/Interface.ResourceEntry.md +6 -4
- package/docs/api/appkit/Interface.ResourceRequirement.md +7 -61
- package/docs/api/appkit/TypeAlias.ResourceFieldEntry.md +6 -0
- package/docs/api/appkit.md +6 -6
- package/docs/app-management.md +1 -1
- package/docs/development/ai-assisted-development.md +2 -2
- package/docs/development/local-development.md +1 -1
- package/docs/development/remote-bridge.md +1 -1
- package/docs/development/templates.md +118 -12
- package/docs/development.md +1 -1
- package/docs/plugins/custom-plugins.md +33 -23
- package/docs/plugins/lakebase.md +1 -1
- package/docs/plugins/manifest.md +293 -0
- package/docs.md +2 -2
- package/llms.txt +3 -2
- package/package.json +5 -4
- package/sbom.cdx.json +1 -1
- package/dist/schemas/plugin-manifest.generated.d.ts +0 -182
- package/dist/schemas/plugin-manifest.generated.d.ts.map +0 -1
- package/dist/schemas/plugin-manifest.schema.json +0 -489
- package/dist/schemas/template-plugins.schema.json +0 -113
- package/docs/api/appkit/Interface.ResourceFieldEntry.md +0 -82
|
@@ -1,182 +0,0 @@
|
|
|
1
|
-
//#region src/schemas/plugin-manifest.generated.d.ts
|
|
2
|
-
/**
|
|
3
|
-
* Declares a resource requirement for a plugin. Can be defined statically in a manifest or dynamically via getResourceRequirements().
|
|
4
|
-
*
|
|
5
|
-
* This interface was referenced by `PluginManifest`'s JSON-Schema
|
|
6
|
-
* via the `definition` "resourceRequirement".
|
|
7
|
-
*/
|
|
8
|
-
type ResourceRequirement = {
|
|
9
|
-
type: ResourceType;
|
|
10
|
-
/**
|
|
11
|
-
* Human-readable label for UI/display only. Deduplication uses resourceKey, not alias.
|
|
12
|
-
*/
|
|
13
|
-
alias: string;
|
|
14
|
-
/**
|
|
15
|
-
* Stable key for machine use: deduplication, env naming, composite keys, app.yaml. Required for registry lookup.
|
|
16
|
-
*/
|
|
17
|
-
resourceKey: string;
|
|
18
|
-
/**
|
|
19
|
-
* Human-readable description of why this resource is needed
|
|
20
|
-
*/
|
|
21
|
-
description: string;
|
|
22
|
-
/**
|
|
23
|
-
* Required permission level. Validated per resource type by the allOf/if-then rules below.
|
|
24
|
-
*/
|
|
25
|
-
permission: string;
|
|
26
|
-
/**
|
|
27
|
-
* Map of field name to env and optional description. Single-value types use one key (e.g. id); multi-value (database, secret) use multiple (e.g. instance_name, database_name or scope, key).
|
|
28
|
-
*/
|
|
29
|
-
fields?: {
|
|
30
|
-
[k: string]: ResourceFieldEntry;
|
|
31
|
-
};
|
|
32
|
-
};
|
|
33
|
-
/**
|
|
34
|
-
* Type of Databricks resource
|
|
35
|
-
*
|
|
36
|
-
* This interface was referenced by `PluginManifest`'s JSON-Schema
|
|
37
|
-
* via the `definition` "resourceType".
|
|
38
|
-
*/
|
|
39
|
-
type ResourceType = "secret" | "job" | "sql_warehouse" | "serving_endpoint" | "volume" | "vector_search_index" | "uc_function" | "uc_connection" | "database" | "postgres" | "genie_space" | "experiment" | "app";
|
|
40
|
-
/**
|
|
41
|
-
* Schema for Databricks AppKit plugin manifest files. Defines plugin metadata, resource requirements, and configuration options.
|
|
42
|
-
*/
|
|
43
|
-
interface PluginManifest {
|
|
44
|
-
/**
|
|
45
|
-
* Reference to the JSON Schema for validation
|
|
46
|
-
*/
|
|
47
|
-
$schema?: string;
|
|
48
|
-
/**
|
|
49
|
-
* Plugin identifier. Must be lowercase, start with a letter, and contain only letters, numbers, and hyphens.
|
|
50
|
-
*/
|
|
51
|
-
name: string;
|
|
52
|
-
/**
|
|
53
|
-
* Human-readable display name for UI and CLI
|
|
54
|
-
*/
|
|
55
|
-
displayName: string;
|
|
56
|
-
/**
|
|
57
|
-
* Brief description of what the plugin does
|
|
58
|
-
*/
|
|
59
|
-
description: string;
|
|
60
|
-
/**
|
|
61
|
-
* Databricks resource requirements for this plugin
|
|
62
|
-
*/
|
|
63
|
-
resources: {
|
|
64
|
-
/**
|
|
65
|
-
* Resources that must be available for the plugin to function
|
|
66
|
-
*/
|
|
67
|
-
required: ResourceRequirement[];
|
|
68
|
-
/**
|
|
69
|
-
* Resources that enhance functionality but are not mandatory
|
|
70
|
-
*/
|
|
71
|
-
optional: ResourceRequirement[];
|
|
72
|
-
};
|
|
73
|
-
/**
|
|
74
|
-
* Configuration schema for the plugin
|
|
75
|
-
*/
|
|
76
|
-
config?: {
|
|
77
|
-
schema?: ConfigSchema;
|
|
78
|
-
};
|
|
79
|
-
/**
|
|
80
|
-
* Author name or organization
|
|
81
|
-
*/
|
|
82
|
-
author?: string;
|
|
83
|
-
/**
|
|
84
|
-
* Plugin version (semver format)
|
|
85
|
-
*/
|
|
86
|
-
version?: string;
|
|
87
|
-
/**
|
|
88
|
-
* URL to the plugin's source repository
|
|
89
|
-
*/
|
|
90
|
-
repository?: string;
|
|
91
|
-
/**
|
|
92
|
-
* Keywords for plugin discovery
|
|
93
|
-
*/
|
|
94
|
-
keywords?: string[];
|
|
95
|
-
/**
|
|
96
|
-
* SPDX license identifier
|
|
97
|
-
*/
|
|
98
|
-
license?: string;
|
|
99
|
-
/**
|
|
100
|
-
* Message displayed to the user after project initialization. Use this to inform about manual setup steps (e.g. environment variables, resource provisioning).
|
|
101
|
-
*/
|
|
102
|
-
onSetupMessage?: string;
|
|
103
|
-
/**
|
|
104
|
-
* When true, this plugin is excluded from the template plugins manifest (appkit.plugins.json) during sync.
|
|
105
|
-
*/
|
|
106
|
-
hidden?: boolean;
|
|
107
|
-
/**
|
|
108
|
-
* Plugin stability level. Beta plugins may have breaking API changes between minor releases but are on a path to GA. GA (general availability) plugins follow semver strictly.
|
|
109
|
-
*/
|
|
110
|
-
stability?: "beta" | "ga";
|
|
111
|
-
}
|
|
112
|
-
/**
|
|
113
|
-
* Defines a single field for a resource. Each field has its own environment variable and optional description. Single-value types use one key (e.g. id); multi-value types (database, secret) use multiple (e.g. instance_name, database_name or scope, key).
|
|
114
|
-
*
|
|
115
|
-
* This interface was referenced by `PluginManifest`'s JSON-Schema
|
|
116
|
-
* via the `definition` "resourceFieldEntry".
|
|
117
|
-
*/
|
|
118
|
-
interface ResourceFieldEntry {
|
|
119
|
-
/**
|
|
120
|
-
* Environment variable name for this field
|
|
121
|
-
*/
|
|
122
|
-
env?: string;
|
|
123
|
-
/**
|
|
124
|
-
* Human-readable description for this field
|
|
125
|
-
*/
|
|
126
|
-
description?: string;
|
|
127
|
-
/**
|
|
128
|
-
* When true, this field is excluded from Databricks bundle configuration (databricks.yml) generation.
|
|
129
|
-
*/
|
|
130
|
-
bundleIgnore?: boolean;
|
|
131
|
-
/**
|
|
132
|
-
* Example values showing the expected format for this field
|
|
133
|
-
*/
|
|
134
|
-
examples?: string[];
|
|
135
|
-
/**
|
|
136
|
-
* When true, this field is only generated for local .env files. The Databricks Apps platform auto-injects it at deploy time.
|
|
137
|
-
*/
|
|
138
|
-
localOnly?: boolean;
|
|
139
|
-
/**
|
|
140
|
-
* Static value for this field. Used when no prompted or resolved value exists.
|
|
141
|
-
*/
|
|
142
|
-
value?: string;
|
|
143
|
-
/**
|
|
144
|
-
* Named resolver prefixed by resource type (e.g., 'postgres:host'). The CLI resolves this value during the init prompt flow.
|
|
145
|
-
*/
|
|
146
|
-
resolve?: string;
|
|
147
|
-
}
|
|
148
|
-
/**
|
|
149
|
-
* This interface was referenced by `PluginManifest`'s JSON-Schema
|
|
150
|
-
* via the `definition` "configSchema".
|
|
151
|
-
*/
|
|
152
|
-
interface ConfigSchema {
|
|
153
|
-
type: "object" | "array" | "string" | "number" | "boolean";
|
|
154
|
-
properties?: {
|
|
155
|
-
[k: string]: ConfigSchemaProperty;
|
|
156
|
-
};
|
|
157
|
-
items?: ConfigSchema;
|
|
158
|
-
required?: string[];
|
|
159
|
-
additionalProperties?: boolean;
|
|
160
|
-
}
|
|
161
|
-
/**
|
|
162
|
-
* This interface was referenced by `PluginManifest`'s JSON-Schema
|
|
163
|
-
* via the `definition` "configSchemaProperty".
|
|
164
|
-
*/
|
|
165
|
-
interface ConfigSchemaProperty {
|
|
166
|
-
type: "object" | "array" | "string" | "number" | "boolean" | "integer";
|
|
167
|
-
description?: string;
|
|
168
|
-
default?: unknown;
|
|
169
|
-
enum?: unknown[];
|
|
170
|
-
properties?: {
|
|
171
|
-
[k: string]: ConfigSchemaProperty;
|
|
172
|
-
};
|
|
173
|
-
items?: ConfigSchemaProperty;
|
|
174
|
-
minimum?: number;
|
|
175
|
-
maximum?: number;
|
|
176
|
-
minLength?: number;
|
|
177
|
-
maxLength?: number;
|
|
178
|
-
required?: string[];
|
|
179
|
-
}
|
|
180
|
-
//#endregion
|
|
181
|
-
export { PluginManifest, ResourceFieldEntry, ResourceRequirement };
|
|
182
|
-
//# sourceMappingURL=plugin-manifest.generated.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-manifest.generated.d.ts","names":[],"sources":["../../src/schemas/plugin-manifest.generated.ts"],"mappings":";;AAQA;;;;;KAAY,mBAAA;EACV,IAAA,EAAM,YAAA;EAQN;;;EAJA,KAAA;EAiBG;;;EAbH,WAAA;EAsBU;;;EAlBV,WAAA;EAkBsB;AAiHxB;;EA/HE,UAAA;EAuJY;;;EAnJZ,MAAA;IAAA,CACG,CAAA,WAAY,kBAAA;EAAA;AAAA;;;;;;;KASL,YAAA;;;;UAiHK,cAAA;;;;EAIf,OAAA;;;;EAIA,IAAA;;;;EAIA,WAAA;;;;EAIA,WAAA;;;;EAIA,SAAA;;;;IAIE,QAAA,EAAU,mBAAA;;;;IAIV,QAAA,EAAU,mBAAA;EAAA;;;;EAKZ,MAAA;IACE,MAAA,GAAS,YAAA;EAAA;;;;EAKX,MAAA;;;;EAIA,OAAA;;;;EAIA,UAAA;;;;EAIA,QAAA;;;;EAIA,OAAA;;;;EAIA,cAAA;;;;EAIA,MAAA;;;;EAIA,SAAA;AAAA;;;;;;;UAQe,kBAAA;;;;EAIf,GAAA;;;;EAIA,WAAA;;;;EAIA,YAAA;;;;EAIA,QAAA;;;;EAIA,SAAA;;;;EAIA,KAAA;;;;EAIA,OAAA;AAAA;;;;;UAMe,YAAA;EACf,IAAA;EACA,UAAA;IAAA,CACG,CAAA,WAAY,oBAAA;EAAA;EAEf,KAAA,GAAQ,YAAA;EACR,QAAA;EACA,oBAAA;AAAA;;;;;UAMe,oBAAA;EACf,IAAA;EACA,WAAA;EACA,OAAA;EACA,IAAA;EACA,UAAA;IAAA,CACG,CAAA,WAAY,oBAAA;EAAA;EAEf,KAAA,GAAQ,oBAAA;EACR,OAAA;EACA,OAAA;EACA,SAAA;EACA,SAAA;EACA,QAAA;AAAA"}
|
|
@@ -1,489 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
-
"$id": "https://databricks.github.io/appkit/schemas/plugin-manifest.schema.json",
|
|
4
|
-
"title": "AppKit Plugin Manifest",
|
|
5
|
-
"description": "Schema for Databricks AppKit plugin manifest files. Defines plugin metadata, resource requirements, and configuration options.",
|
|
6
|
-
"type": "object",
|
|
7
|
-
"required": ["name", "displayName", "description", "resources"],
|
|
8
|
-
"properties": {
|
|
9
|
-
"$schema": {
|
|
10
|
-
"type": "string",
|
|
11
|
-
"description": "Reference to the JSON Schema for validation"
|
|
12
|
-
},
|
|
13
|
-
"name": {
|
|
14
|
-
"type": "string",
|
|
15
|
-
"pattern": "^[a-z][a-z0-9-]*$",
|
|
16
|
-
"description": "Plugin identifier. Must be lowercase, start with a letter, and contain only letters, numbers, and hyphens.",
|
|
17
|
-
"examples": ["analytics", "server", "my-custom-plugin"]
|
|
18
|
-
},
|
|
19
|
-
"displayName": {
|
|
20
|
-
"type": "string",
|
|
21
|
-
"minLength": 1,
|
|
22
|
-
"description": "Human-readable display name for UI and CLI",
|
|
23
|
-
"examples": ["Analytics Plugin", "Server Plugin"]
|
|
24
|
-
},
|
|
25
|
-
"description": {
|
|
26
|
-
"type": "string",
|
|
27
|
-
"minLength": 1,
|
|
28
|
-
"description": "Brief description of what the plugin does",
|
|
29
|
-
"examples": ["SQL query execution against Databricks SQL Warehouses"]
|
|
30
|
-
},
|
|
31
|
-
"resources": {
|
|
32
|
-
"type": "object",
|
|
33
|
-
"required": ["required", "optional"],
|
|
34
|
-
"description": "Databricks resource requirements for this plugin",
|
|
35
|
-
"properties": {
|
|
36
|
-
"required": {
|
|
37
|
-
"type": "array",
|
|
38
|
-
"description": "Resources that must be available for the plugin to function",
|
|
39
|
-
"items": {
|
|
40
|
-
"$ref": "#/$defs/resourceRequirement"
|
|
41
|
-
}
|
|
42
|
-
},
|
|
43
|
-
"optional": {
|
|
44
|
-
"type": "array",
|
|
45
|
-
"description": "Resources that enhance functionality but are not mandatory",
|
|
46
|
-
"items": {
|
|
47
|
-
"$ref": "#/$defs/resourceRequirement"
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
},
|
|
51
|
-
"additionalProperties": false
|
|
52
|
-
},
|
|
53
|
-
"config": {
|
|
54
|
-
"type": "object",
|
|
55
|
-
"description": "Configuration schema for the plugin",
|
|
56
|
-
"properties": {
|
|
57
|
-
"schema": {
|
|
58
|
-
"$ref": "#/$defs/configSchema"
|
|
59
|
-
}
|
|
60
|
-
},
|
|
61
|
-
"additionalProperties": false
|
|
62
|
-
},
|
|
63
|
-
"author": {
|
|
64
|
-
"type": "string",
|
|
65
|
-
"description": "Author name or organization"
|
|
66
|
-
},
|
|
67
|
-
"version": {
|
|
68
|
-
"type": "string",
|
|
69
|
-
"pattern": "^\\d+\\.\\d+\\.\\d+(-[a-zA-Z0-9.]+)?$",
|
|
70
|
-
"description": "Plugin version (semver format)",
|
|
71
|
-
"examples": ["1.0.0", "2.1.0-beta.1"]
|
|
72
|
-
},
|
|
73
|
-
"repository": {
|
|
74
|
-
"type": "string",
|
|
75
|
-
"format": "uri",
|
|
76
|
-
"description": "URL to the plugin's source repository"
|
|
77
|
-
},
|
|
78
|
-
"keywords": {
|
|
79
|
-
"type": "array",
|
|
80
|
-
"items": {
|
|
81
|
-
"type": "string"
|
|
82
|
-
},
|
|
83
|
-
"description": "Keywords for plugin discovery"
|
|
84
|
-
},
|
|
85
|
-
"license": {
|
|
86
|
-
"type": "string",
|
|
87
|
-
"description": "SPDX license identifier",
|
|
88
|
-
"examples": ["Apache-2.0", "MIT"]
|
|
89
|
-
},
|
|
90
|
-
"onSetupMessage": {
|
|
91
|
-
"type": "string",
|
|
92
|
-
"description": "Message displayed to the user after project initialization. Use this to inform about manual setup steps (e.g. environment variables, resource provisioning)."
|
|
93
|
-
},
|
|
94
|
-
"hidden": {
|
|
95
|
-
"type": "boolean",
|
|
96
|
-
"default": false,
|
|
97
|
-
"description": "When true, this plugin is excluded from the template plugins manifest (appkit.plugins.json) during sync."
|
|
98
|
-
},
|
|
99
|
-
"stability": {
|
|
100
|
-
"type": "string",
|
|
101
|
-
"enum": ["beta", "ga"],
|
|
102
|
-
"default": "ga",
|
|
103
|
-
"description": "Plugin stability level. Beta plugins may have breaking API changes between minor releases but are on a path to GA. GA (general availability) plugins follow semver strictly."
|
|
104
|
-
}
|
|
105
|
-
},
|
|
106
|
-
"additionalProperties": false,
|
|
107
|
-
"$defs": {
|
|
108
|
-
"resourceType": {
|
|
109
|
-
"type": "string",
|
|
110
|
-
"enum": [
|
|
111
|
-
"secret",
|
|
112
|
-
"job",
|
|
113
|
-
"sql_warehouse",
|
|
114
|
-
"serving_endpoint",
|
|
115
|
-
"volume",
|
|
116
|
-
"vector_search_index",
|
|
117
|
-
"uc_function",
|
|
118
|
-
"uc_connection",
|
|
119
|
-
"database",
|
|
120
|
-
"postgres",
|
|
121
|
-
"genie_space",
|
|
122
|
-
"experiment",
|
|
123
|
-
"app"
|
|
124
|
-
],
|
|
125
|
-
"description": "Type of Databricks resource"
|
|
126
|
-
},
|
|
127
|
-
"secretPermission": {
|
|
128
|
-
"type": "string",
|
|
129
|
-
"enum": ["READ", "WRITE", "MANAGE"],
|
|
130
|
-
"description": "Permission for secret resources (order: weakest to strongest)"
|
|
131
|
-
},
|
|
132
|
-
"jobPermission": {
|
|
133
|
-
"type": "string",
|
|
134
|
-
"enum": ["CAN_VIEW", "CAN_MANAGE_RUN", "CAN_MANAGE"],
|
|
135
|
-
"description": "Permission for job resources (order: weakest to strongest)"
|
|
136
|
-
},
|
|
137
|
-
"sqlWarehousePermission": {
|
|
138
|
-
"type": "string",
|
|
139
|
-
"enum": ["CAN_USE", "CAN_MANAGE"],
|
|
140
|
-
"description": "Permission for SQL warehouse resources (order: weakest to strongest)"
|
|
141
|
-
},
|
|
142
|
-
"servingEndpointPermission": {
|
|
143
|
-
"type": "string",
|
|
144
|
-
"enum": ["CAN_VIEW", "CAN_QUERY", "CAN_MANAGE"],
|
|
145
|
-
"description": "Permission for serving endpoint resources (order: weakest to strongest)"
|
|
146
|
-
},
|
|
147
|
-
"volumePermission": {
|
|
148
|
-
"type": "string",
|
|
149
|
-
"enum": ["READ_VOLUME", "WRITE_VOLUME"],
|
|
150
|
-
"description": "Permission for Unity Catalog volume resources"
|
|
151
|
-
},
|
|
152
|
-
"vectorSearchIndexPermission": {
|
|
153
|
-
"type": "string",
|
|
154
|
-
"enum": ["SELECT"],
|
|
155
|
-
"description": "Permission for vector search index resources"
|
|
156
|
-
},
|
|
157
|
-
"ucFunctionPermission": {
|
|
158
|
-
"type": "string",
|
|
159
|
-
"enum": ["EXECUTE"],
|
|
160
|
-
"description": "Permission for Unity Catalog function resources"
|
|
161
|
-
},
|
|
162
|
-
"ucConnectionPermission": {
|
|
163
|
-
"type": "string",
|
|
164
|
-
"enum": ["USE_CONNECTION"],
|
|
165
|
-
"description": "Permission for Unity Catalog connection resources"
|
|
166
|
-
},
|
|
167
|
-
"databasePermission": {
|
|
168
|
-
"type": "string",
|
|
169
|
-
"enum": ["CAN_CONNECT_AND_CREATE"],
|
|
170
|
-
"description": "Permission for database resources"
|
|
171
|
-
},
|
|
172
|
-
"postgresPermission": {
|
|
173
|
-
"type": "string",
|
|
174
|
-
"enum": ["CAN_CONNECT_AND_CREATE"],
|
|
175
|
-
"description": "Permission for Postgres resources"
|
|
176
|
-
},
|
|
177
|
-
"genieSpacePermission": {
|
|
178
|
-
"type": "string",
|
|
179
|
-
"enum": ["CAN_VIEW", "CAN_RUN", "CAN_EDIT", "CAN_MANAGE"],
|
|
180
|
-
"description": "Permission for Genie Space resources (order: weakest to strongest)"
|
|
181
|
-
},
|
|
182
|
-
"experimentPermission": {
|
|
183
|
-
"type": "string",
|
|
184
|
-
"enum": ["CAN_READ", "CAN_EDIT", "CAN_MANAGE"],
|
|
185
|
-
"description": "Permission for MLflow experiment resources (order: weakest to strongest)"
|
|
186
|
-
},
|
|
187
|
-
"appPermission": {
|
|
188
|
-
"type": "string",
|
|
189
|
-
"enum": ["CAN_USE"],
|
|
190
|
-
"description": "Permission for Databricks App resources"
|
|
191
|
-
},
|
|
192
|
-
"resourceFieldEntry": {
|
|
193
|
-
"type": "object",
|
|
194
|
-
"description": "Defines a single field for a resource. Each field has its own environment variable and optional description. Single-value types use one key (e.g. id); multi-value types (database, secret) use multiple (e.g. instance_name, database_name or scope, key).",
|
|
195
|
-
"properties": {
|
|
196
|
-
"env": {
|
|
197
|
-
"type": "string",
|
|
198
|
-
"pattern": "^[A-Z][A-Z0-9_]*$",
|
|
199
|
-
"description": "Environment variable name for this field",
|
|
200
|
-
"examples": ["DATABRICKS_CACHE_INSTANCE", "SECRET_SCOPE"]
|
|
201
|
-
},
|
|
202
|
-
"description": {
|
|
203
|
-
"type": "string",
|
|
204
|
-
"description": "Human-readable description for this field"
|
|
205
|
-
},
|
|
206
|
-
"bundleIgnore": {
|
|
207
|
-
"type": "boolean",
|
|
208
|
-
"default": false,
|
|
209
|
-
"description": "When true, this field is excluded from Databricks bundle configuration (databricks.yml) generation."
|
|
210
|
-
},
|
|
211
|
-
"examples": {
|
|
212
|
-
"type": "array",
|
|
213
|
-
"items": { "type": "string" },
|
|
214
|
-
"description": "Example values showing the expected format for this field"
|
|
215
|
-
},
|
|
216
|
-
"localOnly": {
|
|
217
|
-
"type": "boolean",
|
|
218
|
-
"default": false,
|
|
219
|
-
"description": "When true, this field is only generated for local .env files. The Databricks Apps platform auto-injects it at deploy time."
|
|
220
|
-
},
|
|
221
|
-
"value": {
|
|
222
|
-
"type": "string",
|
|
223
|
-
"description": "Static value for this field. Used when no prompted or resolved value exists."
|
|
224
|
-
},
|
|
225
|
-
"resolve": {
|
|
226
|
-
"type": "string",
|
|
227
|
-
"pattern": "^[a-z_]+:[a-zA-Z]+$",
|
|
228
|
-
"description": "Named resolver prefixed by resource type (e.g., 'postgres:host'). The CLI resolves this value during the init prompt flow."
|
|
229
|
-
}
|
|
230
|
-
},
|
|
231
|
-
"additionalProperties": false
|
|
232
|
-
},
|
|
233
|
-
"resourceRequirement": {
|
|
234
|
-
"type": "object",
|
|
235
|
-
"description": "Declares a resource requirement for a plugin. Can be defined statically in a manifest or dynamically via getResourceRequirements().",
|
|
236
|
-
"required": ["type", "alias", "resourceKey", "description", "permission"],
|
|
237
|
-
"properties": {
|
|
238
|
-
"type": {
|
|
239
|
-
"$ref": "#/$defs/resourceType"
|
|
240
|
-
},
|
|
241
|
-
"alias": {
|
|
242
|
-
"type": "string",
|
|
243
|
-
"minLength": 1,
|
|
244
|
-
"description": "Human-readable label for UI/display only. Deduplication uses resourceKey, not alias.",
|
|
245
|
-
"examples": ["SQL Warehouse", "Secret", "Vector search index"]
|
|
246
|
-
},
|
|
247
|
-
"resourceKey": {
|
|
248
|
-
"type": "string",
|
|
249
|
-
"pattern": "^[a-z][a-z0-9-]*$",
|
|
250
|
-
"description": "Stable key for machine use: deduplication, env naming, composite keys, app.yaml. Required for registry lookup.",
|
|
251
|
-
"examples": ["sql-warehouse", "database", "secret"]
|
|
252
|
-
},
|
|
253
|
-
"description": {
|
|
254
|
-
"type": "string",
|
|
255
|
-
"minLength": 1,
|
|
256
|
-
"description": "Human-readable description of why this resource is needed"
|
|
257
|
-
},
|
|
258
|
-
"permission": {
|
|
259
|
-
"type": "string",
|
|
260
|
-
"description": "Required permission level. Validated per resource type by the allOf/if-then rules below."
|
|
261
|
-
},
|
|
262
|
-
"fields": {
|
|
263
|
-
"type": "object",
|
|
264
|
-
"additionalProperties": {
|
|
265
|
-
"$ref": "#/$defs/resourceFieldEntry"
|
|
266
|
-
},
|
|
267
|
-
"minProperties": 1,
|
|
268
|
-
"description": "Map of field name to env and optional description. Single-value types use one key (e.g. id); multi-value (database, secret) use multiple (e.g. instance_name, database_name or scope, key)."
|
|
269
|
-
}
|
|
270
|
-
},
|
|
271
|
-
"additionalProperties": false,
|
|
272
|
-
"allOf": [
|
|
273
|
-
{
|
|
274
|
-
"if": {
|
|
275
|
-
"properties": { "type": { "const": "secret" } },
|
|
276
|
-
"required": ["type"]
|
|
277
|
-
},
|
|
278
|
-
"then": {
|
|
279
|
-
"properties": {
|
|
280
|
-
"permission": { "$ref": "#/$defs/secretPermission" }
|
|
281
|
-
}
|
|
282
|
-
}
|
|
283
|
-
},
|
|
284
|
-
{
|
|
285
|
-
"if": {
|
|
286
|
-
"properties": { "type": { "const": "job" } },
|
|
287
|
-
"required": ["type"]
|
|
288
|
-
},
|
|
289
|
-
"then": {
|
|
290
|
-
"properties": { "permission": { "$ref": "#/$defs/jobPermission" } }
|
|
291
|
-
}
|
|
292
|
-
},
|
|
293
|
-
{
|
|
294
|
-
"if": {
|
|
295
|
-
"properties": { "type": { "const": "sql_warehouse" } },
|
|
296
|
-
"required": ["type"]
|
|
297
|
-
},
|
|
298
|
-
"then": {
|
|
299
|
-
"properties": {
|
|
300
|
-
"permission": { "$ref": "#/$defs/sqlWarehousePermission" }
|
|
301
|
-
}
|
|
302
|
-
}
|
|
303
|
-
},
|
|
304
|
-
{
|
|
305
|
-
"if": {
|
|
306
|
-
"properties": { "type": { "const": "serving_endpoint" } },
|
|
307
|
-
"required": ["type"]
|
|
308
|
-
},
|
|
309
|
-
"then": {
|
|
310
|
-
"properties": {
|
|
311
|
-
"permission": { "$ref": "#/$defs/servingEndpointPermission" }
|
|
312
|
-
}
|
|
313
|
-
}
|
|
314
|
-
},
|
|
315
|
-
{
|
|
316
|
-
"if": {
|
|
317
|
-
"properties": { "type": { "const": "volume" } },
|
|
318
|
-
"required": ["type"]
|
|
319
|
-
},
|
|
320
|
-
"then": {
|
|
321
|
-
"properties": {
|
|
322
|
-
"permission": { "$ref": "#/$defs/volumePermission" }
|
|
323
|
-
}
|
|
324
|
-
}
|
|
325
|
-
},
|
|
326
|
-
{
|
|
327
|
-
"if": {
|
|
328
|
-
"properties": { "type": { "const": "vector_search_index" } },
|
|
329
|
-
"required": ["type"]
|
|
330
|
-
},
|
|
331
|
-
"then": {
|
|
332
|
-
"properties": {
|
|
333
|
-
"permission": { "$ref": "#/$defs/vectorSearchIndexPermission" }
|
|
334
|
-
}
|
|
335
|
-
}
|
|
336
|
-
},
|
|
337
|
-
{
|
|
338
|
-
"if": {
|
|
339
|
-
"properties": { "type": { "const": "uc_function" } },
|
|
340
|
-
"required": ["type"]
|
|
341
|
-
},
|
|
342
|
-
"then": {
|
|
343
|
-
"properties": {
|
|
344
|
-
"permission": { "$ref": "#/$defs/ucFunctionPermission" }
|
|
345
|
-
}
|
|
346
|
-
}
|
|
347
|
-
},
|
|
348
|
-
{
|
|
349
|
-
"if": {
|
|
350
|
-
"properties": { "type": { "const": "uc_connection" } },
|
|
351
|
-
"required": ["type"]
|
|
352
|
-
},
|
|
353
|
-
"then": {
|
|
354
|
-
"properties": {
|
|
355
|
-
"permission": { "$ref": "#/$defs/ucConnectionPermission" }
|
|
356
|
-
}
|
|
357
|
-
}
|
|
358
|
-
},
|
|
359
|
-
{
|
|
360
|
-
"if": {
|
|
361
|
-
"properties": { "type": { "const": "database" } },
|
|
362
|
-
"required": ["type"]
|
|
363
|
-
},
|
|
364
|
-
"then": {
|
|
365
|
-
"properties": {
|
|
366
|
-
"permission": { "$ref": "#/$defs/databasePermission" }
|
|
367
|
-
}
|
|
368
|
-
}
|
|
369
|
-
},
|
|
370
|
-
{
|
|
371
|
-
"if": {
|
|
372
|
-
"properties": { "type": { "const": "postgres" } },
|
|
373
|
-
"required": ["type"]
|
|
374
|
-
},
|
|
375
|
-
"then": {
|
|
376
|
-
"properties": {
|
|
377
|
-
"permission": { "$ref": "#/$defs/postgresPermission" }
|
|
378
|
-
}
|
|
379
|
-
}
|
|
380
|
-
},
|
|
381
|
-
{
|
|
382
|
-
"if": {
|
|
383
|
-
"properties": { "type": { "const": "genie_space" } },
|
|
384
|
-
"required": ["type"]
|
|
385
|
-
},
|
|
386
|
-
"then": {
|
|
387
|
-
"properties": {
|
|
388
|
-
"permission": { "$ref": "#/$defs/genieSpacePermission" }
|
|
389
|
-
}
|
|
390
|
-
}
|
|
391
|
-
},
|
|
392
|
-
{
|
|
393
|
-
"if": {
|
|
394
|
-
"properties": { "type": { "const": "experiment" } },
|
|
395
|
-
"required": ["type"]
|
|
396
|
-
},
|
|
397
|
-
"then": {
|
|
398
|
-
"properties": {
|
|
399
|
-
"permission": { "$ref": "#/$defs/experimentPermission" }
|
|
400
|
-
}
|
|
401
|
-
}
|
|
402
|
-
},
|
|
403
|
-
{
|
|
404
|
-
"if": {
|
|
405
|
-
"properties": { "type": { "const": "app" } },
|
|
406
|
-
"required": ["type"]
|
|
407
|
-
},
|
|
408
|
-
"then": {
|
|
409
|
-
"properties": { "permission": { "$ref": "#/$defs/appPermission" } }
|
|
410
|
-
}
|
|
411
|
-
}
|
|
412
|
-
]
|
|
413
|
-
},
|
|
414
|
-
"configSchemaProperty": {
|
|
415
|
-
"type": "object",
|
|
416
|
-
"required": ["type"],
|
|
417
|
-
"properties": {
|
|
418
|
-
"type": {
|
|
419
|
-
"type": "string",
|
|
420
|
-
"enum": ["object", "array", "string", "number", "boolean", "integer"]
|
|
421
|
-
},
|
|
422
|
-
"description": {
|
|
423
|
-
"type": "string"
|
|
424
|
-
},
|
|
425
|
-
"default": {},
|
|
426
|
-
"enum": {
|
|
427
|
-
"type": "array"
|
|
428
|
-
},
|
|
429
|
-
"properties": {
|
|
430
|
-
"type": "object",
|
|
431
|
-
"additionalProperties": {
|
|
432
|
-
"$ref": "#/$defs/configSchemaProperty"
|
|
433
|
-
}
|
|
434
|
-
},
|
|
435
|
-
"items": {
|
|
436
|
-
"$ref": "#/$defs/configSchemaProperty"
|
|
437
|
-
},
|
|
438
|
-
"minimum": {
|
|
439
|
-
"type": "number"
|
|
440
|
-
},
|
|
441
|
-
"maximum": {
|
|
442
|
-
"type": "number"
|
|
443
|
-
},
|
|
444
|
-
"minLength": {
|
|
445
|
-
"type": "integer",
|
|
446
|
-
"minimum": 0
|
|
447
|
-
},
|
|
448
|
-
"maxLength": {
|
|
449
|
-
"type": "integer",
|
|
450
|
-
"minimum": 0
|
|
451
|
-
},
|
|
452
|
-
"required": {
|
|
453
|
-
"type": "array",
|
|
454
|
-
"items": {
|
|
455
|
-
"type": "string"
|
|
456
|
-
}
|
|
457
|
-
}
|
|
458
|
-
}
|
|
459
|
-
},
|
|
460
|
-
"configSchema": {
|
|
461
|
-
"type": "object",
|
|
462
|
-
"required": ["type"],
|
|
463
|
-
"properties": {
|
|
464
|
-
"type": {
|
|
465
|
-
"type": "string",
|
|
466
|
-
"enum": ["object", "array", "string", "number", "boolean"]
|
|
467
|
-
},
|
|
468
|
-
"properties": {
|
|
469
|
-
"type": "object",
|
|
470
|
-
"additionalProperties": {
|
|
471
|
-
"$ref": "#/$defs/configSchemaProperty"
|
|
472
|
-
}
|
|
473
|
-
},
|
|
474
|
-
"items": {
|
|
475
|
-
"$ref": "#/$defs/configSchema"
|
|
476
|
-
},
|
|
477
|
-
"required": {
|
|
478
|
-
"type": "array",
|
|
479
|
-
"items": {
|
|
480
|
-
"type": "string"
|
|
481
|
-
}
|
|
482
|
-
},
|
|
483
|
-
"additionalProperties": {
|
|
484
|
-
"type": "boolean"
|
|
485
|
-
}
|
|
486
|
-
}
|
|
487
|
-
}
|
|
488
|
-
}
|
|
489
|
-
}
|