@databricks/appkit 0.2.0 → 0.4.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.
Files changed (248) hide show
  1. package/CLAUDE.md +121 -1228
  2. package/NOTICE.md +1 -1
  3. package/bin/appkit.js +3 -0
  4. package/dist/analytics/analytics.d.ts.map +1 -1
  5. package/dist/analytics/analytics.js +17 -30
  6. package/dist/analytics/analytics.js.map +1 -1
  7. package/dist/app/index.d.ts +5 -1
  8. package/dist/app/index.d.ts.map +1 -1
  9. package/dist/app/index.js +38 -9
  10. package/dist/app/index.js.map +1 -1
  11. package/dist/appkit/package.js +1 -1
  12. package/dist/cache/index.js +3 -3
  13. package/dist/cache/index.js.map +1 -1
  14. package/dist/cli/commands/docs.js +47 -0
  15. package/dist/cli/commands/docs.js.map +1 -0
  16. package/dist/cli/commands/generate-types.js +38 -0
  17. package/dist/cli/commands/generate-types.js.map +1 -0
  18. package/dist/cli/commands/lint.js +104 -0
  19. package/dist/cli/commands/lint.js.map +1 -0
  20. package/dist/cli/commands/setup.js +121 -0
  21. package/dist/cli/commands/setup.js.map +1 -0
  22. package/dist/cli/index.d.ts +1 -0
  23. package/dist/cli/index.js +24 -0
  24. package/dist/cli/index.js.map +1 -0
  25. package/dist/index.js.map +1 -1
  26. package/dist/plugin/plugin.d.ts +1 -0
  27. package/dist/plugin/plugin.d.ts.map +1 -1
  28. package/dist/plugin/plugin.js +1 -0
  29. package/dist/plugin/plugin.js.map +1 -1
  30. package/dist/server/remote-tunnel/remote-tunnel-manager.js +9 -9
  31. package/dist/server/remote-tunnel/remote-tunnel-manager.js.map +1 -1
  32. package/dist/server/utils.js +6 -6
  33. package/dist/server/utils.js.map +1 -1
  34. package/dist/shared/src/execute.d.ts +1 -0
  35. package/dist/shared/src/execute.d.ts.map +1 -1
  36. package/dist/shared/src/plugin.d.ts +3 -0
  37. package/dist/shared/src/plugin.d.ts.map +1 -1
  38. package/dist/telemetry/types.d.ts +1 -0
  39. package/dist/telemetry/types.d.ts.map +1 -1
  40. package/dist/type-generator/index.js +1 -1
  41. package/dist/type-generator/index.js.map +1 -1
  42. package/dist/type-generator/query-registry.js +9 -1
  43. package/dist/type-generator/query-registry.js.map +1 -1
  44. package/docs/docs/api/appkit/Class.AppKitError/index.html +77 -0
  45. package/docs/docs/api/appkit/Class.AppKitError.md +154 -0
  46. package/docs/docs/api/appkit/Class.AuthenticationError/index.html +110 -0
  47. package/docs/docs/api/appkit/Class.AuthenticationError.md +236 -0
  48. package/docs/docs/api/appkit/Class.ConfigurationError/index.html +112 -0
  49. package/docs/docs/api/appkit/Class.ConfigurationError.md +243 -0
  50. package/docs/docs/api/appkit/Class.ConnectionError/index.html +120 -0
  51. package/docs/docs/api/appkit/Class.ConnectionError.md +265 -0
  52. package/docs/docs/api/appkit/Class.ExecutionError/index.html +116 -0
  53. package/docs/docs/api/appkit/Class.ExecutionError.md +250 -0
  54. package/docs/docs/api/appkit/Class.InitializationError/index.html +104 -0
  55. package/docs/docs/api/appkit/Class.InitializationError.md +222 -0
  56. package/docs/docs/api/appkit/Class.Plugin/index.html +149 -0
  57. package/docs/docs/api/appkit/Class.Plugin.md +392 -0
  58. package/docs/docs/api/appkit/Class.ServerError/index.html +108 -0
  59. package/docs/docs/api/appkit/Class.ServerError.md +229 -0
  60. package/docs/docs/api/appkit/Class.TunnelError/index.html +108 -0
  61. package/docs/docs/api/appkit/Class.TunnelError.md +231 -0
  62. package/docs/docs/api/appkit/Class.ValidationError/index.html +106 -0
  63. package/docs/docs/api/appkit/Class.ValidationError.md +225 -0
  64. package/docs/docs/api/appkit/Function.appKitTypesPlugin/index.html +24 -0
  65. package/docs/docs/api/appkit/Function.appKitTypesPlugin.md +20 -0
  66. package/docs/docs/api/appkit/Function.createApp/index.html +24 -0
  67. package/docs/docs/api/appkit/Function.createApp.md +31 -0
  68. package/docs/docs/api/appkit/Function.isSQLTypeMarker/index.html +25 -0
  69. package/docs/docs/api/appkit/Function.isSQLTypeMarker.md +32 -0
  70. package/docs/docs/api/appkit/Interface.BasePluginConfig/index.html +28 -0
  71. package/docs/docs/api/appkit/Interface.BasePluginConfig.md +37 -0
  72. package/docs/docs/api/appkit/Interface.CacheConfig/index.html +63 -0
  73. package/docs/docs/api/appkit/Interface.CacheConfig.md +131 -0
  74. package/docs/docs/api/appkit/Interface.ITelemetry/index.html +73 -0
  75. package/docs/docs/api/appkit/Interface.ITelemetry.md +144 -0
  76. package/docs/docs/api/appkit/Interface.StreamExecutionSettings/index.html +26 -0
  77. package/docs/docs/api/appkit/Interface.StreamExecutionSettings.md +30 -0
  78. package/docs/docs/api/appkit/Interface.TelemetryConfig/index.html +32 -0
  79. package/docs/docs/api/appkit/Interface.TelemetryConfig.md +48 -0
  80. package/docs/docs/api/appkit/TypeAlias.IAppRouter/index.html +18 -0
  81. package/docs/docs/api/appkit/TypeAlias.IAppRouter.md +8 -0
  82. package/docs/docs/api/appkit/Variable.sql/index.html +98 -0
  83. package/docs/docs/api/appkit/Variable.sql.md +260 -0
  84. package/docs/docs/api/appkit/index.html +28 -0
  85. package/docs/docs/api/appkit-ui/data/AreaChart/index.html +29 -0
  86. package/docs/docs/api/appkit-ui/data/AreaChart.md +79 -0
  87. package/docs/docs/api/appkit-ui/data/BarChart/index.html +29 -0
  88. package/docs/docs/api/appkit-ui/data/BarChart.md +74 -0
  89. package/docs/docs/api/appkit-ui/data/DataTable/index.html +36 -0
  90. package/docs/docs/api/appkit-ui/data/DataTable.md +69 -0
  91. package/docs/docs/api/appkit-ui/data/DonutChart/index.html +29 -0
  92. package/docs/docs/api/appkit-ui/data/DonutChart.md +72 -0
  93. package/docs/docs/api/appkit-ui/data/HeatmapChart/index.html +35 -0
  94. package/docs/docs/api/appkit-ui/data/HeatmapChart.md +91 -0
  95. package/docs/docs/api/appkit-ui/data/LineChart/index.html +29 -0
  96. package/docs/docs/api/appkit-ui/data/LineChart.md +77 -0
  97. package/docs/docs/api/appkit-ui/data/PieChart/index.html +29 -0
  98. package/docs/docs/api/appkit-ui/data/PieChart.md +72 -0
  99. package/docs/docs/api/appkit-ui/data/RadarChart/index.html +29 -0
  100. package/docs/docs/api/appkit-ui/data/RadarChart.md +74 -0
  101. package/docs/docs/api/appkit-ui/data/ScatterChart/index.html +29 -0
  102. package/docs/docs/api/appkit-ui/data/ScatterChart.md +76 -0
  103. package/docs/docs/api/appkit-ui/index.html +23 -0
  104. package/docs/docs/api/appkit-ui/styling/index.html +74 -0
  105. package/docs/docs/api/appkit-ui/styling.md +81 -0
  106. package/docs/docs/api/appkit-ui/ui/Accordion/index.html +48 -0
  107. package/docs/docs/api/appkit-ui/ui/Accordion.md +139 -0
  108. package/docs/docs/api/appkit-ui/ui/Alert/index.html +41 -0
  109. package/docs/docs/api/appkit-ui/ui/Alert.md +89 -0
  110. package/docs/docs/api/appkit-ui/ui/AlertDialog/index.html +97 -0
  111. package/docs/docs/api/appkit-ui/ui/AlertDialog.md +282 -0
  112. package/docs/docs/api/appkit-ui/ui/AspectRatio/index.html +27 -0
  113. package/docs/docs/api/appkit-ui/ui/AspectRatio.md +46 -0
  114. package/docs/docs/api/appkit-ui/ui/Avatar/index.html +41 -0
  115. package/docs/docs/api/appkit-ui/ui/Avatar.md +90 -0
  116. package/docs/docs/api/appkit-ui/ui/Badge/index.html +27 -0
  117. package/docs/docs/api/appkit-ui/ui/Badge.md +38 -0
  118. package/docs/docs/api/appkit-ui/ui/Breadcrumb/index.html +69 -0
  119. package/docs/docs/api/appkit-ui/ui/Breadcrumb.md +193 -0
  120. package/docs/docs/api/appkit-ui/ui/Button/index.html +27 -0
  121. package/docs/docs/api/appkit-ui/ui/Button.md +39 -0
  122. package/docs/docs/api/appkit-ui/ui/ButtonGroup/index.html +38 -0
  123. package/docs/docs/api/appkit-ui/ui/ButtonGroup.md +68 -0
  124. package/docs/docs/api/appkit-ui/ui/Calendar/index.html +34 -0
  125. package/docs/docs/api/appkit-ui/ui/Calendar.md +154 -0
  126. package/docs/docs/api/appkit-ui/ui/Card/index.html +69 -0
  127. package/docs/docs/api/appkit-ui/ui/Card.md +222 -0
  128. package/docs/docs/api/appkit-ui/ui/Carousel/index.html +55 -0
  129. package/docs/docs/api/appkit-ui/ui/Carousel.md +152 -0
  130. package/docs/docs/api/appkit-ui/ui/ChartContainer/index.html +58 -0
  131. package/docs/docs/api/appkit-ui/ui/ChartContainer.md +343 -0
  132. package/docs/docs/api/appkit-ui/ui/Checkbox/index.html +27 -0
  133. package/docs/docs/api/appkit-ui/ui/Checkbox.md +53 -0
  134. package/docs/docs/api/appkit-ui/ui/Collapsible/index.html +41 -0
  135. package/docs/docs/api/appkit-ui/ui/Collapsible.md +125 -0
  136. package/docs/docs/api/appkit-ui/ui/Command/index.html +83 -0
  137. package/docs/docs/api/appkit-ui/ui/Command.md +287 -0
  138. package/docs/docs/api/appkit-ui/ui/ContextMenu/index.html +111 -0
  139. package/docs/docs/api/appkit-ui/ui/ContextMenu.md +419 -0
  140. package/docs/docs/api/appkit-ui/ui/Dialog/index.html +90 -0
  141. package/docs/docs/api/appkit-ui/ui/Dialog.md +285 -0
  142. package/docs/docs/api/appkit-ui/ui/Drawer/index.html +90 -0
  143. package/docs/docs/api/appkit-ui/ui/Drawer.md +387 -0
  144. package/docs/docs/api/appkit-ui/ui/DropdownMenu/index.html +111 -0
  145. package/docs/docs/api/appkit-ui/ui/DropdownMenu.md +478 -0
  146. package/docs/docs/api/appkit-ui/ui/Empty/index.html +54 -0
  147. package/docs/docs/api/appkit-ui/ui/Empty.md +109 -0
  148. package/docs/docs/api/appkit-ui/ui/Field/index.html +87 -0
  149. package/docs/docs/api/appkit-ui/ui/Field.md +201 -0
  150. package/docs/docs/api/appkit-ui/ui/FormControl/index.html +59 -0
  151. package/docs/docs/api/appkit-ui/ui/FormControl.md +128 -0
  152. package/docs/docs/api/appkit-ui/ui/HoverCard/index.html +39 -0
  153. package/docs/docs/api/appkit-ui/ui/HoverCard.md +131 -0
  154. package/docs/docs/api/appkit-ui/ui/Input/index.html +27 -0
  155. package/docs/docs/api/appkit-ui/ui/Input.md +35 -0
  156. package/docs/docs/api/appkit-ui/ui/InputGroup/index.html +59 -0
  157. package/docs/docs/api/appkit-ui/ui/InputGroup.md +123 -0
  158. package/docs/docs/api/appkit-ui/ui/InputOTP/index.html +48 -0
  159. package/docs/docs/api/appkit-ui/ui/InputOTP.md +124 -0
  160. package/docs/docs/api/appkit-ui/ui/Item/index.html +78 -0
  161. package/docs/docs/api/appkit-ui/ui/Item.md +185 -0
  162. package/docs/docs/api/appkit-ui/ui/Kbd/index.html +30 -0
  163. package/docs/docs/api/appkit-ui/ui/Kbd.md +39 -0
  164. package/docs/docs/api/appkit-ui/ui/Label/index.html +27 -0
  165. package/docs/docs/api/appkit-ui/ui/Label.md +44 -0
  166. package/docs/docs/api/appkit-ui/ui/Menubar/index.html +117 -0
  167. package/docs/docs/api/appkit-ui/ui/Menubar.md +484 -0
  168. package/docs/docs/api/appkit-ui/ui/NavigationMenu/index.html +76 -0
  169. package/docs/docs/api/appkit-ui/ui/NavigationMenu.md +338 -0
  170. package/docs/docs/api/appkit-ui/ui/Pagination/index.html +69 -0
  171. package/docs/docs/api/appkit-ui/ui/Pagination.md +191 -0
  172. package/docs/docs/api/appkit-ui/ui/Popover/index.html +45 -0
  173. package/docs/docs/api/appkit-ui/ui/Popover.md +173 -0
  174. package/docs/docs/api/appkit-ui/ui/Progress/index.html +27 -0
  175. package/docs/docs/api/appkit-ui/ui/Progress.md +51 -0
  176. package/docs/docs/api/appkit-ui/ui/RadioGroup/index.html +33 -0
  177. package/docs/docs/api/appkit-ui/ui/RadioGroup.md +83 -0
  178. package/docs/docs/api/appkit-ui/ui/ResizableHandle/index.html +41 -0
  179. package/docs/docs/api/appkit-ui/ui/ResizableHandle.md +136 -0
  180. package/docs/docs/api/appkit-ui/ui/ScrollArea/index.html +34 -0
  181. package/docs/docs/api/appkit-ui/ui/ScrollArea.md +83 -0
  182. package/docs/docs/api/appkit-ui/ui/Select/index.html +82 -0
  183. package/docs/docs/api/appkit-ui/ui/Select.md +267 -0
  184. package/docs/docs/api/appkit-ui/ui/Separator/index.html +27 -0
  185. package/docs/docs/api/appkit-ui/ui/Separator.md +56 -0
  186. package/docs/docs/api/appkit-ui/ui/Sheet/index.html +76 -0
  187. package/docs/docs/api/appkit-ui/ui/Sheet.md +236 -0
  188. package/docs/docs/api/appkit-ui/ui/Sidebar/index.html +183 -0
  189. package/docs/docs/api/appkit-ui/ui/Sidebar.md +490 -0
  190. package/docs/docs/api/appkit-ui/ui/Skeleton/index.html +27 -0
  191. package/docs/docs/api/appkit-ui/ui/Skeleton.md +43 -0
  192. package/docs/docs/api/appkit-ui/ui/Slider/index.html +27 -0
  193. package/docs/docs/api/appkit-ui/ui/Slider.md +61 -0
  194. package/docs/docs/api/appkit-ui/ui/Spinner/index.html +24 -0
  195. package/docs/docs/api/appkit-ui/ui/Spinner.md +22 -0
  196. package/docs/docs/api/appkit-ui/ui/Switch/index.html +27 -0
  197. package/docs/docs/api/appkit-ui/ui/Switch.md +46 -0
  198. package/docs/docs/api/appkit-ui/ui/Table/index.html +69 -0
  199. package/docs/docs/api/appkit-ui/ui/Table.md +236 -0
  200. package/docs/docs/api/appkit-ui/ui/Tabs/index.html +48 -0
  201. package/docs/docs/api/appkit-ui/ui/Tabs.md +177 -0
  202. package/docs/docs/api/appkit-ui/ui/Textarea/index.html +27 -0
  203. package/docs/docs/api/appkit-ui/ui/Textarea.md +35 -0
  204. package/docs/docs/api/appkit-ui/ui/Toaster/index.html +27 -0
  205. package/docs/docs/api/appkit-ui/ui/Toaster.md +75 -0
  206. package/docs/docs/api/appkit-ui/ui/Toggle/index.html +27 -0
  207. package/docs/docs/api/appkit-ui/ui/Toggle.md +48 -0
  208. package/docs/docs/api/appkit-ui/ui/ToggleGroup/index.html +33 -0
  209. package/docs/docs/api/appkit-ui/ui/ToggleGroup.md +88 -0
  210. package/docs/docs/api/appkit-ui/ui/Tooltip/index.html +46 -0
  211. package/docs/docs/api/appkit-ui/ui/Tooltip.md +134 -0
  212. package/docs/docs/api/appkit-ui.md +15 -0
  213. package/docs/docs/api/appkit.md +48 -0
  214. package/docs/docs/api/index.html +28 -0
  215. package/docs/docs/api.md +24 -0
  216. package/docs/docs/app-management/index.html +106 -0
  217. package/docs/docs/app-management.md +171 -0
  218. package/docs/docs/architecture/index.html +71 -0
  219. package/docs/docs/architecture.md +69 -0
  220. package/docs/docs/category/development/index.html +16 -0
  221. package/docs/docs/category/development.md +3 -0
  222. package/docs/docs/configuration/index.html +66 -0
  223. package/docs/docs/configuration.md +150 -0
  224. package/docs/docs/core-principles/index.html +38 -0
  225. package/docs/docs/core-principles.md +31 -0
  226. package/docs/docs/development/index.html +34 -0
  227. package/docs/docs/development/llm-guide/index.html +74 -0
  228. package/docs/docs/development/llm-guide.md +74 -0
  229. package/docs/docs/development/local-development/index.html +27 -0
  230. package/docs/docs/development/local-development.md +20 -0
  231. package/docs/docs/development/project-setup/index.html +69 -0
  232. package/docs/docs/development/project-setup.md +246 -0
  233. package/docs/docs/development/remote-bridge/index.html +76 -0
  234. package/docs/docs/development/remote-bridge.md +80 -0
  235. package/docs/docs/development/type-generation/index.html +65 -0
  236. package/docs/docs/development/type-generation.md +110 -0
  237. package/docs/docs/development.md +21 -0
  238. package/docs/docs/index.html +58 -0
  239. package/docs/docs/plugins/index.html +151 -0
  240. package/docs/docs/plugins.md +313 -0
  241. package/docs/docs.md +64 -0
  242. package/llms.txt +121 -1228
  243. package/package.json +11 -11
  244. package/scripts/postinstall.js +1 -1
  245. package/AGENTS.md +0 -1231
  246. package/bin/appkit-lint.js +0 -129
  247. package/bin/generate-types.js +0 -27
  248. package/bin/setup-claude.js +0 -190
@@ -0,0 +1,16 @@
1
+ <!doctype html>
2
+ <html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page" data-has-hydrated="false">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="generator" content="Docusaurus v3.9.2">
6
+ <title data-rh="true">Development | AppKit</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://databricks.github.io/appkit/docs/category/development"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="keywords" content="Databricks Apps, Node.js, React.js, SDK, TypeScript, SQL, Databricks, AI, full-stack, development"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Development | AppKit"><meta data-rh="true" name="description" content="Guides for developing AppKit applications"><meta data-rh="true" property="og:description" content="Guides for developing AppKit applications"><link data-rh="true" rel="icon" href="/appkit/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://databricks.github.io/appkit/docs/category/development"><link data-rh="true" rel="alternate" href="https://databricks.github.io/appkit/docs/category/development" hreflang="en"><link data-rh="true" rel="alternate" href="https://databricks.github.io/appkit/docs/category/development" hreflang="x-default"><script data-rh="true" type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Development","item":"https://databricks.github.io/appkit/docs/category/development"}]}</script><link rel="stylesheet" href="/appkit/assets/css/styles.0ec7398f.css">
7
+ <script src="/appkit/assets/js/runtime~main.a874f05e.js" defer="defer"></script>
8
+ <script src="/appkit/assets/js/main.9d17da5a.js" defer="defer"></script>
9
+ </head>
10
+ <body class="navigation-with-keyboard">
11
+ <svg style="display: none;"><defs>
12
+ <symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
13
+ </defs></svg>
14
+ <script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||(window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light")),document.documentElement.setAttribute("data-theme-choice",t||"system")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"><link rel="preload" as="image" href="/appkit/img/logo.png"><div role="region" aria-label="Skip to main content"><a class="skipToContent_R3I2" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><div class="theme-announcement-bar announcementBar_Upl7" style="background-color:#f0f0f0;color:#000000" role="banner"><div class="announcementBarPlaceholder_Lvio"></div><div class="content_vq0X announcementBarContent_FIMQ">⚠️ AppKit is in an early development phase and is subject to change without notice. <strong>DO NOT</strong> use in production environments.</div><button type="button" aria-label="Close" class="clean-btn close closeButton_J8WU announcementBarClose_jD94"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="theme-layout-navbar navbar navbar--fixed-top"><div class="navbar__inner"><div class="theme-layout-navbar-left navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/appkit/"><div class="navbar__logo"><img src="/appkit/img/logo.png" alt="AppKit" class="themedComponent_hkXO themedComponent--light_BgK8"><img src="/appkit/img/logo.png" alt="AppKit" class="themedComponent_hkXO themedComponent--dark_RKPt"></div><b class="navbar__title text--truncate">AppKit</b></a><a aria-current="page" class="navbar__item navbar__link navbar__link--active" href="/appkit/docs/">Documentation</a><a class="navbar__item navbar__link" href="/appkit/contributing">Contributing</a></div><div class="theme-layout-navbar-right navbar__items navbar__items--right"><a href="https://github.com/databricks/appkit" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">GitHub<svg width="13.5" height="13.5" aria-label="(opens in new tab)" class="iconExternalLink_miaU"><use href="#theme-svg-external-link"></use></svg></a><div class="toggle_eFYw colorModeToggle_EPbi"><button class="clean-btn toggleButton_HRKp toggleButtonDisabled_bICu" type="button" disabled="" title="system mode" aria-label="Switch between dark and light mode (currently system mode)"><svg viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" class="toggleIcon_brDO lightToggleIcon_vxPA"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" class="toggleIcon_brDO darkToggleIcon_PZNO"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" class="toggleIcon_brDO systemToggleIcon_A7x6"><path fill="currentColor" d="m12 21c4.971 0 9-4.029 9-9s-4.029-9-9-9-9 4.029-9 9 4.029 9 9 9zm4.95-13.95c1.313 1.313 2.05 3.093 2.05 4.95s-0.738 3.637-2.05 4.95c-1.313 1.313-3.093 2.05-4.95 2.05v-14c1.857 0 3.637 0.737 4.95 2.05z"></path></svg></button></div><div class="navbarSearchContainer_cVhq"><div class="navbar__search"><span aria-label="expand searchbar" role="button" class="search-icon" tabindex="0"></span><input id="search_input_react" type="search" placeholder="Loading..." aria-label="Search" class="navbar__search-input search-bar" disabled=""></div></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="theme-layout-main main-wrapper mainWrapper__Y_W"><div class="docsWrapper_cIfN"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_xQFv" type="button"></button><div class="docRoot_FHtD"><aside class="theme-doc-sidebar-container docSidebarContainer_dvCd"><div class="sidebarViewport_GeRf"><div class="sidebar_T8N1"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_uyE9 menuWithAnnouncementBar_Bucd"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/appkit/docs/"><span title="Getting started" class="linkLabel_hZzm">Getting started</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/appkit/docs/app-management"><span title="App management" class="linkLabel_hZzm">App management</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/appkit/docs/plugins"><span title="Plugins" class="linkLabel_hZzm">Plugins</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/appkit/docs/architecture"><span title="Architecture" class="linkLabel_hZzm">Architecture</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/appkit/docs/configuration"><span title="Configuration" class="linkLabel_hZzm">Configuration</span></a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible menu__list-item-collapsible--active"><a class="categoryLink_P6CU menu__link menu__link--sublist menu__link--active" aria-current="page" href="/appkit/docs/category/development"><span title="Development" class="categoryLinkLabel_ShmP">Development</span></a><button aria-label="Collapse sidebar category &#x27;Development&#x27;" aria-expanded="true" type="button" class="clean-btn menu__caret"></button></div><ul class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/appkit/docs/development/local-development"><span title="Local development" class="linkLabel_hZzm">Local development</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/appkit/docs/development/"><span title="Development" class="linkLabel_hZzm">Development</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/appkit/docs/development/remote-bridge"><span title="Remote Bridge" class="linkLabel_hZzm">Remote Bridge</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/appkit/docs/development/project-setup"><span title="Project setup" class="linkLabel_hZzm">Project setup</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/appkit/docs/development/type-generation"><span title="Type generation" class="linkLabel_hZzm">Type generation</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/appkit/docs/development/llm-guide"><span title="LLM Guide" class="linkLabel_hZzm">LLM Guide</span></a></li></ul></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/appkit/docs/core-principles"><span title="Core principles" class="linkLabel_hZzm">Core principles</span></a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="categoryLink_P6CU menu__link menu__link--sublist" href="/appkit/docs/api/"><span title="API reference" class="categoryLinkLabel_ShmP">API reference</span></a><button aria-label="Expand sidebar category &#x27;API reference&#x27;" aria-expanded="false" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_P5br"><div class="container padding-top--md padding-bottom--lg"><div class="generatedIndexPage_XI0L"><nav class="theme-doc-breadcrumbs breadcrumbsContainer_bEIa" aria-label="Breadcrumbs"><ul class="breadcrumbs"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/appkit/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_sma7"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link">Development</span></li></ul></nav><header><h1 class="title_JGm5">Development</h1><p>Guides for developing AppKit applications</p></header><article class="margin-top--lg"><section class="row"><article class="docCardListItem_I7il col col--6"><a class="card padding--lg cardContainer_haYF" href="/appkit/docs/development/local-development"><h2 class="text--truncate cardTitle_QwTc" title="Local development">📄️<!-- --> <!-- -->Local development</h2><p class="text--truncate cardDescription_W6_C" title="Once your app is bootstrapped according to the Manual quick start guide, you can start the development server with hot reload for both UI and backend code.">Once your app is bootstrapped according to the Manual quick start guide, you can start the development server with hot reload for both UI and backend code.</p></a></article><article class="docCardListItem_I7il col col--6"><a class="card padding--lg cardContainer_haYF" href="/appkit/docs/development/"><h2 class="text--truncate cardTitle_QwTc" title="Development">📄️<!-- --> <!-- -->Development</h2><p class="text--truncate cardDescription_W6_C" title="AppKit provides multiple development workflows to suit different needs: local development with hot reload, AI-assisted development with MCP, and remote tunneling to deployed backends.">AppKit provides multiple development workflows to suit different needs: local development with hot reload, AI-assisted development with MCP, and remote tunneling to deployed backends.</p></a></article><article class="docCardListItem_I7il col col--6"><a class="card padding--lg cardContainer_haYF" href="/appkit/docs/development/remote-bridge"><h2 class="text--truncate cardTitle_QwTc" title="Remote Bridge">📄️<!-- --> <!-- -->Remote Bridge</h2><p class="text--truncate cardDescription_W6_C" title="Remote bridge allows you to develop against a deployed backend while keeping your UI and queries local. This is useful for testing against production data or debugging deployed backend code without redeploying your app.">Remote bridge allows you to develop against a deployed backend while keeping your UI and queries local. This is useful for testing against production data or debugging deployed backend code without redeploying your app.</p></a></article><article class="docCardListItem_I7il col col--6"><a class="card padding--lg cardContainer_haYF" href="/appkit/docs/development/project-setup"><h2 class="text--truncate cardTitle_QwTc" title="Project setup">📄️<!-- --> <!-- -->Project setup</h2><p class="text--truncate cardDescription_W6_C" title="This guide covers the recommended project structure and scaffolding for AppKit applications.">This guide covers the recommended project structure and scaffolding for AppKit applications.</p></a></article><article class="docCardListItem_I7il col col--6"><a class="card padding--lg cardContainer_haYF" href="/appkit/docs/development/type-generation"><h2 class="text--truncate cardTitle_QwTc" title="Type generation">📄️<!-- --> <!-- -->Type generation</h2><p class="text--truncate cardDescription_W6_C" title="AppKit can automatically generate TypeScript types for your SQL queries, providing end-to-end type safety from database to UI.">AppKit can automatically generate TypeScript types for your SQL queries, providing end-to-end type safety from database to UI.</p></a></article><article class="docCardListItem_I7il col col--6"><a class="card padding--lg cardContainer_haYF" href="/appkit/docs/development/llm-guide"><h2 class="text--truncate cardTitle_QwTc" title="LLM Guide">📄️<!-- --> <!-- -->LLM Guide</h2><p class="text--truncate cardDescription_W6_C" title="This document provides prescriptive guidance for AI coding assistants generating code with Databricks AppKit. It is intentionally opinionated to ensure consistent, production-ready code generation.">This document provides prescriptive guidance for AI coding assistants generating code with Databricks AppKit. It is intentionally opinionated to ensure consistent, production-ready code generation.</p></a></article></section></article><footer class="margin-top--md"><nav class="pagination-nav" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/appkit/docs/configuration"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Configuration</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/appkit/docs/development/local-development"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Local development</div></a></nav></footer></div></div></main></div></div></div><footer class="theme-layout-footer footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="theme-layout-footer-column col footer__col"><div class="footer__title">Docs</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/appkit/docs/">Getting started</a></li><li class="footer__item"><a class="footer__link-item" href="/appkit/docs/api/">API reference</a></li></ul></div><div class="theme-layout-footer-column col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/appkit/contributing">Contributing</a></li><li class="footer__item"><a href="https://github.com/databricks/appkit" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitHub<svg width="13.5" height="13.5" aria-label="(opens in new tab)" class="iconExternalLink_miaU"><use href="#theme-svg-external-link"></use></svg></a></li></ul></div><div class="theme-layout-footer-column col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://docs.databricks.com/aws/en/dev-tools/databricks-apps/" target="_blank" rel="noopener noreferrer" class="footer__link-item">Databricks Apps docs<svg width="13.5" height="13.5" aria-label="(opens in new tab)" class="iconExternalLink_miaU"><use href="#theme-svg-external-link"></use></svg></a></li><li class="footer__item"><a href="https://github.com/databricks/cli" target="_blank" rel="noopener noreferrer" class="footer__link-item">Databricks CLI<svg width="13.5" height="13.5" aria-label="(opens in new tab)" class="iconExternalLink_miaU"><use href="#theme-svg-external-link"></use></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="footer__copyright">Copyright © 2026 Databricks, Inc.</div></div></div></footer></div>
15
+ </body>
16
+ </html>
@@ -0,0 +1,3 @@
1
+ ## [📄️<!-- --> <!-- -->Local development](/appkit/docs/development/local-development.md)
2
+
3
+ [Once your app is bootstrapped according to the Manual quick start guide, you can start the development server with hot reload for both UI and backend code.](/appkit/docs/development/local-development.md)
@@ -0,0 +1,66 @@
1
+ <!doctype html>
2
+ <html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-configuration" data-has-hydrated="false">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="generator" content="Docusaurus v3.9.2">
6
+ <title data-rh="true">Configuration | AppKit</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://databricks.github.io/appkit/docs/configuration"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="keywords" content="Databricks Apps, Node.js, React.js, SDK, TypeScript, SQL, Databricks, AI, full-stack, development"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Configuration | AppKit"><meta data-rh="true" name="description" content="This guide covers environment variables and configuration options for AppKit applications."><meta data-rh="true" property="og:description" content="This guide covers environment variables and configuration options for AppKit applications."><link data-rh="true" rel="icon" href="/appkit/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://databricks.github.io/appkit/docs/configuration"><link data-rh="true" rel="alternate" href="https://databricks.github.io/appkit/docs/configuration" hreflang="en"><link data-rh="true" rel="alternate" href="https://databricks.github.io/appkit/docs/configuration" hreflang="x-default"><script data-rh="true" type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Configuration","item":"https://databricks.github.io/appkit/docs/configuration"}]}</script><link rel="stylesheet" href="/appkit/assets/css/styles.0ec7398f.css">
7
+ <script src="/appkit/assets/js/runtime~main.a874f05e.js" defer="defer"></script>
8
+ <script src="/appkit/assets/js/main.9d17da5a.js" defer="defer"></script>
9
+ </head>
10
+ <body class="navigation-with-keyboard">
11
+ <svg style="display: none;"><defs>
12
+ <symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
13
+ </defs></svg>
14
+ <script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||(window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light")),document.documentElement.setAttribute("data-theme-choice",t||"system")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"><link rel="preload" as="image" href="/appkit/img/logo.png"><div role="region" aria-label="Skip to main content"><a class="skipToContent_R3I2" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><div class="theme-announcement-bar announcementBar_Upl7" style="background-color:#f0f0f0;color:#000000" role="banner"><div class="announcementBarPlaceholder_Lvio"></div><div class="content_vq0X announcementBarContent_FIMQ">⚠️ AppKit is in an early development phase and is subject to change without notice. <strong>DO NOT</strong> use in production environments.</div><button type="button" aria-label="Close" class="clean-btn close closeButton_J8WU announcementBarClose_jD94"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="theme-layout-navbar navbar navbar--fixed-top"><div class="navbar__inner"><div class="theme-layout-navbar-left navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/appkit/"><div class="navbar__logo"><img src="/appkit/img/logo.png" alt="AppKit" class="themedComponent_hkXO themedComponent--light_BgK8"><img src="/appkit/img/logo.png" alt="AppKit" class="themedComponent_hkXO themedComponent--dark_RKPt"></div><b class="navbar__title text--truncate">AppKit</b></a><a aria-current="page" class="navbar__item navbar__link navbar__link--active" href="/appkit/docs/">Documentation</a><a class="navbar__item navbar__link" href="/appkit/contributing">Contributing</a></div><div class="theme-layout-navbar-right navbar__items navbar__items--right"><a href="https://github.com/databricks/appkit" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">GitHub<svg width="13.5" height="13.5" aria-label="(opens in new tab)" class="iconExternalLink_miaU"><use href="#theme-svg-external-link"></use></svg></a><div class="toggle_eFYw colorModeToggle_EPbi"><button class="clean-btn toggleButton_HRKp toggleButtonDisabled_bICu" type="button" disabled="" title="system mode" aria-label="Switch between dark and light mode (currently system mode)"><svg viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" class="toggleIcon_brDO lightToggleIcon_vxPA"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" class="toggleIcon_brDO darkToggleIcon_PZNO"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" class="toggleIcon_brDO systemToggleIcon_A7x6"><path fill="currentColor" d="m12 21c4.971 0 9-4.029 9-9s-4.029-9-9-9-9 4.029-9 9 4.029 9 9 9zm4.95-13.95c1.313 1.313 2.05 3.093 2.05 4.95s-0.738 3.637-2.05 4.95c-1.313 1.313-3.093 2.05-4.95 2.05v-14c1.857 0 3.637 0.737 4.95 2.05z"></path></svg></button></div><div class="navbarSearchContainer_cVhq"><div class="navbar__search"><span aria-label="expand searchbar" role="button" class="search-icon" tabindex="0"></span><input id="search_input_react" type="search" placeholder="Loading..." aria-label="Search" class="navbar__search-input search-bar" disabled=""></div></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="theme-layout-main main-wrapper mainWrapper__Y_W"><div class="docsWrapper_cIfN"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_xQFv" type="button"></button><div class="docRoot_FHtD"><aside class="theme-doc-sidebar-container docSidebarContainer_dvCd"><div class="sidebarViewport_GeRf"><div class="sidebar_T8N1"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_uyE9 menuWithAnnouncementBar_Bucd"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/appkit/docs/"><span title="Getting started" class="linkLabel_hZzm">Getting started</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/appkit/docs/app-management"><span title="App management" class="linkLabel_hZzm">App management</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/appkit/docs/plugins"><span title="Plugins" class="linkLabel_hZzm">Plugins</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/appkit/docs/architecture"><span title="Architecture" class="linkLabel_hZzm">Architecture</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" href="/appkit/docs/configuration"><span title="Configuration" class="linkLabel_hZzm">Configuration</span></a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="categoryLink_P6CU menu__link menu__link--sublist" href="/appkit/docs/category/development"><span title="Development" class="categoryLinkLabel_ShmP">Development</span></a><button aria-label="Collapse sidebar category &#x27;Development&#x27;" aria-expanded="true" type="button" class="clean-btn menu__caret"></button></div><ul class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/appkit/docs/development/local-development"><span title="Local development" class="linkLabel_hZzm">Local development</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/appkit/docs/development/"><span title="Development" class="linkLabel_hZzm">Development</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/appkit/docs/development/remote-bridge"><span title="Remote Bridge" class="linkLabel_hZzm">Remote Bridge</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/appkit/docs/development/project-setup"><span title="Project setup" class="linkLabel_hZzm">Project setup</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/appkit/docs/development/type-generation"><span title="Type generation" class="linkLabel_hZzm">Type generation</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/appkit/docs/development/llm-guide"><span title="LLM Guide" class="linkLabel_hZzm">LLM Guide</span></a></li></ul></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/appkit/docs/core-principles"><span title="Core principles" class="linkLabel_hZzm">Core principles</span></a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="categoryLink_P6CU menu__link menu__link--sublist" href="/appkit/docs/api/"><span title="API reference" class="categoryLinkLabel_ShmP">API reference</span></a><button aria-label="Expand sidebar category &#x27;API reference&#x27;" aria-expanded="false" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_P5br"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_poBZ"><div class="docItemContainer_TdBg"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_bEIa" aria-label="Breadcrumbs"><ul class="breadcrumbs"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/appkit/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_sma7"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link">Configuration</span></li></ul></nav><div class="tocCollapsible_gJxE theme-doc-toc-mobile tocMobile_ZHYV"><button type="button" class="clean-btn tocCollapsibleButton_uxuR">On this page</button></div><div class="theme-doc-markdown markdown"><header><h1>Configuration</h1></header>
15
+ <p>This guide covers environment variables and configuration options for AppKit applications.</p>
16
+ <h2 class="anchor anchorTargetStickyNavbar_scV4" id="app-deployment-configuration">App deployment configuration<a href="#app-deployment-configuration" class="hash-link" aria-label="Direct link to App deployment configuration" title="Direct link to App deployment configuration" translate="no">​</a></h2>
17
+ <h3 class="anchor anchorTargetStickyNavbar_scV4" id="appyaml-file"><code>app.yaml</code> file<a href="#appyaml-file" class="hash-link" aria-label="Direct link to appyaml-file" title="Direct link to appyaml-file" translate="no">​</a></h3>
18
+ <p>The <code>app.yaml</code> file configures your app&#x27;s runtime environment in Databricks Apps.</p>
19
+ <p><strong>Basic example:</strong></p>
20
+ <div class="language-yaml codeBlockContainer_crgn theme-code-block" style="--prism-color:#000000;--prism-background-color:#ffffff"><div class="codeBlockContent__42J"><pre tabindex="0" class="prism-code language-yaml codeBlock_CnLD thin-scrollbar" style="color:#000000;background-color:#ffffff"><code class="codeBlockLines_sJEA"><span class="token-line" style="color:#000000"><span class="token key atrule">command</span><span class="token punctuation" style="color:rgb(4, 81, 165)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#000000"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(4, 81, 165)">-</span><span class="token plain"> node</span><br></span><span class="token-line" style="color:#000000"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(4, 81, 165)">-</span><span class="token plain"> build/index.mjs</span><br></span><span class="token-line" style="color:#000000"><span class="token plain"></span><span class="token key atrule">env</span><span class="token punctuation" style="color:rgb(4, 81, 165)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#000000"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(4, 81, 165)">-</span><span class="token plain"> </span><span class="token key atrule">name</span><span class="token punctuation" style="color:rgb(4, 81, 165)">:</span><span class="token plain"> DATABRICKS_WAREHOUSE_ID</span><br></span><span class="token-line" style="color:#000000"><span class="token plain"> </span><span class="token key atrule">valueFrom</span><span class="token punctuation" style="color:rgb(4, 81, 165)">:</span><span class="token plain"> sql</span><span class="token punctuation" style="color:rgb(4, 81, 165)">-</span><span class="token plain">warehouse</span><br></span></code></pre></div></div>
21
+ <h3 class="anchor anchorTargetStickyNavbar_scV4" id="command-specification">Command specification<a href="#command-specification" class="hash-link" aria-label="Direct link to Command specification" title="Direct link to Command specification" translate="no">​</a></h3>
22
+ <p>Specify how to start your app in the <code>command</code> field:</p>
23
+ <div class="language-yaml codeBlockContainer_crgn theme-code-block" style="--prism-color:#000000;--prism-background-color:#ffffff"><div class="codeBlockContent__42J"><pre tabindex="0" class="prism-code language-yaml codeBlock_CnLD thin-scrollbar" style="color:#000000;background-color:#ffffff"><code class="codeBlockLines_sJEA"><span class="token-line" style="color:#000000"><span class="token key atrule">command</span><span class="token punctuation" style="color:rgb(4, 81, 165)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#000000"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(4, 81, 165)">-</span><span class="token plain"> node</span><br></span><span class="token-line" style="color:#000000"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(4, 81, 165)">-</span><span class="token plain"> build/index.mjs</span><br></span></code></pre></div></div>
24
+ <p>This runs the production build of your AppKit server (created by <code>npm run build</code>).</p>
25
+ <h3 class="anchor anchorTargetStickyNavbar_scV4" id="binding-a-sql-warehouse">Binding a SQL warehouse<a href="#binding-a-sql-warehouse" class="hash-link" aria-label="Direct link to Binding a SQL warehouse" title="Direct link to Binding a SQL warehouse" translate="no">​</a></h3>
26
+ <p>To use the analytics plugin, bind a SQL warehouse in your <code>app.yaml</code>:</p>
27
+ <div class="language-yaml codeBlockContainer_crgn theme-code-block" style="--prism-color:#000000;--prism-background-color:#ffffff"><div class="codeBlockContent__42J"><pre tabindex="0" class="prism-code language-yaml codeBlock_CnLD thin-scrollbar" style="color:#000000;background-color:#ffffff"><code class="codeBlockLines_sJEA"><span class="token-line" style="color:#000000"><span class="token key atrule">env</span><span class="token punctuation" style="color:rgb(4, 81, 165)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#000000"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(4, 81, 165)">-</span><span class="token plain"> </span><span class="token key atrule">name</span><span class="token punctuation" style="color:rgb(4, 81, 165)">:</span><span class="token plain"> DATABRICKS_WAREHOUSE_ID</span><br></span><span class="token-line" style="color:#000000"><span class="token plain"> </span><span class="token key atrule">valueFrom</span><span class="token punctuation" style="color:rgb(4, 81, 165)">:</span><span class="token plain"> sql</span><span class="token punctuation" style="color:rgb(4, 81, 165)">-</span><span class="token plain">warehouse</span><br></span></code></pre></div></div>
28
+ <p>This makes the warehouse ID available to your app at runtime. The <code>valueFrom: sql-warehouse</code> directive tells Databricks Apps to inject the configured warehouse ID.</p>
29
+ <p>For advanced configuration options (authorization, networking, resource limits), see the <a href="https://docs.databricks.com/aws/en/dev-tools/databricks-apps/configuration" target="_blank" rel="noopener noreferrer" class="">Databricks Apps Configuration</a> documentation.</p>
30
+ <h2 class="anchor anchorTargetStickyNavbar_scV4" id="environment-variables">Environment variables<a href="#environment-variables" class="hash-link" aria-label="Direct link to Environment variables" title="Direct link to Environment variables" translate="no">​</a></h2>
31
+ <h3 class="anchor anchorTargetStickyNavbar_scV4" id="required-for-databricks-apps-deployment">Required for Databricks Apps deployment<a href="#required-for-databricks-apps-deployment" class="hash-link" aria-label="Direct link to Required for Databricks Apps deployment" title="Direct link to Required for Databricks Apps deployment" translate="no">​</a></h3>
32
+ <p>These are typically <strong>provided by Databricks Apps runtime</strong> (exact set can vary by platform/version):</p>
33
+ <table><thead><tr><th>Variable</th><th>Description</th></tr></thead><tbody><tr><td><code>DATABRICKS_HOST</code></td><td>Workspace URL (e.g. <code>https://xxx.cloud.databricks.com</code>)</td></tr><tr><td><code>DATABRICKS_APP_PORT</code></td><td>Port to bind (default: <code>8000</code>)</td></tr><tr><td><code>DATABRICKS_APP_NAME</code></td><td>App name in Databricks</td></tr></tbody></table>
34
+ <h3 class="anchor anchorTargetStickyNavbar_scV4" id="required-for-sql-queries-analytics-plugin">Required for SQL queries (analytics plugin)<a href="#required-for-sql-queries-analytics-plugin" class="hash-link" aria-label="Direct link to Required for SQL queries (analytics plugin)" title="Direct link to Required for SQL queries (analytics plugin)" translate="no">​</a></h3>
35
+ <table><thead><tr><th>Variable</th><th>Description</th><th>How to Set</th></tr></thead><tbody><tr><td><code>DATABRICKS_WAREHOUSE_ID</code></td><td>SQL warehouse ID</td><td>In <code>app.yaml</code>: <code>valueFrom: sql-warehouse</code></td></tr></tbody></table>
36
+ <p>See the <a href="#app-deployment-configuration" class="">App deployment configuration</a> section above for details on how to bind this variable.</p>
37
+ <h3 class="anchor anchorTargetStickyNavbar_scV4" id="optional-variables">Optional variables<a href="#optional-variables" class="hash-link" aria-label="Direct link to Optional variables" title="Direct link to Optional variables" translate="no">​</a></h3>
38
+ <table><thead><tr><th>Variable</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>DATABRICKS_WORKSPACE_ID</code></td><td>Workspace ID</td><td>Auto-fetched from API</td></tr><tr><td><code>NODE_ENV</code></td><td><code>&quot;development&quot;</code> or <code>&quot;production&quot;</code></td><td>—</td></tr><tr><td><code>FLASK_RUN_HOST</code></td><td>Host to bind</td><td><code>0.0.0.0</code></td></tr></tbody></table>
39
+ <h3 class="anchor anchorTargetStickyNavbar_scV4" id="telemetry-optional">Telemetry (optional)<a href="#telemetry-optional" class="hash-link" aria-label="Direct link to Telemetry (optional)" title="Direct link to Telemetry (optional)" translate="no">​</a></h3>
40
+ <table><thead><tr><th>Variable</th><th>Description</th></tr></thead><tbody><tr><td><code>OTEL_EXPORTER_OTLP_ENDPOINT</code></td><td>OpenTelemetry collector endpoint</td></tr><tr><td><code>OTEL_SERVICE_NAME</code></td><td>Service name for traces</td></tr></tbody></table>
41
+ <h2 class="anchor anchorTargetStickyNavbar_scV4" id="local-development-authentication">Local development authentication<a href="#local-development-authentication" class="hash-link" aria-label="Direct link to Local development authentication" title="Direct link to Local development authentication" translate="no">​</a></h2>
42
+ <p>For local development, you need to authenticate with Databricks. Choose one of the following options:</p>
43
+ <h3 class="anchor anchorTargetStickyNavbar_scV4" id="option-1-databricks-cli-authentication-recommended">Option 1: Databricks CLI authentication (recommended)<a href="#option-1-databricks-cli-authentication-recommended" class="hash-link" aria-label="Direct link to Option 1: Databricks CLI authentication (recommended)" title="Direct link to Option 1: Databricks CLI authentication (recommended)" translate="no">​</a></h3>
44
+ <p>Configure authentication once using the Databricks CLI:</p>
45
+ <div class="language-bash codeBlockContainer_crgn theme-code-block" style="--prism-color:#000000;--prism-background-color:#ffffff"><div class="codeBlockContent__42J"><pre tabindex="0" class="prism-code language-bash codeBlock_CnLD thin-scrollbar" style="color:#000000;background-color:#ffffff"><code class="codeBlockLines_sJEA"><span class="token-line" style="color:#000000"><span class="token plain">databricks auth login --host [host] --profile [profile-name]</span><br></span></code></pre></div></div>
46
+ <p>If you use <code>DEFAULT</code> as the profile name, you can run your dev server directly:</p>
47
+ <div class="language-bash codeBlockContainer_crgn theme-code-block" style="--prism-color:#000000;--prism-background-color:#ffffff"><div class="codeBlockContent__42J"><pre tabindex="0" class="prism-code language-bash codeBlock_CnLD thin-scrollbar" style="color:#000000;background-color:#ffffff"><code class="codeBlockLines_sJEA"><span class="token-line" style="color:#000000"><span class="token plain">npm run dev</span><br></span></code></pre></div></div>
48
+ <p>To run with a specific profile, set the <code>DATABRICKS_CONFIG_PROFILE</code> environment variable:</p>
49
+ <div class="language-bash codeBlockContainer_crgn theme-code-block" style="--prism-color:#000000;--prism-background-color:#ffffff"><div class="codeBlockContent__42J"><pre tabindex="0" class="prism-code language-bash codeBlock_CnLD thin-scrollbar" style="color:#000000;background-color:#ffffff"><code class="codeBlockLines_sJEA"><span class="token-line" style="color:#000000"><span class="token plain">DATABRICKS_CONFIG_PROFILE=my-profile npm run dev</span><br></span></code></pre></div></div>
50
+ <p>Note: Some Databricks SDK versions use <code>DATABRICKS_PROFILE</code> instead of <code>DATABRICKS_CONFIG_PROFILE</code>.</p>
51
+ <h3 class="anchor anchorTargetStickyNavbar_scV4" id="option-2-environment-variables">Option 2: Environment variables<a href="#option-2-environment-variables" class="hash-link" aria-label="Direct link to Option 2: Environment variables" title="Direct link to Option 2: Environment variables" translate="no">​</a></h3>
52
+ <div class="language-bash codeBlockContainer_crgn theme-code-block" style="--prism-color:#000000;--prism-background-color:#ffffff"><div class="codeBlockContent__42J"><pre tabindex="0" class="prism-code language-bash codeBlock_CnLD thin-scrollbar" style="color:#000000;background-color:#ffffff"><code class="codeBlockLines_sJEA"><span class="token-line" style="color:#000000"><span class="token plain">export DATABRICKS_HOST=&quot;https://xxx.cloud.databricks.com&quot;</span><br></span><span class="token-line" style="color:#000000"><span class="token plain">export DATABRICKS_TOKEN=&quot;dapi...&quot;</span><br></span><span class="token-line" style="color:#000000"><span class="token plain">export DATABRICKS_WAREHOUSE_ID=&quot;abc123...&quot;</span><br></span><span class="token-line" style="color:#000000"><span class="token plain">npm run dev</span><br></span></code></pre></div></div>
53
+ <h3 class="anchor anchorTargetStickyNavbar_scV4" id="option-3-env-file-auto-loaded-by-appkit">Option 3: <code>.env</code> file (auto-loaded by AppKit)<a href="#option-3-env-file-auto-loaded-by-appkit" class="hash-link" aria-label="Direct link to option-3-env-file-auto-loaded-by-appkit" title="Direct link to option-3-env-file-auto-loaded-by-appkit" translate="no">​</a></h3>
54
+ <p>Create a <code>.env</code> file in your project root (add to <code>.gitignore</code>!):</p>
55
+ <div class="language-bash codeBlockContainer_crgn theme-code-block" style="--prism-color:#000000;--prism-background-color:#ffffff"><div class="codeBlockContent__42J"><pre tabindex="0" class="prism-code language-bash codeBlock_CnLD thin-scrollbar" style="color:#000000;background-color:#ffffff"><code class="codeBlockLines_sJEA"><span class="token-line" style="color:#000000"><span class="token plain">DATABRICKS_HOST=https://xxx.cloud.databricks.com</span><br></span><span class="token-line" style="color:#000000"><span class="token plain">DATABRICKS_TOKEN=dapi...</span><br></span><span class="token-line" style="color:#000000"><span class="token plain">DATABRICKS_WAREHOUSE_ID=abc123...</span><br></span></code></pre></div></div>
56
+ <p>Then run:</p>
57
+ <div class="language-bash codeBlockContainer_crgn theme-code-block" style="--prism-color:#000000;--prism-background-color:#ffffff"><div class="codeBlockContent__42J"><pre tabindex="0" class="prism-code language-bash codeBlock_CnLD thin-scrollbar" style="color:#000000;background-color:#ffffff"><code class="codeBlockLines_sJEA"><span class="token-line" style="color:#000000"><span class="token plain">npm run dev</span><br></span></code></pre></div></div>
58
+ <h2 class="anchor anchorTargetStickyNavbar_scV4" id="advanced-configuration">Advanced configuration<a href="#advanced-configuration" class="hash-link" aria-label="Direct link to Advanced configuration" title="Direct link to Advanced configuration" translate="no">​</a></h2>
59
+ <p>For advanced Databricks Apps configuration (authorization, networking, resource limits), refer to the <a href="https://docs.databricks.com/aws/en/dev-tools/databricks-apps/configuration" target="_blank" rel="noopener noreferrer" class="">Databricks Apps Configuration</a> documentation.</p>
60
+ <h2 class="anchor anchorTargetStickyNavbar_scV4" id="see-also">See also<a href="#see-also" class="hash-link" aria-label="Direct link to See also" title="Direct link to See also" translate="no">​</a></h2>
61
+ <ul>
62
+ <li class=""><a class="" href="/appkit/docs/app-management">App management</a> - Deploying and managing apps</li>
63
+ <li class=""><a class="" href="/appkit/docs/plugins">Plugins</a> - Plugin configuration options</li>
64
+ </ul></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col noPrint_Z6Q_"><a href="https://github.com/databricks/appkit/edit/main/docs/docs/configuration.mdx" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_kMm5" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Edit this page</a></div><div class="col lastUpdated_mnLK"></div></div></footer></article><nav class="docusaurus-mt-lg pagination-nav" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/appkit/docs/architecture"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Architecture</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/appkit/docs/category/development"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Development</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_xfIk thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#app-deployment-configuration" class="table-of-contents__link toc-highlight">App deployment configuration</a><ul><li><a href="#appyaml-file" class="table-of-contents__link toc-highlight"><code>app.yaml</code> file</a></li><li><a href="#command-specification" class="table-of-contents__link toc-highlight">Command specification</a></li><li><a href="#binding-a-sql-warehouse" class="table-of-contents__link toc-highlight">Binding a SQL warehouse</a></li></ul></li><li><a href="#environment-variables" class="table-of-contents__link toc-highlight">Environment variables</a><ul><li><a href="#required-for-databricks-apps-deployment" class="table-of-contents__link toc-highlight">Required for Databricks Apps deployment</a></li><li><a href="#required-for-sql-queries-analytics-plugin" class="table-of-contents__link toc-highlight">Required for SQL queries (analytics plugin)</a></li><li><a href="#optional-variables" class="table-of-contents__link toc-highlight">Optional variables</a></li><li><a href="#telemetry-optional" class="table-of-contents__link toc-highlight">Telemetry (optional)</a></li></ul></li><li><a href="#local-development-authentication" class="table-of-contents__link toc-highlight">Local development authentication</a><ul><li><a href="#option-1-databricks-cli-authentication-recommended" class="table-of-contents__link toc-highlight">Option 1: Databricks CLI authentication (recommended)</a></li><li><a href="#option-2-environment-variables" class="table-of-contents__link toc-highlight">Option 2: Environment variables</a></li><li><a href="#option-3-env-file-auto-loaded-by-appkit" class="table-of-contents__link toc-highlight">Option 3: <code>.env</code> file (auto-loaded by AppKit)</a></li></ul></li><li><a href="#advanced-configuration" class="table-of-contents__link toc-highlight">Advanced configuration</a></li><li><a href="#see-also" class="table-of-contents__link toc-highlight">See also</a></li></ul></div></div></div></div></main></div></div></div><footer class="theme-layout-footer footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="theme-layout-footer-column col footer__col"><div class="footer__title">Docs</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/appkit/docs/">Getting started</a></li><li class="footer__item"><a class="footer__link-item" href="/appkit/docs/api/">API reference</a></li></ul></div><div class="theme-layout-footer-column col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/appkit/contributing">Contributing</a></li><li class="footer__item"><a href="https://github.com/databricks/appkit" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitHub<svg width="13.5" height="13.5" aria-label="(opens in new tab)" class="iconExternalLink_miaU"><use href="#theme-svg-external-link"></use></svg></a></li></ul></div><div class="theme-layout-footer-column col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://docs.databricks.com/aws/en/dev-tools/databricks-apps/" target="_blank" rel="noopener noreferrer" class="footer__link-item">Databricks Apps docs<svg width="13.5" height="13.5" aria-label="(opens in new tab)" class="iconExternalLink_miaU"><use href="#theme-svg-external-link"></use></svg></a></li><li class="footer__item"><a href="https://github.com/databricks/cli" target="_blank" rel="noopener noreferrer" class="footer__link-item">Databricks CLI<svg width="13.5" height="13.5" aria-label="(opens in new tab)" class="iconExternalLink_miaU"><use href="#theme-svg-external-link"></use></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="footer__copyright">Copyright © 2026 Databricks, Inc.</div></div></div></footer></div>
65
+ </body>
66
+ </html>
@@ -0,0 +1,150 @@
1
+ # Configuration
2
+
3
+ This guide covers environment variables and configuration options for AppKit applications.
4
+
5
+ ## App deployment configuration[​](#app-deployment-configuration "Direct link to App deployment configuration")
6
+
7
+ ### `app.yaml` file[​](#appyaml-file "Direct link to appyaml-file")
8
+
9
+ The `app.yaml` file configures your app's runtime environment in Databricks Apps.
10
+
11
+ **Basic example:**
12
+
13
+ ```yaml
14
+ command:
15
+ - node
16
+ - build/index.mjs
17
+ env:
18
+ - name: DATABRICKS_WAREHOUSE_ID
19
+ valueFrom: sql-warehouse
20
+
21
+ ```
22
+
23
+ ### Command specification[​](#command-specification "Direct link to Command specification")
24
+
25
+ Specify how to start your app in the `command` field:
26
+
27
+ ```yaml
28
+ command:
29
+ - node
30
+ - build/index.mjs
31
+
32
+ ```
33
+
34
+ This runs the production build of your AppKit server (created by `npm run build`).
35
+
36
+ ### Binding a SQL warehouse[​](#binding-a-sql-warehouse "Direct link to Binding a SQL warehouse")
37
+
38
+ To use the analytics plugin, bind a SQL warehouse in your `app.yaml`:
39
+
40
+ ```yaml
41
+ env:
42
+ - name: DATABRICKS_WAREHOUSE_ID
43
+ valueFrom: sql-warehouse
44
+
45
+ ```
46
+
47
+ This makes the warehouse ID available to your app at runtime. The `valueFrom: sql-warehouse` directive tells Databricks Apps to inject the configured warehouse ID.
48
+
49
+ For advanced configuration options (authorization, networking, resource limits), see the [Databricks Apps Configuration](https://docs.databricks.com/aws/en/dev-tools/databricks-apps/configuration) documentation.
50
+
51
+ ## Environment variables[​](#environment-variables "Direct link to Environment variables")
52
+
53
+ ### Required for Databricks Apps deployment[​](#required-for-databricks-apps-deployment "Direct link to Required for Databricks Apps deployment")
54
+
55
+ These are typically **provided by Databricks Apps runtime** (exact set can vary by platform/version):
56
+
57
+ | Variable | Description |
58
+ | --------------------- | ------------------------------------------------------- |
59
+ | `DATABRICKS_HOST` | Workspace URL (e.g. `https://xxx.cloud.databricks.com`) |
60
+ | `DATABRICKS_APP_PORT` | Port to bind (default: `8000`) |
61
+ | `DATABRICKS_APP_NAME` | App name in Databricks |
62
+
63
+ ### Required for SQL queries (analytics plugin)[​](#required-for-sql-queries-analytics-plugin "Direct link to Required for SQL queries (analytics plugin)")
64
+
65
+ | Variable | Description | How to Set |
66
+ | ------------------------- | ---------------- | ----------------------------------------- |
67
+ | `DATABRICKS_WAREHOUSE_ID` | SQL warehouse ID | In `app.yaml`: `valueFrom: sql-warehouse` |
68
+
69
+ See the [App deployment configuration](#app-deployment-configuration) section above for details on how to bind this variable.
70
+
71
+ ### Optional variables[​](#optional-variables "Direct link to Optional variables")
72
+
73
+ | Variable | Description | Default |
74
+ | ------------------------- | --------------------------------- | --------------------- |
75
+ | `DATABRICKS_WORKSPACE_ID` | Workspace ID | Auto-fetched from API |
76
+ | `NODE_ENV` | `"development"` or `"production"` | — |
77
+ | `FLASK_RUN_HOST` | Host to bind | `0.0.0.0` |
78
+
79
+ ### Telemetry (optional)[​](#telemetry-optional "Direct link to Telemetry (optional)")
80
+
81
+ | Variable | Description |
82
+ | ----------------------------- | -------------------------------- |
83
+ | `OTEL_EXPORTER_OTLP_ENDPOINT` | OpenTelemetry collector endpoint |
84
+ | `OTEL_SERVICE_NAME` | Service name for traces |
85
+
86
+ ## Local development authentication[​](#local-development-authentication "Direct link to Local development authentication")
87
+
88
+ For local development, you need to authenticate with Databricks. Choose one of the following options:
89
+
90
+ ### Option 1: Databricks CLI authentication (recommended)[​](#option-1-databricks-cli-authentication-recommended "Direct link to Option 1: Databricks CLI authentication (recommended)")
91
+
92
+ Configure authentication once using the Databricks CLI:
93
+
94
+ ```bash
95
+ databricks auth login --host [host] --profile [profile-name]
96
+
97
+ ```
98
+
99
+ If you use `DEFAULT` as the profile name, you can run your dev server directly:
100
+
101
+ ```bash
102
+ npm run dev
103
+
104
+ ```
105
+
106
+ To run with a specific profile, set the `DATABRICKS_CONFIG_PROFILE` environment variable:
107
+
108
+ ```bash
109
+ DATABRICKS_CONFIG_PROFILE=my-profile npm run dev
110
+
111
+ ```
112
+
113
+ Note: Some Databricks SDK versions use `DATABRICKS_PROFILE` instead of `DATABRICKS_CONFIG_PROFILE`.
114
+
115
+ ### Option 2: Environment variables[​](#option-2-environment-variables "Direct link to Option 2: Environment variables")
116
+
117
+ ```bash
118
+ export DATABRICKS_HOST="https://xxx.cloud.databricks.com"
119
+ export DATABRICKS_TOKEN="dapi..."
120
+ export DATABRICKS_WAREHOUSE_ID="abc123..."
121
+ npm run dev
122
+
123
+ ```
124
+
125
+ ### Option 3: `.env` file (auto-loaded by AppKit)[​](#option-3-env-file-auto-loaded-by-appkit "Direct link to option-3-env-file-auto-loaded-by-appkit")
126
+
127
+ Create a `.env` file in your project root (add to `.gitignore`!):
128
+
129
+ ```bash
130
+ DATABRICKS_HOST=https://xxx.cloud.databricks.com
131
+ DATABRICKS_TOKEN=dapi...
132
+ DATABRICKS_WAREHOUSE_ID=abc123...
133
+
134
+ ```
135
+
136
+ Then run:
137
+
138
+ ```bash
139
+ npm run dev
140
+
141
+ ```
142
+
143
+ ## Advanced configuration[​](#advanced-configuration "Direct link to Advanced configuration")
144
+
145
+ For advanced Databricks Apps configuration (authorization, networking, resource limits), refer to the [Databricks Apps Configuration](https://docs.databricks.com/aws/en/dev-tools/databricks-apps/configuration) documentation.
146
+
147
+ ## See also[​](#see-also "Direct link to See also")
148
+
149
+ * [App management](/appkit/docs/app-management.md) - Deploying and managing apps
150
+ * [Plugins](/appkit/docs/plugins.md) - Plugin configuration options
@@ -0,0 +1,38 @@
1
+ <!doctype html>
2
+ <html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-core-principles" data-has-hydrated="false">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="generator" content="Docusaurus v3.9.2">
6
+ <title data-rh="true">Core principles | AppKit</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://databricks.github.io/appkit/docs/core-principles"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="keywords" content="Databricks Apps, Node.js, React.js, SDK, TypeScript, SQL, Databricks, AI, full-stack, development"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Core principles | AppKit"><meta data-rh="true" name="description" content="Learn about the fundamental concepts and principles behind AppKit."><meta data-rh="true" property="og:description" content="Learn about the fundamental concepts and principles behind AppKit."><link data-rh="true" rel="icon" href="/appkit/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://databricks.github.io/appkit/docs/core-principles"><link data-rh="true" rel="alternate" href="https://databricks.github.io/appkit/docs/core-principles" hreflang="en"><link data-rh="true" rel="alternate" href="https://databricks.github.io/appkit/docs/core-principles" hreflang="x-default"><script data-rh="true" type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Core principles","item":"https://databricks.github.io/appkit/docs/core-principles"}]}</script><link rel="stylesheet" href="/appkit/assets/css/styles.0ec7398f.css">
7
+ <script src="/appkit/assets/js/runtime~main.a874f05e.js" defer="defer"></script>
8
+ <script src="/appkit/assets/js/main.9d17da5a.js" defer="defer"></script>
9
+ </head>
10
+ <body class="navigation-with-keyboard">
11
+ <svg style="display: none;"><defs>
12
+ <symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
13
+ </defs></svg>
14
+ <script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||(window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light")),document.documentElement.setAttribute("data-theme-choice",t||"system")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"><link rel="preload" as="image" href="/appkit/img/logo.png"><div role="region" aria-label="Skip to main content"><a class="skipToContent_R3I2" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><div class="theme-announcement-bar announcementBar_Upl7" style="background-color:#f0f0f0;color:#000000" role="banner"><div class="announcementBarPlaceholder_Lvio"></div><div class="content_vq0X announcementBarContent_FIMQ">⚠️ AppKit is in an early development phase and is subject to change without notice. <strong>DO NOT</strong> use in production environments.</div><button type="button" aria-label="Close" class="clean-btn close closeButton_J8WU announcementBarClose_jD94"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="theme-layout-navbar navbar navbar--fixed-top"><div class="navbar__inner"><div class="theme-layout-navbar-left navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/appkit/"><div class="navbar__logo"><img src="/appkit/img/logo.png" alt="AppKit" class="themedComponent_hkXO themedComponent--light_BgK8"><img src="/appkit/img/logo.png" alt="AppKit" class="themedComponent_hkXO themedComponent--dark_RKPt"></div><b class="navbar__title text--truncate">AppKit</b></a><a aria-current="page" class="navbar__item navbar__link navbar__link--active" href="/appkit/docs/">Documentation</a><a class="navbar__item navbar__link" href="/appkit/contributing">Contributing</a></div><div class="theme-layout-navbar-right navbar__items navbar__items--right"><a href="https://github.com/databricks/appkit" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">GitHub<svg width="13.5" height="13.5" aria-label="(opens in new tab)" class="iconExternalLink_miaU"><use href="#theme-svg-external-link"></use></svg></a><div class="toggle_eFYw colorModeToggle_EPbi"><button class="clean-btn toggleButton_HRKp toggleButtonDisabled_bICu" type="button" disabled="" title="system mode" aria-label="Switch between dark and light mode (currently system mode)"><svg viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" class="toggleIcon_brDO lightToggleIcon_vxPA"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" class="toggleIcon_brDO darkToggleIcon_PZNO"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" class="toggleIcon_brDO systemToggleIcon_A7x6"><path fill="currentColor" d="m12 21c4.971 0 9-4.029 9-9s-4.029-9-9-9-9 4.029-9 9 4.029 9 9 9zm4.95-13.95c1.313 1.313 2.05 3.093 2.05 4.95s-0.738 3.637-2.05 4.95c-1.313 1.313-3.093 2.05-4.95 2.05v-14c1.857 0 3.637 0.737 4.95 2.05z"></path></svg></button></div><div class="navbarSearchContainer_cVhq"><div class="navbar__search"><span aria-label="expand searchbar" role="button" class="search-icon" tabindex="0"></span><input id="search_input_react" type="search" placeholder="Loading..." aria-label="Search" class="navbar__search-input search-bar" disabled=""></div></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="theme-layout-main main-wrapper mainWrapper__Y_W"><div class="docsWrapper_cIfN"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_xQFv" type="button"></button><div class="docRoot_FHtD"><aside class="theme-doc-sidebar-container docSidebarContainer_dvCd"><div class="sidebarViewport_GeRf"><div class="sidebar_T8N1"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_uyE9 menuWithAnnouncementBar_Bucd"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/appkit/docs/"><span title="Getting started" class="linkLabel_hZzm">Getting started</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/appkit/docs/app-management"><span title="App management" class="linkLabel_hZzm">App management</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/appkit/docs/plugins"><span title="Plugins" class="linkLabel_hZzm">Plugins</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/appkit/docs/architecture"><span title="Architecture" class="linkLabel_hZzm">Architecture</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/appkit/docs/configuration"><span title="Configuration" class="linkLabel_hZzm">Configuration</span></a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="categoryLink_P6CU menu__link menu__link--sublist" href="/appkit/docs/category/development"><span title="Development" class="categoryLinkLabel_ShmP">Development</span></a><button aria-label="Collapse sidebar category &#x27;Development&#x27;" aria-expanded="true" type="button" class="clean-btn menu__caret"></button></div><ul class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/appkit/docs/development/local-development"><span title="Local development" class="linkLabel_hZzm">Local development</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/appkit/docs/development/"><span title="Development" class="linkLabel_hZzm">Development</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/appkit/docs/development/remote-bridge"><span title="Remote Bridge" class="linkLabel_hZzm">Remote Bridge</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/appkit/docs/development/project-setup"><span title="Project setup" class="linkLabel_hZzm">Project setup</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/appkit/docs/development/type-generation"><span title="Type generation" class="linkLabel_hZzm">Type generation</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/appkit/docs/development/llm-guide"><span title="LLM Guide" class="linkLabel_hZzm">LLM Guide</span></a></li></ul></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" href="/appkit/docs/core-principles"><span title="Core principles" class="linkLabel_hZzm">Core principles</span></a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="categoryLink_P6CU menu__link menu__link--sublist" href="/appkit/docs/api/"><span title="API reference" class="categoryLinkLabel_ShmP">API reference</span></a><button aria-label="Expand sidebar category &#x27;API reference&#x27;" aria-expanded="false" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_P5br"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_poBZ"><div class="docItemContainer_TdBg"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_bEIa" aria-label="Breadcrumbs"><ul class="breadcrumbs"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/appkit/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_sma7"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link">Core principles</span></li></ul></nav><div class="tocCollapsible_gJxE theme-doc-toc-mobile tocMobile_ZHYV"><button type="button" class="clean-btn tocCollapsibleButton_uxuR">On this page</button></div><div class="theme-doc-markdown markdown"><header><h1>Core principles</h1></header>
15
+ <p>Learn about the fundamental concepts and principles behind AppKit.</p>
16
+ <h2 class="anchor anchorTargetStickyNavbar_scV4" id="1-highly-opinionated">1. Highly opinionated<a href="#1-highly-opinionated" class="hash-link" aria-label="Direct link to 1. Highly opinionated" title="Direct link to 1. Highly opinionated" translate="no">​</a></h2>
17
+ <p>AppKit must provide a clear path with best practices for building Databricks
18
+ applications. We provide strong defaults, with advanced customization when needed.</p>
19
+ <h2 class="anchor anchorTargetStickyNavbar_scV4" id="2-built-for-application-use-cases">2. Built for application use cases<a href="#2-built-for-application-use-cases" class="hash-link" aria-label="Direct link to 2. Built for application use cases" title="Direct link to 2. Built for application use cases" translate="no">​</a></h2>
20
+ <p>This SDK is for application development, not infrastructure management.
21
+ Databricks&#x27; internal implementation details must be abstracted. We&#x27;re building an
22
+ application SDK, not a service wrapper.</p>
23
+ <h2 class="anchor anchorTargetStickyNavbar_scV4" id="3-delightful-developer-experience">3. Delightful developer experience<a href="#3-delightful-developer-experience" class="hash-link" aria-label="Direct link to 3. Delightful developer experience" title="Direct link to 3. Delightful developer experience" translate="no">​</a></h2>
24
+ <p>Every interface, doc, example, tool, and implementation must provide developer joy. Combined with the Highly Opinionated principle, this creates a true plug-and-play experience.</p>
25
+ <h2 class="anchor anchorTargetStickyNavbar_scV4" id="4-zero-trust-security">4. Zero-trust security<a href="#4-zero-trust-security" class="hash-link" aria-label="Direct link to 4. Zero-trust security" title="Direct link to 4. Zero-trust security" translate="no">​</a></h2>
26
+ <p>Minimize exposed surface area, fail safely by default, and validate all inputs.
27
+ AppKit must always have a zero-trust mindset.</p>
28
+ <h2 class="anchor anchorTargetStickyNavbar_scV4" id="5-optimized-for-humans-and-ai">5. Optimized for humans and AI<a href="#5-optimized-for-humans-and-ai" class="hash-link" aria-label="Direct link to 5. Optimized for humans and AI" title="Direct link to 5. Optimized for humans and AI" translate="no">​</a></h2>
29
+ <p>Developers and LLMs both use this SDK. Every API must be discoverable,
30
+ self-documenting, and inferable by both types of users. Test with both.</p>
31
+ <h2 class="anchor anchorTargetStickyNavbar_scV4" id="6-production-ready-from-day-one">6. Production-ready from day one<a href="#6-production-ready-from-day-one" class="hash-link" aria-label="Direct link to 6. Production-ready from day one" title="Direct link to 6. Production-ready from day one" translate="no">​</a></h2>
32
+ <p>Even the smallest feature can be used by enterprise users, so everything
33
+ shipped must be production-ready. Observability, reliability, and scalability
34
+ since day one.</p>
35
+ <h2 class="anchor anchorTargetStickyNavbar_scV4" id="7-layered-extensibility">7. Layered extensibility<a href="#7-layered-extensibility" class="hash-link" aria-label="Direct link to 7. Layered extensibility" title="Direct link to 7. Layered extensibility" translate="no">​</a></h2>
36
+ <p>AppKit provides high-level plugins, low-level primitives, and extension points for custom plugins. It integrates into any application architecture and never blocks your path forward.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col noPrint_Z6Q_"><a href="https://github.com/databricks/appkit/edit/main/docs/docs/core-principles.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_kMm5" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Edit this page</a></div><div class="col lastUpdated_mnLK"></div></div></footer></article><nav class="docusaurus-mt-lg pagination-nav" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/appkit/docs/development/llm-guide"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">LLM Guide</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/appkit/docs/api/"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">API reference</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_xfIk thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#1-highly-opinionated" class="table-of-contents__link toc-highlight">1. Highly opinionated</a></li><li><a href="#2-built-for-application-use-cases" class="table-of-contents__link toc-highlight">2. Built for application use cases</a></li><li><a href="#3-delightful-developer-experience" class="table-of-contents__link toc-highlight">3. Delightful developer experience</a></li><li><a href="#4-zero-trust-security" class="table-of-contents__link toc-highlight">4. Zero-trust security</a></li><li><a href="#5-optimized-for-humans-and-ai" class="table-of-contents__link toc-highlight">5. Optimized for humans and AI</a></li><li><a href="#6-production-ready-from-day-one" class="table-of-contents__link toc-highlight">6. Production-ready from day one</a></li><li><a href="#7-layered-extensibility" class="table-of-contents__link toc-highlight">7. Layered extensibility</a></li></ul></div></div></div></div></main></div></div></div><footer class="theme-layout-footer footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="theme-layout-footer-column col footer__col"><div class="footer__title">Docs</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/appkit/docs/">Getting started</a></li><li class="footer__item"><a class="footer__link-item" href="/appkit/docs/api/">API reference</a></li></ul></div><div class="theme-layout-footer-column col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/appkit/contributing">Contributing</a></li><li class="footer__item"><a href="https://github.com/databricks/appkit" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitHub<svg width="13.5" height="13.5" aria-label="(opens in new tab)" class="iconExternalLink_miaU"><use href="#theme-svg-external-link"></use></svg></a></li></ul></div><div class="theme-layout-footer-column col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://docs.databricks.com/aws/en/dev-tools/databricks-apps/" target="_blank" rel="noopener noreferrer" class="footer__link-item">Databricks Apps docs<svg width="13.5" height="13.5" aria-label="(opens in new tab)" class="iconExternalLink_miaU"><use href="#theme-svg-external-link"></use></svg></a></li><li class="footer__item"><a href="https://github.com/databricks/cli" target="_blank" rel="noopener noreferrer" class="footer__link-item">Databricks CLI<svg width="13.5" height="13.5" aria-label="(opens in new tab)" class="iconExternalLink_miaU"><use href="#theme-svg-external-link"></use></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="footer__copyright">Copyright © 2026 Databricks, Inc.</div></div></div></footer></div>
37
+ </body>
38
+ </html>
@@ -0,0 +1,31 @@
1
+ # Core principles
2
+
3
+ Learn about the fundamental concepts and principles behind AppKit.
4
+
5
+ ## 1. Highly opinionated[​](#1-highly-opinionated "Direct link to 1. Highly opinionated")
6
+
7
+ AppKit must provide a clear path with best practices for building Databricks applications. We provide strong defaults, with advanced customization when needed.
8
+
9
+ ## 2. Built for application use cases[​](#2-built-for-application-use-cases "Direct link to 2. Built for application use cases")
10
+
11
+ This SDK is for application development, not infrastructure management. Databricks' internal implementation details must be abstracted. We're building an application SDK, not a service wrapper.
12
+
13
+ ## 3. Delightful developer experience[​](#3-delightful-developer-experience "Direct link to 3. Delightful developer experience")
14
+
15
+ Every interface, doc, example, tool, and implementation must provide developer joy. Combined with the Highly Opinionated principle, this creates a true plug-and-play experience.
16
+
17
+ ## 4. Zero-trust security[​](#4-zero-trust-security "Direct link to 4. Zero-trust security")
18
+
19
+ Minimize exposed surface area, fail safely by default, and validate all inputs. AppKit must always have a zero-trust mindset.
20
+
21
+ ## 5. Optimized for humans and AI[​](#5-optimized-for-humans-and-ai "Direct link to 5. Optimized for humans and AI")
22
+
23
+ Developers and LLMs both use this SDK. Every API must be discoverable, self-documenting, and inferable by both types of users. Test with both.
24
+
25
+ ## 6. Production-ready from day one[​](#6-production-ready-from-day-one "Direct link to 6. Production-ready from day one")
26
+
27
+ Even the smallest feature can be used by enterprise users, so everything shipped must be production-ready. Observability, reliability, and scalability since day one.
28
+
29
+ ## 7. Layered extensibility[​](#7-layered-extensibility "Direct link to 7. Layered extensibility")
30
+
31
+ AppKit provides high-level plugins, low-level primitives, and extension points for custom plugins. It integrates into any application architecture and never blocks your path forward.