Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
cc81761
feat(cli): add 'appkit add' and 'appkit registry' commands
MarioCadenas Jun 25, 2026
d6ca2f5
feat(cli): point registry at public databricks/appkit-registry repo
MarioCadenas Jun 25, 2026
dfe71fe
feat(cli): support private registry via gh token
MarioCadenas Jun 25, 2026
330c10e
feat(cli): drop components.json requirement from 'appkit add'
MarioCadenas Jun 25, 2026
8c7b249
fix(cli): detect frontend root for monorepo app layouts
MarioCadenas Jun 25, 2026
7846688
feat(cli): add 'appkit plugin add' for registry-distributed plugins
MarioCadenas Jun 25, 2026
5876d68
refactor(cli): unify plugin install into 'appkit add'; plugins under …
MarioCadenas Jun 25, 2026
ee4fd43
feat(cli): auto-register added plugins in the server createApp call
MarioCadenas Jun 25, 2026
6f98fff
fix(cli): register plugin as factory call with correct indentation
MarioCadenas Jun 25, 2026
96787de
feat(cli): verified-item marker + colorized registry output
MarioCadenas Jun 25, 2026
9523296
feat(cli): show item TYPE (component/plugin/hook/...) in registry list
MarioCadenas Jun 25, 2026
3dcd82e
feat(cli): add 'appkit registry search' over name/desc/type/keywords
MarioCadenas Jun 25, 2026
49fec33
refactor(cli): rename registry namespace to @databricks-appkit
MarioCadenas Aug 3, 2026
7830155
fix(cli): resolve transitive registryDependencies and surface optiona…
MarioCadenas Aug 6, 2026
d4f1eca
chore(cli): hide registry and add commands from --help
MarioCadenas Aug 11, 2026
d519380
feat(cli): resource-aware registry add — env reconcile, deploy config…
MarioCadenas Aug 11, 2026
3e4adf4
chore(repo): add apps/scratch/ for gitignored local scratch apps
MarioCadenas Aug 12, 2026
d866185
fix(cli): harden registry add against untrusted item data
MarioCadenas Aug 12, 2026
a7fe3b1
fix(cli): close transitive-verify and env-name injection gaps
MarioCadenas Aug 12, 2026
b97c88a
fix(cli): pin resolved item name to fetch key (verified-gate spoof)
MarioCadenas Aug 12, 2026
4dabd8b
fix(cli): validate registry item names; parallelize verify + resolve
MarioCadenas Aug 12, 2026
4454b69
fix(cli): validate registry info ref; correct SSRF wording
MarioCadenas Aug 12, 2026
5d5d268
refactor(cli): simplify registry module and trim comments
MarioCadenas Aug 12, 2026
c123ad7
refactor(shared): single source for field-origin derivation
MarioCadenas Aug 13, 2026
49c8f90
fix(cli): register plugins in the resolved server root, not cwd
MarioCadenas Aug 13, 2026
ea7fc3f
chore: refresh pnpm-lock.yaml after rebasing on main
MarioCadenas Aug 13, 2026
aab8a35
chore: scrub internal Databricks references from fixtures/tests
MarioCadenas Aug 13, 2026
9900ee9
refactor(cli): share app.yaml/databricks.yml binding contract between…
MarioCadenas Aug 14, 2026
2e383dc
fix(cli): dedup server-register import by binding, not path
MarioCadenas Aug 14, 2026
8f320ca
test(cli): make server-register binding-dedup test a real regression …
MarioCadenas Aug 14, 2026
546dbaf
fix(cli): resolve app profile for the registry picker and surface ski…
MarioCadenas Aug 14, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions apps/scratch/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# Scratch apps live here — resolved as workspace packages (deps link to the
# monorepo) and ignored by knip (apps/** is in ignoreWorkspaces), but never
# committed. Keep this dir tracked via .gitkeep; ignore everything else.
*
!.gitignore
!.gitkeep
Empty file added apps/scratch/.gitkeep
Empty file.
1 change: 1 addition & 0 deletions packages/shared/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@
"dotenv": "16.6.1",
"js-yaml": "4.2.0",
"picocolors": "1.1.1",
"yaml": "2.8.2",
"zod": "4.3.6"
}
}
23 changes: 8 additions & 15 deletions packages/shared/src/cli/commands/doctor/bundle.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,14 @@
import fs from "node:fs";
import path from "node:path";
import yaml from "js-yaml";
import {
APP_YAML_FILE,
bindingTypeOf,
DATABRICKS_YML_FILE,
} from "../../deploy-config";
import type { ResourceOrigin } from "./types";
import { errorMessage } from "./utils";

export const DEFAULT_BUNDLE_FILE = "databricks.yml";
export const DEFAULT_APP_YAML_FILE = "app.yaml";

/** A `${resources.<type>.<key>.<field>}` reference — a bundle-created resource. */
const RESOURCES_REF = /\$\{resources\.([^.]+)\.([^.}]+)\.[^}]+\}/;

Expand Down Expand Up @@ -62,15 +64,6 @@ interface AppYamlDoc {
env?: Array<{ name?: string; valueFrom?: string }>;
}

/** The typed sub-key of a binding is its single non-`name` object property. */
function bindingType(block: AppResourceBlock): string | undefined {
for (const [k, v] of Object.entries(block)) {
if (k === "name") continue;
if (v && typeof v === "object") return k;
}
return undefined;
}

/** Classifies a binding by its typed sub-key and origin: scanning its field
* values for a `${resources.*}` reference (bundle-managed) vs anything else
* (external). */
Expand All @@ -79,7 +72,7 @@ function classifyBinding(block: AppResourceBlock): {
origin: ResourceOrigin;
ref?: { type: string; key: string };
} {
const type = bindingType(block);
const type = bindingTypeOf(block);
const typed = type ? block[type] : undefined;
if (typed && typeof typed === "object") {
for (const value of Object.values(typed as Record<string, unknown>)) {
Expand Down Expand Up @@ -126,8 +119,8 @@ function readYaml<T>(filePath: string): T | null {
*/
export function readBundleInfo(
cwd: string = process.cwd(),
bundleFile: string = DEFAULT_BUNDLE_FILE,
appYamlFile: string = DEFAULT_APP_YAML_FILE,
bundleFile: string = DATABRICKS_YML_FILE,
appYamlFile: string = APP_YAML_FILE,
): BundleInfo {
const bindings = new Map<string, BundleBinding>();
const envToBinding = new Map<string, string>();
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
command: ['npm', 'run', 'start']
env:
- name: DATABRICKS_WAREHOUSE_ID
valueFrom: sql-warehouse
Loading
Loading