@databricks/appkit-ui 0.26.1 → 0.27.1

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 CHANGED
@@ -48,6 +48,7 @@ npx @databricks/appkit docs <query>
48
48
  - [Execution context](./docs/plugins/execution-context.md): AppKit manages Databricks authentication via two contexts:
49
49
  - [Files plugin](./docs/plugins/files.md): File operations against Databricks Unity Catalog Volumes. Supports listing, reading, downloading, uploading, deleting, and previewing files with built-in caching, retry, and timeout handling via the execution interceptor pipeline.
50
50
  - [Genie plugin](./docs/plugins/genie.md): Integrates Databricks AI/BI Genie spaces into your AppKit application, enabling natural language data queries via a conversational interface.
51
+ - [Jobs plugin](./docs/plugins/jobs.md): Trigger and monitor Databricks Lakeflow Jobs from your AppKit application.
51
52
  - [Lakebase plugin](./docs/plugins/lakebase.md): Provides a PostgreSQL connection pool for Databricks Lakebase Autoscaling with automatic OAuth token refresh.
52
53
  - [Model Serving plugin](./docs/plugins/model-serving.md): Provides an authenticated proxy to Databricks Model Serving endpoints, with invoke and streaming support.
53
54
  - [Plugin management](./docs/plugins/plugin-management.md): AppKit includes a CLI for managing plugins. All commands are available under npx @databricks/appkit plugin.
@@ -93,7 +94,11 @@ npx @databricks/appkit docs <query>
93
94
  - [Interface: FilePolicyUser](./docs/api/appkit/Interface.FilePolicyUser.md): Minimal user identity passed to the policy function.
94
95
  - [Interface: FileResource](./docs/api/appkit/Interface.FileResource.md): Describes the file or directory being acted upon.
95
96
  - [Interface: GenerateDatabaseCredentialRequest](./docs/api/appkit/Interface.GenerateDatabaseCredentialRequest.md): Request parameters for generating database OAuth credentials
97
+ - [Interface: IJobsConfig](./docs/api/appkit/Interface.IJobsConfig.md): Configuration for the Jobs plugin.
96
98
  - [Interface: ITelemetry](./docs/api/appkit/Interface.ITelemetry.md): Plugin-facing interface for OpenTelemetry instrumentation.
99
+ - [Interface: JobAPI](./docs/api/appkit/Interface.JobAPI.md): User-facing API for a single configured job.
100
+ - [Interface: JobConfig](./docs/api/appkit/Interface.JobConfig.md): Per-job configuration options.
101
+ - [Interface: JobsConnectorConfig](./docs/api/appkit/Interface.JobsConnectorConfig.md): Properties
97
102
  - [Interface: LakebasePoolConfig](./docs/api/appkit/Interface.LakebasePoolConfig.md): Configuration for creating a Lakebase connection pool
98
103
  - [Interface: PluginManifest<TName>](./docs/api/appkit/Interface.PluginManifest.md): Plugin manifest that declares metadata and resource requirements.
99
104
  - [Interface: RequestedClaims](./docs/api/appkit/Interface.RequestedClaims.md): Optional claims for fine-grained Unity Catalog table permissions
@@ -111,6 +116,8 @@ npx @databricks/appkit docs <query>
111
116
  - [Type Alias: FileAction](./docs/api/appkit/TypeAlias.FileAction.md): Every action the files plugin can perform.
112
117
  - [Type Alias: FilePolicy()](./docs/api/appkit/TypeAlias.FilePolicy.md): A policy function that decides whether user may perform action on
113
118
  - [Type Alias: IAppRouter](./docs/api/appkit/TypeAlias.IAppRouter.md): Express router type for plugin route registration
119
+ - [Type Alias: JobHandle](./docs/api/appkit/TypeAlias.JobHandle.md): Job handle returned by appkit.jobs("etl").
120
+ - [Type Alias: JobsExport()](./docs/api/appkit/TypeAlias.JobsExport.md): Public API shape of the jobs plugin.
114
121
  - [Type Alias: PluginData<T, U, N>](./docs/api/appkit/TypeAlias.PluginData.md): Tuple of plugin class, config, and name. Created by toPlugin() and passed to createApp().
115
122
  - [Type Alias: ResourcePermission](./docs/api/appkit/TypeAlias.ResourcePermission.md): Union of all possible permission levels across all resource types.
116
123
  - [Type Alias: ServingFactory](./docs/api/appkit/TypeAlias.ServingFactory.md): Factory function returned by AppKit.serving.
package/NOTICE.md CHANGED
@@ -79,4 +79,5 @@ This Software contains code from the following open source projects:
79
79
  | [tailwind-merge](https://www.npmjs.com/package/tailwind-merge) | 3.4.0 | MIT | https://github.com/dcastil/tailwind-merge |
80
80
  | [vaul](https://www.npmjs.com/package/vaul) | 1.1.2 | MIT | https://vaul.emilkowal.ski/ |
81
81
  | [ws](https://www.npmjs.com/package/ws) | 7.5.10, 8.18.3 | MIT | https://github.com/websockets/ws |
82
+ | [zod](https://www.npmjs.com/package/zod) | 4.3.6 | MIT | https://zod.dev |
82
83
 
@@ -5,7 +5,7 @@
5
5
  * This interface was referenced by `PluginManifest`'s JSON-Schema
6
6
  * via the `definition` "resourceRequirement".
7
7
  */
8
- type ResourceRequirement = ({
8
+ type ResourceRequirement = {
9
9
  type: ResourceType;
10
10
  /**
11
11
  * Human-readable label for UI/display only. Deduplication uses resourceKey, not alias.
@@ -29,14 +29,14 @@ type ResourceRequirement = ({
29
29
  fields?: {
30
30
  [k: string]: ResourceFieldEntry;
31
31
  };
32
- });
32
+ };
33
33
  /**
34
34
  * Type of Databricks resource
35
35
  *
36
36
  * This interface was referenced by `PluginManifest`'s JSON-Schema
37
37
  * via the `definition` "resourceType".
38
38
  */
39
- type ResourceType = ("secret" | "job" | "sql_warehouse" | "serving_endpoint" | "volume" | "vector_search_index" | "uc_function" | "uc_connection" | "database" | "postgres" | "genie_space" | "experiment" | "app");
39
+ type ResourceType = "secret" | "job" | "sql_warehouse" | "serving_endpoint" | "volume" | "vector_search_index" | "uc_function" | "uc_connection" | "database" | "postgres" | "genie_space" | "experiment" | "app";
40
40
  /**
41
41
  * Schema for Databricks AppKit plugin manifest files. Defines plugin metadata, resource requirements, and configuration options.
42
42
  */
@@ -146,7 +146,7 @@ interface ResourceFieldEntry {
146
146
  * via the `definition` "configSchema".
147
147
  */
148
148
  interface ConfigSchema {
149
- type: ("object" | "array" | "string" | "number" | "boolean");
149
+ type: "object" | "array" | "string" | "number" | "boolean";
150
150
  properties?: {
151
151
  [k: string]: ConfigSchemaProperty;
152
152
  };
@@ -159,7 +159,7 @@ interface ConfigSchema {
159
159
  * via the `definition` "configSchemaProperty".
160
160
  */
161
161
  interface ConfigSchemaProperty {
162
- type: ("object" | "array" | "string" | "number" | "boolean" | "integer");
162
+ type: "object" | "array" | "string" | "number" | "boolean" | "integer";
163
163
  description?: string;
164
164
  default?: unknown;
165
165
  enum?: unknown[];
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-manifest.generated.d.ts","names":[],"sources":["../../src/schemas/plugin-manifest.generated.ts"],"mappings":";;AAQA;;;;;KAAY,mBAAA;EACZ,IAAA,EAAM,YAAA;EAQN;;;EAJA,KAAA;EAiBC;;;EAbD,WAAA;EAsBY;;;EAlBZ,WAAA;EAkBwB;AAgGxB;;EA9GA,UAAA;EAsIU;;;EAlIV,MAAA;IAAA,CACC,CAAA,WAAY,kBAAA;EAAA;AAAA;;;;;;;KASD,YAAA;;;;UAgGK,cAAA;;;;EAIjB,OAAA;;;;EAIA,IAAA;;;;EAIA,WAAA;;;;EAIA,WAAA;;;;EAIA,SAAA;;;;IAIA,QAAA,EAAU,mBAAA;;;;IAIV,QAAA,EAAU,mBAAA;EAAA;;;;EAKV,MAAA;IACA,MAAA,GAAS,YAAA;EAAA;;;;EAKT,MAAA;;;;EAIA,OAAA;;;;EAIA,UAAA;;;;EAIA,QAAA;;;;EAIA,OAAA;;;;EAIA,cAAA;;;;EAIA,MAAA;AAAA;;;;;;;UAQiB,kBAAA;;;;EAIjB,GAAA;;;;EAIA,WAAA;;;;EAIA,YAAA;;;;EAIA,QAAA;;;;EAIA,SAAA;;;;EAIA,KAAA;;;;EAIA,OAAA;AAAA;;;;;UAMiB,YAAA;EACjB,IAAA;EACA,UAAA;IAAA,CACC,CAAA,WAAY,oBAAA;EAAA;EAEb,KAAA,GAAQ,YAAA;EACR,QAAA;EACA,oBAAA;AAAA;;;;;UAMiB,oBAAA;EACjB,IAAA;EACA,WAAA;EACA,OAAA;EACA,IAAA;EACA,UAAA;IAAA,CACC,CAAA,WAAY,oBAAA;EAAA;EAEb,KAAA,GAAQ,oBAAA;EACR,OAAA;EACA,OAAA;EACA,SAAA;EACA,SAAA;EACA,QAAA;AAAA"}
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;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"}
@@ -2,6 +2,10 @@
2
2
 
3
3
  Base configuration interface for AppKit plugins
4
4
 
5
+ ## Extended by[​](#extended-by "Direct link to Extended by")
6
+
7
+ * [`IJobsConfig`](./docs/api/appkit/Interface.IJobsConfig.md)
8
+
5
9
  ## Indexable[​](#indexable "Direct link to Indexable")
6
10
 
7
11
  ```ts
@@ -0,0 +1,86 @@
1
+ # Interface: IJobsConfig
2
+
3
+ Configuration for the Jobs plugin.
4
+
5
+ ## Extends[​](#extends "Direct link to Extends")
6
+
7
+ * [`BasePluginConfig`](./docs/api/appkit/Interface.BasePluginConfig.md)
8
+
9
+ ## Indexable[​](#indexable "Direct link to Indexable")
10
+
11
+ ```ts
12
+ [key: string]: unknown
13
+
14
+ ```
15
+
16
+ ## Properties[​](#properties "Direct link to Properties")
17
+
18
+ ### host?[​](#host "Direct link to host?")
19
+
20
+ ```ts
21
+ optional host: string;
22
+
23
+ ```
24
+
25
+ #### Inherited from[​](#inherited-from "Direct link to Inherited from")
26
+
27
+ [`BasePluginConfig`](./docs/api/appkit/Interface.BasePluginConfig.md).[`host`](./docs/api/appkit/Interface.BasePluginConfig.md#host)
28
+
29
+ ***
30
+
31
+ ### jobs?[​](#jobs "Direct link to jobs?")
32
+
33
+ ```ts
34
+ optional jobs: Record<string, JobConfig>;
35
+
36
+ ```
37
+
38
+ Named jobs to expose. Each key becomes a job accessor.
39
+
40
+ ***
41
+
42
+ ### name?[​](#name "Direct link to name?")
43
+
44
+ ```ts
45
+ optional name: string;
46
+
47
+ ```
48
+
49
+ #### Inherited from[​](#inherited-from-1 "Direct link to Inherited from")
50
+
51
+ [`BasePluginConfig`](./docs/api/appkit/Interface.BasePluginConfig.md).[`name`](./docs/api/appkit/Interface.BasePluginConfig.md#name)
52
+
53
+ ***
54
+
55
+ ### pollIntervalMs?[​](#pollintervalms "Direct link to pollIntervalMs?")
56
+
57
+ ```ts
58
+ optional pollIntervalMs: number;
59
+
60
+ ```
61
+
62
+ Poll interval for waitForRun in milliseconds. Defaults to 5000.
63
+
64
+ ***
65
+
66
+ ### telemetry?[​](#telemetry "Direct link to telemetry?")
67
+
68
+ ```ts
69
+ optional telemetry: TelemetryOptions;
70
+
71
+ ```
72
+
73
+ #### Inherited from[​](#inherited-from-2 "Direct link to Inherited from")
74
+
75
+ [`BasePluginConfig`](./docs/api/appkit/Interface.BasePluginConfig.md).[`telemetry`](./docs/api/appkit/Interface.BasePluginConfig.md#telemetry)
76
+
77
+ ***
78
+
79
+ ### timeout?[​](#timeout "Direct link to timeout?")
80
+
81
+ ```ts
82
+ optional timeout: number;
83
+
84
+ ```
85
+
86
+ Operation timeout in milliseconds. Defaults to 60000.
@@ -0,0 +1,163 @@
1
+ # Interface: JobAPI
2
+
3
+ User-facing API for a single configured job.
4
+
5
+ ## Methods[​](#methods "Direct link to Methods")
6
+
7
+ ### cancelRun()[​](#cancelrun "Direct link to cancelRun()")
8
+
9
+ ```ts
10
+ cancelRun(runId: number): Promise<ExecutionResult<void>>;
11
+
12
+ ```
13
+
14
+ Cancel a specific run.
15
+
16
+ #### Parameters[​](#parameters "Direct link to Parameters")
17
+
18
+ | Parameter | Type |
19
+ | --------- | -------- |
20
+ | `runId` | `number` |
21
+
22
+ #### Returns[​](#returns "Direct link to Returns")
23
+
24
+ `Promise`<[`ExecutionResult`](./docs/api/appkit/TypeAlias.ExecutionResult.md)<`void`>>
25
+
26
+ ***
27
+
28
+ ### getJob()[​](#getjob "Direct link to getJob()")
29
+
30
+ ```ts
31
+ getJob(): Promise<ExecutionResult<Job>>;
32
+
33
+ ```
34
+
35
+ Get the job definition.
36
+
37
+ #### Returns[​](#returns-1 "Direct link to Returns")
38
+
39
+ `Promise`<[`ExecutionResult`](./docs/api/appkit/TypeAlias.ExecutionResult.md)<`Job`>>
40
+
41
+ ***
42
+
43
+ ### getRun()[​](#getrun "Direct link to getRun()")
44
+
45
+ ```ts
46
+ getRun(runId: number): Promise<ExecutionResult<Run>>;
47
+
48
+ ```
49
+
50
+ Get a specific run by ID.
51
+
52
+ #### Parameters[​](#parameters-1 "Direct link to Parameters")
53
+
54
+ | Parameter | Type |
55
+ | --------- | -------- |
56
+ | `runId` | `number` |
57
+
58
+ #### Returns[​](#returns-2 "Direct link to Returns")
59
+
60
+ `Promise`<[`ExecutionResult`](./docs/api/appkit/TypeAlias.ExecutionResult.md)<`Run`>>
61
+
62
+ ***
63
+
64
+ ### getRunOutput()[​](#getrunoutput "Direct link to getRunOutput()")
65
+
66
+ ```ts
67
+ getRunOutput(runId: number): Promise<ExecutionResult<RunOutput>>;
68
+
69
+ ```
70
+
71
+ Get output of a specific run.
72
+
73
+ #### Parameters[​](#parameters-2 "Direct link to Parameters")
74
+
75
+ | Parameter | Type |
76
+ | --------- | -------- |
77
+ | `runId` | `number` |
78
+
79
+ #### Returns[​](#returns-3 "Direct link to Returns")
80
+
81
+ `Promise`<[`ExecutionResult`](./docs/api/appkit/TypeAlias.ExecutionResult.md)<`RunOutput`>>
82
+
83
+ ***
84
+
85
+ ### lastRun()[​](#lastrun "Direct link to lastRun()")
86
+
87
+ ```ts
88
+ lastRun(): Promise<ExecutionResult<BaseRun | undefined>>;
89
+
90
+ ```
91
+
92
+ Get the most recent run for this job.
93
+
94
+ #### Returns[​](#returns-4 "Direct link to Returns")
95
+
96
+ `Promise`<[`ExecutionResult`](./docs/api/appkit/TypeAlias.ExecutionResult.md)<`BaseRun` | `undefined`>>
97
+
98
+ ***
99
+
100
+ ### listRuns()[​](#listruns "Direct link to listRuns()")
101
+
102
+ ```ts
103
+ listRuns(options?: {
104
+ limit?: number;
105
+ }): Promise<ExecutionResult<BaseRun[]>>;
106
+
107
+ ```
108
+
109
+ List runs for this job.
110
+
111
+ #### Parameters[​](#parameters-3 "Direct link to Parameters")
112
+
113
+ | Parameter | Type |
114
+ | ---------------- | ----------------------- |
115
+ | `options?` | { `limit?`: `number`; } |
116
+ | `options.limit?` | `number` |
117
+
118
+ #### Returns[​](#returns-5 "Direct link to Returns")
119
+
120
+ `Promise`<[`ExecutionResult`](./docs/api/appkit/TypeAlias.ExecutionResult.md)<`BaseRun`\[]>>
121
+
122
+ ***
123
+
124
+ ### runAndWait()[​](#runandwait "Direct link to runAndWait()")
125
+
126
+ ```ts
127
+ runAndWait(params?: Record<string, unknown>, signal?: AbortSignal): AsyncGenerator<JobRunStatus, void, unknown>;
128
+
129
+ ```
130
+
131
+ Trigger and poll until completion, yielding status updates.
132
+
133
+ #### Parameters[​](#parameters-4 "Direct link to Parameters")
134
+
135
+ | Parameter | Type |
136
+ | --------- | ----------------------------- |
137
+ | `params?` | `Record`<`string`, `unknown`> |
138
+ | `signal?` | `AbortSignal` |
139
+
140
+ #### Returns[​](#returns-6 "Direct link to Returns")
141
+
142
+ `AsyncGenerator`<`JobRunStatus`, `void`, `unknown`>
143
+
144
+ ***
145
+
146
+ ### runNow()[​](#runnow "Direct link to runNow()")
147
+
148
+ ```ts
149
+ runNow(params?: Record<string, unknown>): Promise<ExecutionResult<RunNowResponse>>;
150
+
151
+ ```
152
+
153
+ Trigger the configured job with validated params. Returns the run response.
154
+
155
+ #### Parameters[​](#parameters-5 "Direct link to Parameters")
156
+
157
+ | Parameter | Type |
158
+ | --------- | ----------------------------- |
159
+ | `params?` | `Record`<`string`, `unknown`> |
160
+
161
+ #### Returns[​](#returns-7 "Direct link to Returns")
162
+
163
+ `Promise`<[`ExecutionResult`](./docs/api/appkit/TypeAlias.ExecutionResult.md)<`RunNowResponse`>>
@@ -0,0 +1,36 @@
1
+ # Interface: JobConfig
2
+
3
+ Per-job configuration options.
4
+
5
+ ## Properties[​](#properties "Direct link to Properties")
6
+
7
+ ### params?[​](#params "Direct link to params?")
8
+
9
+ ```ts
10
+ optional params: ZodType<Record<string, unknown>, unknown, $ZodTypeInternals<Record<string, unknown>, unknown>>;
11
+
12
+ ```
13
+
14
+ Optional Zod schema for validating job parameters at runtime.
15
+
16
+ ***
17
+
18
+ ### taskType?[​](#tasktype "Direct link to taskType?")
19
+
20
+ ```ts
21
+ optional taskType: TaskType;
22
+
23
+ ```
24
+
25
+ The type of task this job runs. Determines how params are mapped to the SDK request.
26
+
27
+ ***
28
+
29
+ ### waitTimeout?[​](#waittimeout "Direct link to waitTimeout?")
30
+
31
+ ```ts
32
+ optional waitTimeout: number;
33
+
34
+ ```
35
+
36
+ Maximum time (ms) to poll in runAndWait before giving up. Defaults to 600 000 (10 min).
@@ -0,0 +1,10 @@
1
+ # Interface: JobsConnectorConfig
2
+
3
+ ## Properties[​](#properties "Direct link to Properties")
4
+
5
+ ### telemetry?[​](#telemetry "Direct link to telemetry?")
6
+
7
+ ```ts
8
+ optional telemetry: TelemetryOptions;
9
+
10
+ ```
@@ -0,0 +1,29 @@
1
+ # Type Alias: JobHandle
2
+
3
+ ```ts
4
+ type JobHandle = JobAPI & {
5
+ asUser: (req: IAppRequest) => JobAPI;
6
+ };
7
+
8
+ ```
9
+
10
+ Job handle returned by `appkit.jobs("etl")`. Supports OBO access via `.asUser(req)`.
11
+
12
+ ## Type Declaration[​](#type-declaration "Direct link to Type Declaration")
13
+
14
+ ### asUser()[​](#asuser "Direct link to asUser()")
15
+
16
+ ```ts
17
+ asUser: (req: IAppRequest) => JobAPI;
18
+
19
+ ```
20
+
21
+ #### Parameters[​](#parameters "Direct link to Parameters")
22
+
23
+ | Parameter | Type |
24
+ | --------- | ------------- |
25
+ | `req` | `IAppRequest` |
26
+
27
+ #### Returns[​](#returns "Direct link to Returns")
28
+
29
+ [`JobAPI`](./docs/api/appkit/Interface.JobAPI.md)
@@ -0,0 +1,34 @@
1
+ # Type Alias: JobsExport()
2
+
3
+ ```ts
4
+ type JobsExport = (jobKey: string) => JobHandle;
5
+
6
+ ```
7
+
8
+ Public API shape of the jobs plugin. Callable to select a job by key.
9
+
10
+ ## Parameters[​](#parameters "Direct link to Parameters")
11
+
12
+ | Parameter | Type |
13
+ | --------- | -------- |
14
+ | `jobKey` | `string` |
15
+
16
+ ## Returns[​](#returns "Direct link to Returns")
17
+
18
+ [`JobHandle`](./docs/api/appkit/TypeAlias.JobHandle.md)
19
+
20
+ ## Example[​](#example "Direct link to Example")
21
+
22
+ ```ts
23
+ // Trigger a configured job
24
+ const { run_id } = await appkit.jobs("etl").runNow();
25
+
26
+ // Trigger and poll until completion
27
+ for await (const status of appkit.jobs("etl").runAndWait()) {
28
+ console.log(status.status, status.run);
29
+ }
30
+
31
+ // OBO access
32
+ await appkit.jobs("etl").asUser(req).runNow();
33
+
34
+ ```
@@ -37,7 +37,11 @@ Core library for building Databricks applications with type-safe SQL queries, pl
37
37
  | [FilePolicyUser](./docs/api/appkit/Interface.FilePolicyUser.md) | Minimal user identity passed to the policy function. |
38
38
  | [FileResource](./docs/api/appkit/Interface.FileResource.md) | Describes the file or directory being acted upon. |
39
39
  | [GenerateDatabaseCredentialRequest](./docs/api/appkit/Interface.GenerateDatabaseCredentialRequest.md) | Request parameters for generating database OAuth credentials |
40
+ | [IJobsConfig](./docs/api/appkit/Interface.IJobsConfig.md) | Configuration for the Jobs plugin. |
40
41
  | [ITelemetry](./docs/api/appkit/Interface.ITelemetry.md) | Plugin-facing interface for OpenTelemetry instrumentation. Provides a thin abstraction over OpenTelemetry APIs for plugins. |
42
+ | [JobAPI](./docs/api/appkit/Interface.JobAPI.md) | User-facing API for a single configured job. |
43
+ | [JobConfig](./docs/api/appkit/Interface.JobConfig.md) | Per-job configuration options. |
44
+ | [JobsConnectorConfig](./docs/api/appkit/Interface.JobsConnectorConfig.md) | - |
41
45
  | [LakebasePoolConfig](./docs/api/appkit/Interface.LakebasePoolConfig.md) | Configuration for creating a Lakebase connection pool |
42
46
  | [PluginManifest](./docs/api/appkit/Interface.PluginManifest.md) | Plugin manifest that declares metadata and resource requirements. Attached to plugin classes as a static property. Extends the shared PluginManifest with strict resource types. |
43
47
  | [RequestedClaims](./docs/api/appkit/Interface.RequestedClaims.md) | Optional claims for fine-grained Unity Catalog table permissions When specified, the returned token will be scoped to only the requested tables |
@@ -60,6 +64,8 @@ Core library for building Databricks applications with type-safe SQL queries, pl
60
64
  | [FileAction](./docs/api/appkit/TypeAlias.FileAction.md) | Every action the files plugin can perform. |
61
65
  | [FilePolicy](./docs/api/appkit/TypeAlias.FilePolicy.md) | A policy function that decides whether `user` may perform `action` on `resource`. Return `true` to allow, `false` to deny. |
62
66
  | [IAppRouter](./docs/api/appkit/TypeAlias.IAppRouter.md) | Express router type for plugin route registration |
67
+ | [JobHandle](./docs/api/appkit/TypeAlias.JobHandle.md) | Job handle returned by `appkit.jobs("etl")`. Supports OBO access via `.asUser(req)`. |
68
+ | [JobsExport](./docs/api/appkit/TypeAlias.JobsExport.md) | Public API shape of the jobs plugin. Callable to select a job by key. |
63
69
  | [PluginData](./docs/api/appkit/TypeAlias.PluginData.md) | Tuple of plugin class, config, and name. Created by `toPlugin()` and passed to `createApp()`. |
64
70
  | [ResourcePermission](./docs/api/appkit/TypeAlias.ResourcePermission.md) | Union of all possible permission levels across all resource types. |
65
71
  | [ServingFactory](./docs/api/appkit/TypeAlias.ServingFactory.md) | Factory function returned by `AppKit.serving`. |