@databricks/appkit-ui 0.12.0 → 0.12.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CLAUDE.md +155 -147
- package/dist/cli/commands/docs.js +80 -17
- package/dist/cli/commands/docs.js.map +1 -1
- package/dist/react/charts/area/index.d.ts +2 -2
- package/dist/react/charts/bar/index.d.ts +2 -2
- package/dist/react/charts/base.d.ts +2 -2
- package/dist/react/charts/base.d.ts.map +1 -1
- package/dist/react/charts/create-chart.d.ts +2 -2
- package/dist/react/charts/create-chart.d.ts.map +1 -1
- package/dist/react/charts/heatmap/index.d.ts +2 -2
- package/dist/react/charts/line/index.d.ts +2 -2
- package/dist/react/charts/options.d.ts.map +1 -1
- package/dist/react/charts/pie/index.d.ts +3 -3
- package/dist/react/charts/radar/index.d.ts +2 -2
- package/dist/react/charts/scatter/index.d.ts +2 -2
- package/dist/react/charts/wrapper.d.ts +2 -2
- package/dist/react/charts/wrapper.d.ts.map +1 -1
- package/dist/react/table/data-table.d.ts +2 -2
- package/dist/react/ui/accordion.d.ts +5 -5
- package/dist/react/ui/accordion.d.ts.map +1 -1
- package/dist/react/ui/alert-dialog.d.ts +12 -12
- package/dist/react/ui/alert.d.ts +4 -4
- package/dist/react/ui/alert.d.ts.map +1 -1
- package/dist/react/ui/aspect-ratio.d.ts +2 -2
- package/dist/react/ui/avatar.d.ts +4 -4
- package/dist/react/ui/badge.d.ts +4 -4
- package/dist/react/ui/breadcrumb.d.ts +8 -8
- package/dist/react/ui/button-group.d.ts +6 -6
- package/dist/react/ui/button.d.ts +4 -4
- package/dist/react/ui/calendar.d.ts +3 -3
- package/dist/react/ui/card.d.ts +8 -8
- package/dist/react/ui/carousel.d.ts +6 -6
- package/dist/react/ui/chart.d.ts +5 -5
- package/dist/react/ui/checkbox.d.ts +2 -2
- package/dist/react/ui/collapsible.d.ts +4 -4
- package/dist/react/ui/command.d.ts +10 -10
- package/dist/react/ui/context-menu.d.ts +16 -16
- package/dist/react/ui/dialog.d.ts +11 -11
- package/dist/react/ui/dialog.d.ts.map +1 -1
- package/dist/react/ui/drawer.d.ts +11 -11
- package/dist/react/ui/dropdown-menu.d.ts +16 -16
- package/dist/react/ui/empty.d.ts +7 -7
- package/dist/react/ui/field.d.ts +11 -11
- package/dist/react/ui/form.d.ts +7 -7
- package/dist/react/ui/hover-card.d.ts +4 -4
- package/dist/react/ui/input-group.d.ts +7 -7
- package/dist/react/ui/input-otp.d.ts +5 -5
- package/dist/react/ui/input.d.ts +2 -2
- package/dist/react/ui/item.d.ts +11 -11
- package/dist/react/ui/kbd.d.ts +3 -3
- package/dist/react/ui/label.d.ts +2 -2
- package/dist/react/ui/menubar.d.ts +17 -17
- package/dist/react/ui/navigation-menu.d.ts +9 -9
- package/dist/react/ui/pagination.d.ts +8 -8
- package/dist/react/ui/popover.d.ts +5 -5
- package/dist/react/ui/progress.d.ts +2 -2
- package/dist/react/ui/radio-group.d.ts +3 -3
- package/dist/react/ui/resizable.d.ts +4 -4
- package/dist/react/ui/scroll-area.d.ts +3 -3
- package/dist/react/ui/select.d.ts +11 -11
- package/dist/react/ui/separator.d.ts +2 -2
- package/dist/react/ui/sheet.d.ts +9 -9
- package/dist/react/ui/sidebar.d.ts +24 -24
- package/dist/react/ui/skeleton.d.ts +2 -2
- package/dist/react/ui/slider.d.ts +2 -2
- package/dist/react/ui/sonner.d.ts +2 -2
- package/dist/react/ui/spinner.d.ts +2 -2
- package/dist/react/ui/switch.d.ts +2 -2
- package/dist/react/ui/table.d.ts +9 -9
- package/dist/react/ui/tabs.d.ts +5 -5
- package/dist/react/ui/textarea.d.ts +2 -2
- package/dist/react/ui/toggle-group.d.ts +3 -3
- package/dist/react/ui/toggle.d.ts +2 -2
- package/dist/react/ui/tooltip.d.ts +5 -5
- package/dist/react/ui/tooltip.d.ts.map +1 -1
- package/docs/{docs/api → api}/appkit/Class.AppKitError.md +8 -8
- package/docs/{docs/api → api}/appkit/Class.AuthenticationError.md +9 -9
- package/docs/{docs/api → api}/appkit/Class.ConfigurationError.md +9 -9
- package/docs/{docs/api → api}/appkit/Class.ConnectionError.md +9 -9
- package/docs/{docs/api → api}/appkit/Class.ExecutionError.md +9 -9
- package/docs/{docs/api → api}/appkit/Class.InitializationError.md +9 -9
- package/docs/{docs/api → api}/appkit/Class.Plugin.md +2 -2
- package/docs/{docs/api → api}/appkit/Class.ResourceRegistry.md +11 -11
- package/docs/{docs/api → api}/appkit/Class.ServerError.md +9 -9
- package/docs/{docs/api → api}/appkit/Class.TunnelError.md +9 -9
- package/docs/{docs/api → api}/appkit/Class.ValidationError.md +9 -9
- package/docs/{docs/api → api}/appkit/Function.createApp.md +3 -3
- package/docs/{docs/api → api}/appkit/Function.createLakebasePool.md +1 -1
- package/docs/{docs/api → api}/appkit/Function.generateDatabaseCredential.md +2 -2
- package/docs/{docs/api → api}/appkit/Function.getLakebaseOrmConfig.md +1 -1
- package/docs/{docs/api → api}/appkit/Function.getLakebasePgConfig.md +1 -1
- package/docs/{docs/api → api}/appkit/Function.getPluginManifest.md +1 -1
- package/docs/{docs/api → api}/appkit/Function.getUsernameWithApiLookup.md +1 -1
- package/docs/{docs/api → api}/appkit/Function.getWorkspaceClient.md +1 -1
- package/docs/{docs/api → api}/appkit/Interface.ResourceEntry.md +8 -8
- package/docs/{docs/api → api}/appkit/Interface.ResourceRequirement.md +1 -1
- package/docs/{docs/api → api}/appkit-ui/styling.md +1 -1
- package/docs/api/appkit.md +78 -0
- package/docs/{docs/api.md → api.md} +4 -4
- package/docs/{docs/app-management.md → app-management.md} +2 -2
- package/docs/{docs/architecture.md → architecture.md} +6 -6
- package/docs/{docs/configuration.md → configuration.md} +2 -2
- package/docs/{docs/development → development}/ai-assisted-development.md +5 -3
- package/docs/{docs/development → development}/llm-guide.md +7 -6
- package/docs/{docs/development → development}/local-development.md +2 -2
- package/docs/{docs/development → development}/project-setup.md +3 -3
- package/docs/{docs/development → development}/remote-bridge.md +1 -1
- package/docs/{docs/development → development}/type-generation.md +2 -2
- package/docs/development.md +22 -0
- package/docs/{docs/plugins → plugins}/analytics.md +1 -1
- package/docs/{docs/plugins → plugins}/custom-plugins.md +6 -6
- package/docs/{docs/plugins.md → plugins.md} +2 -2
- package/{docs/docs.md → docs.md} +4 -4
- package/llms.txt +155 -147
- package/package.json +2 -1
- package/docs/docs/api/appkit/Class.AppKitError/index.html +0 -79
- package/docs/docs/api/appkit/Class.AuthenticationError/index.html +0 -110
- package/docs/docs/api/appkit/Class.ConfigurationError/index.html +0 -112
- package/docs/docs/api/appkit/Class.ConnectionError/index.html +0 -120
- package/docs/docs/api/appkit/Class.ExecutionError/index.html +0 -116
- package/docs/docs/api/appkit/Class.InitializationError/index.html +0 -104
- package/docs/docs/api/appkit/Class.Plugin/index.html +0 -168
- package/docs/docs/api/appkit/Class.ResourceRegistry/index.html +0 -150
- package/docs/docs/api/appkit/Class.ServerError/index.html +0 -108
- package/docs/docs/api/appkit/Class.TunnelError/index.html +0 -108
- package/docs/docs/api/appkit/Class.ValidationError/index.html +0 -106
- package/docs/docs/api/appkit/Enumeration.RequestedClaimsPermissionSet/index.html +0 -21
- package/docs/docs/api/appkit/Enumeration.ResourceType/index.html +0 -53
- package/docs/docs/api/appkit/Function.appKitTypesPlugin/index.html +0 -24
- package/docs/docs/api/appkit/Function.createApp/index.html +0 -24
- package/docs/docs/api/appkit/Function.createLakebasePool/index.html +0 -24
- package/docs/docs/api/appkit/Function.generateDatabaseCredential/index.html +0 -30
- package/docs/docs/api/appkit/Function.getExecutionContext/index.html +0 -26
- package/docs/docs/api/appkit/Function.getLakebaseOrmConfig/index.html +0 -39
- package/docs/docs/api/appkit/Function.getLakebasePgConfig/index.html +0 -27
- package/docs/docs/api/appkit/Function.getPluginManifest/index.html +0 -26
- package/docs/docs/api/appkit/Function.getResourceRequirements/index.html +0 -28
- package/docs/docs/api/appkit/Function.getUsernameWithApiLookup/index.html +0 -35
- package/docs/docs/api/appkit/Function.getWorkspaceClient/index.html +0 -22
- package/docs/docs/api/appkit/Function.isSQLTypeMarker/index.html +0 -25
- package/docs/docs/api/appkit/Interface.BasePluginConfig/index.html +0 -28
- package/docs/docs/api/appkit/Interface.CacheConfig/index.html +0 -63
- package/docs/docs/api/appkit/Interface.DatabaseCredential/index.html +0 -28
- package/docs/docs/api/appkit/Interface.GenerateDatabaseCredentialRequest/index.html +0 -32
- package/docs/docs/api/appkit/Interface.ITelemetry/index.html +0 -73
- package/docs/docs/api/appkit/Interface.LakebasePoolConfig/index.html +0 -75
- package/docs/docs/api/appkit/Interface.PluginManifest/index.html +0 -67
- package/docs/docs/api/appkit/Interface.RequestedClaims/index.html +0 -26
- package/docs/docs/api/appkit/Interface.RequestedResource/index.html +0 -27
- package/docs/docs/api/appkit/Interface.ResourceEntry/index.html +0 -83
- package/docs/docs/api/appkit/Interface.ResourceFieldEntry/index.html +0 -26
- package/docs/docs/api/appkit/Interface.ResourceRequirement/index.html +0 -51
- package/docs/docs/api/appkit/Interface.StreamExecutionSettings/index.html +0 -26
- package/docs/docs/api/appkit/Interface.TelemetryConfig/index.html +0 -32
- package/docs/docs/api/appkit/Interface.ValidationResult/index.html +0 -29
- package/docs/docs/api/appkit/TypeAlias.ConfigSchema/index.html +0 -21
- package/docs/docs/api/appkit/TypeAlias.IAppRouter/index.html +0 -18
- package/docs/docs/api/appkit/TypeAlias.ResourcePermission/index.html +0 -18
- package/docs/docs/api/appkit/TypeAlias.ToPlugin/index.html +0 -23
- package/docs/docs/api/appkit/Variable.sql/index.html +0 -98
- package/docs/docs/api/appkit/index.html +0 -30
- package/docs/docs/api/appkit-ui/data/AreaChart/index.html +0 -29
- package/docs/docs/api/appkit-ui/data/BarChart/index.html +0 -29
- package/docs/docs/api/appkit-ui/data/DataTable/index.html +0 -36
- package/docs/docs/api/appkit-ui/data/DonutChart/index.html +0 -29
- package/docs/docs/api/appkit-ui/data/HeatmapChart/index.html +0 -35
- package/docs/docs/api/appkit-ui/data/LineChart/index.html +0 -29
- package/docs/docs/api/appkit-ui/data/PieChart/index.html +0 -29
- package/docs/docs/api/appkit-ui/data/RadarChart/index.html +0 -29
- package/docs/docs/api/appkit-ui/data/ScatterChart/index.html +0 -29
- package/docs/docs/api/appkit-ui/genie/GenieChat/index.html +0 -26
- package/docs/docs/api/appkit-ui/genie/GenieChatInput/index.html +0 -24
- package/docs/docs/api/appkit-ui/genie/GenieChatMessage/index.html +0 -24
- package/docs/docs/api/appkit-ui/genie/GenieChatMessageList/index.html +0 -24
- package/docs/docs/api/appkit-ui/index.html +0 -23
- package/docs/docs/api/appkit-ui/styling/index.html +0 -74
- package/docs/docs/api/appkit-ui/ui/Accordion/index.html +0 -48
- package/docs/docs/api/appkit-ui/ui/Alert/index.html +0 -41
- package/docs/docs/api/appkit-ui/ui/AlertDialog/index.html +0 -97
- package/docs/docs/api/appkit-ui/ui/AspectRatio/index.html +0 -27
- package/docs/docs/api/appkit-ui/ui/Avatar/index.html +0 -41
- package/docs/docs/api/appkit-ui/ui/Badge/index.html +0 -27
- package/docs/docs/api/appkit-ui/ui/Breadcrumb/index.html +0 -69
- package/docs/docs/api/appkit-ui/ui/Button/index.html +0 -27
- package/docs/docs/api/appkit-ui/ui/ButtonGroup/index.html +0 -38
- package/docs/docs/api/appkit-ui/ui/Calendar/index.html +0 -34
- package/docs/docs/api/appkit-ui/ui/Card/index.html +0 -69
- package/docs/docs/api/appkit-ui/ui/Carousel/index.html +0 -55
- package/docs/docs/api/appkit-ui/ui/ChartContainer/index.html +0 -58
- package/docs/docs/api/appkit-ui/ui/Checkbox/index.html +0 -27
- package/docs/docs/api/appkit-ui/ui/Collapsible/index.html +0 -41
- package/docs/docs/api/appkit-ui/ui/Command/index.html +0 -83
- package/docs/docs/api/appkit-ui/ui/ContextMenu/index.html +0 -111
- package/docs/docs/api/appkit-ui/ui/Dialog/index.html +0 -90
- package/docs/docs/api/appkit-ui/ui/Drawer/index.html +0 -90
- package/docs/docs/api/appkit-ui/ui/DropdownMenu/index.html +0 -111
- package/docs/docs/api/appkit-ui/ui/Empty/index.html +0 -54
- package/docs/docs/api/appkit-ui/ui/Field/index.html +0 -87
- package/docs/docs/api/appkit-ui/ui/FormControl/index.html +0 -59
- package/docs/docs/api/appkit-ui/ui/HoverCard/index.html +0 -39
- package/docs/docs/api/appkit-ui/ui/Input/index.html +0 -27
- package/docs/docs/api/appkit-ui/ui/InputGroup/index.html +0 -59
- package/docs/docs/api/appkit-ui/ui/InputOTP/index.html +0 -48
- package/docs/docs/api/appkit-ui/ui/Item/index.html +0 -78
- package/docs/docs/api/appkit-ui/ui/Kbd/index.html +0 -30
- package/docs/docs/api/appkit-ui/ui/Label/index.html +0 -27
- package/docs/docs/api/appkit-ui/ui/Menubar/index.html +0 -117
- package/docs/docs/api/appkit-ui/ui/NavigationMenu/index.html +0 -76
- package/docs/docs/api/appkit-ui/ui/Pagination/index.html +0 -69
- package/docs/docs/api/appkit-ui/ui/Popover/index.html +0 -45
- package/docs/docs/api/appkit-ui/ui/Progress/index.html +0 -27
- package/docs/docs/api/appkit-ui/ui/RadioGroup/index.html +0 -33
- package/docs/docs/api/appkit-ui/ui/ResizableHandle/index.html +0 -41
- package/docs/docs/api/appkit-ui/ui/ScrollArea/index.html +0 -34
- package/docs/docs/api/appkit-ui/ui/Select/index.html +0 -82
- package/docs/docs/api/appkit-ui/ui/Separator/index.html +0 -27
- package/docs/docs/api/appkit-ui/ui/Sheet/index.html +0 -76
- package/docs/docs/api/appkit-ui/ui/Sidebar/index.html +0 -183
- package/docs/docs/api/appkit-ui/ui/Skeleton/index.html +0 -27
- package/docs/docs/api/appkit-ui/ui/Slider/index.html +0 -27
- package/docs/docs/api/appkit-ui/ui/Spinner/index.html +0 -24
- package/docs/docs/api/appkit-ui/ui/Switch/index.html +0 -27
- package/docs/docs/api/appkit-ui/ui/Table/index.html +0 -69
- package/docs/docs/api/appkit-ui/ui/Tabs/index.html +0 -48
- package/docs/docs/api/appkit-ui/ui/Textarea/index.html +0 -27
- package/docs/docs/api/appkit-ui/ui/Toaster/index.html +0 -27
- package/docs/docs/api/appkit-ui/ui/Toggle/index.html +0 -27
- package/docs/docs/api/appkit-ui/ui/ToggleGroup/index.html +0 -33
- package/docs/docs/api/appkit-ui/ui/Tooltip/index.html +0 -46
- package/docs/docs/api/appkit.md +0 -78
- package/docs/docs/api/index.html +0 -28
- package/docs/docs/app-management/index.html +0 -106
- package/docs/docs/architecture/index.html +0 -71
- package/docs/docs/category/development/index.html +0 -16
- package/docs/docs/category/development.md +0 -3
- package/docs/docs/configuration/index.html +0 -66
- package/docs/docs/core-principles/index.html +0 -38
- package/docs/docs/development/ai-assisted-development/index.html +0 -33
- package/docs/docs/development/index.html +0 -35
- package/docs/docs/development/llm-guide/index.html +0 -84
- package/docs/docs/development/local-development/index.html +0 -27
- package/docs/docs/development/project-setup/index.html +0 -69
- package/docs/docs/development/remote-bridge/index.html +0 -76
- package/docs/docs/development/type-generation/index.html +0 -65
- package/docs/docs/development.md +0 -22
- package/docs/docs/index.html +0 -58
- package/docs/docs/plugins/analytics/index.html +0 -53
- package/docs/docs/plugins/caching/index.html +0 -23
- package/docs/docs/plugins/custom-plugins/index.html +0 -49
- package/docs/docs/plugins/execution-context/index.html +0 -40
- package/docs/docs/plugins/index.html +0 -29
- package/docs/docs/plugins/lakebase/index.html +0 -62
- package/docs/docs/plugins/plugin-management/index.html +0 -44
- package/docs/docs/plugins/server/index.html +0 -45
- /package/docs/{docs/api → api}/appkit/Enumeration.RequestedClaimsPermissionSet.md +0 -0
- /package/docs/{docs/api → api}/appkit/Enumeration.ResourceType.md +0 -0
- /package/docs/{docs/api → api}/appkit/Function.appKitTypesPlugin.md +0 -0
- /package/docs/{docs/api → api}/appkit/Function.getExecutionContext.md +0 -0
- /package/docs/{docs/api → api}/appkit/Function.getResourceRequirements.md +0 -0
- /package/docs/{docs/api → api}/appkit/Function.isSQLTypeMarker.md +0 -0
- /package/docs/{docs/api → api}/appkit/Interface.BasePluginConfig.md +0 -0
- /package/docs/{docs/api → api}/appkit/Interface.CacheConfig.md +0 -0
- /package/docs/{docs/api → api}/appkit/Interface.DatabaseCredential.md +0 -0
- /package/docs/{docs/api → api}/appkit/Interface.GenerateDatabaseCredentialRequest.md +0 -0
- /package/docs/{docs/api → api}/appkit/Interface.ITelemetry.md +0 -0
- /package/docs/{docs/api → api}/appkit/Interface.LakebasePoolConfig.md +0 -0
- /package/docs/{docs/api → api}/appkit/Interface.PluginManifest.md +0 -0
- /package/docs/{docs/api → api}/appkit/Interface.RequestedClaims.md +0 -0
- /package/docs/{docs/api → api}/appkit/Interface.RequestedResource.md +0 -0
- /package/docs/{docs/api → api}/appkit/Interface.ResourceFieldEntry.md +0 -0
- /package/docs/{docs/api → api}/appkit/Interface.StreamExecutionSettings.md +0 -0
- /package/docs/{docs/api → api}/appkit/Interface.TelemetryConfig.md +0 -0
- /package/docs/{docs/api → api}/appkit/Interface.ValidationResult.md +0 -0
- /package/docs/{docs/api → api}/appkit/TypeAlias.ConfigSchema.md +0 -0
- /package/docs/{docs/api → api}/appkit/TypeAlias.IAppRouter.md +0 -0
- /package/docs/{docs/api → api}/appkit/TypeAlias.ResourcePermission.md +0 -0
- /package/docs/{docs/api → api}/appkit/TypeAlias.ToPlugin.md +0 -0
- /package/docs/{docs/api → api}/appkit/Variable.sql.md +0 -0
- /package/docs/{docs/api → api}/appkit-ui/data/AreaChart.md +0 -0
- /package/docs/{docs/api → api}/appkit-ui/data/BarChart.md +0 -0
- /package/docs/{docs/api → api}/appkit-ui/data/DataTable.md +0 -0
- /package/docs/{docs/api → api}/appkit-ui/data/DonutChart.md +0 -0
- /package/docs/{docs/api → api}/appkit-ui/data/HeatmapChart.md +0 -0
- /package/docs/{docs/api → api}/appkit-ui/data/LineChart.md +0 -0
- /package/docs/{docs/api → api}/appkit-ui/data/PieChart.md +0 -0
- /package/docs/{docs/api → api}/appkit-ui/data/RadarChart.md +0 -0
- /package/docs/{docs/api → api}/appkit-ui/data/ScatterChart.md +0 -0
- /package/docs/{docs/api → api}/appkit-ui/genie/GenieChat.md +0 -0
- /package/docs/{docs/api → api}/appkit-ui/genie/GenieChatInput.md +0 -0
- /package/docs/{docs/api → api}/appkit-ui/genie/GenieChatMessage.md +0 -0
- /package/docs/{docs/api → api}/appkit-ui/genie/GenieChatMessageList.md +0 -0
- /package/docs/{docs/api → api}/appkit-ui/ui/Accordion.md +0 -0
- /package/docs/{docs/api → api}/appkit-ui/ui/Alert.md +0 -0
- /package/docs/{docs/api → api}/appkit-ui/ui/AlertDialog.md +0 -0
- /package/docs/{docs/api → api}/appkit-ui/ui/AspectRatio.md +0 -0
- /package/docs/{docs/api → api}/appkit-ui/ui/Avatar.md +0 -0
- /package/docs/{docs/api → api}/appkit-ui/ui/Badge.md +0 -0
- /package/docs/{docs/api → api}/appkit-ui/ui/Breadcrumb.md +0 -0
- /package/docs/{docs/api → api}/appkit-ui/ui/Button.md +0 -0
- /package/docs/{docs/api → api}/appkit-ui/ui/ButtonGroup.md +0 -0
- /package/docs/{docs/api → api}/appkit-ui/ui/Calendar.md +0 -0
- /package/docs/{docs/api → api}/appkit-ui/ui/Card.md +0 -0
- /package/docs/{docs/api → api}/appkit-ui/ui/Carousel.md +0 -0
- /package/docs/{docs/api → api}/appkit-ui/ui/ChartContainer.md +0 -0
- /package/docs/{docs/api → api}/appkit-ui/ui/Checkbox.md +0 -0
- /package/docs/{docs/api → api}/appkit-ui/ui/Collapsible.md +0 -0
- /package/docs/{docs/api → api}/appkit-ui/ui/Command.md +0 -0
- /package/docs/{docs/api → api}/appkit-ui/ui/ContextMenu.md +0 -0
- /package/docs/{docs/api → api}/appkit-ui/ui/Dialog.md +0 -0
- /package/docs/{docs/api → api}/appkit-ui/ui/Drawer.md +0 -0
- /package/docs/{docs/api → api}/appkit-ui/ui/DropdownMenu.md +0 -0
- /package/docs/{docs/api → api}/appkit-ui/ui/Empty.md +0 -0
- /package/docs/{docs/api → api}/appkit-ui/ui/Field.md +0 -0
- /package/docs/{docs/api → api}/appkit-ui/ui/FormControl.md +0 -0
- /package/docs/{docs/api → api}/appkit-ui/ui/HoverCard.md +0 -0
- /package/docs/{docs/api → api}/appkit-ui/ui/Input.md +0 -0
- /package/docs/{docs/api → api}/appkit-ui/ui/InputGroup.md +0 -0
- /package/docs/{docs/api → api}/appkit-ui/ui/InputOTP.md +0 -0
- /package/docs/{docs/api → api}/appkit-ui/ui/Item.md +0 -0
- /package/docs/{docs/api → api}/appkit-ui/ui/Kbd.md +0 -0
- /package/docs/{docs/api → api}/appkit-ui/ui/Label.md +0 -0
- /package/docs/{docs/api → api}/appkit-ui/ui/Menubar.md +0 -0
- /package/docs/{docs/api → api}/appkit-ui/ui/NavigationMenu.md +0 -0
- /package/docs/{docs/api → api}/appkit-ui/ui/Pagination.md +0 -0
- /package/docs/{docs/api → api}/appkit-ui/ui/Popover.md +0 -0
- /package/docs/{docs/api → api}/appkit-ui/ui/Progress.md +0 -0
- /package/docs/{docs/api → api}/appkit-ui/ui/RadioGroup.md +0 -0
- /package/docs/{docs/api → api}/appkit-ui/ui/ResizableHandle.md +0 -0
- /package/docs/{docs/api → api}/appkit-ui/ui/ScrollArea.md +0 -0
- /package/docs/{docs/api → api}/appkit-ui/ui/Select.md +0 -0
- /package/docs/{docs/api → api}/appkit-ui/ui/Separator.md +0 -0
- /package/docs/{docs/api → api}/appkit-ui/ui/Sheet.md +0 -0
- /package/docs/{docs/api → api}/appkit-ui/ui/Sidebar.md +0 -0
- /package/docs/{docs/api → api}/appkit-ui/ui/Skeleton.md +0 -0
- /package/docs/{docs/api → api}/appkit-ui/ui/Slider.md +0 -0
- /package/docs/{docs/api → api}/appkit-ui/ui/Spinner.md +0 -0
- /package/docs/{docs/api → api}/appkit-ui/ui/Switch.md +0 -0
- /package/docs/{docs/api → api}/appkit-ui/ui/Table.md +0 -0
- /package/docs/{docs/api → api}/appkit-ui/ui/Tabs.md +0 -0
- /package/docs/{docs/api → api}/appkit-ui/ui/Textarea.md +0 -0
- /package/docs/{docs/api → api}/appkit-ui/ui/Toaster.md +0 -0
- /package/docs/{docs/api → api}/appkit-ui/ui/Toggle.md +0 -0
- /package/docs/{docs/api → api}/appkit-ui/ui/ToggleGroup.md +0 -0
- /package/docs/{docs/api → api}/appkit-ui/ui/Tooltip.md +0 -0
- /package/docs/{docs/api → api}/appkit-ui.md +0 -0
- /package/docs/{docs/core-principles.md → core-principles.md} +0 -0
- /package/docs/{docs/plugins → plugins}/caching.md +0 -0
- /package/docs/{docs/plugins → plugins}/execution-context.md +0 -0
- /package/docs/{docs/plugins → plugins}/lakebase.md +0 -0
- /package/docs/{docs/plugins → plugins}/plugin-management.md +0 -0
- /package/docs/{docs/plugins → plugins}/server.md +0 -0
|
@@ -1,65 +0,0 @@
|
|
|
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-development/type-generation" 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">Type generation | 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/development/type-generation"><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="Type generation | AppKit"><meta data-rh="true" name="description" content="AppKit can automatically generate TypeScript types for your SQL queries, providing end-to-end type safety from database to UI."><meta data-rh="true" property="og:description" content="AppKit can automatically generate TypeScript types for your SQL queries, providing end-to-end type safety from database to UI."><link data-rh="true" rel="icon" href="/appkit/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://databricks.github.io/appkit/docs/development/type-generation"><link data-rh="true" rel="alternate" href="https://databricks.github.io/appkit/docs/development/type-generation" hreflang="en"><link data-rh="true" rel="alternate" href="https://databricks.github.io/appkit/docs/development/type-generation" 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"},{"@type":"ListItem","position":2,"name":"Type generation","item":"https://databricks.github.io/appkit/docs/development/type-generation"}]}</script><link rel="stylesheet" href="/appkit/assets/css/styles.36a38b99.css">
|
|
7
|
-
<script src="/appkit/assets/js/runtime~main.05f114de.js" defer="defer"></script>
|
|
8
|
-
<script src="/appkit/assets/js/main.215573eb.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-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/plugins/"><span title="Plugins" class="categoryLinkLabel_ShmP">Plugins</span></a><button aria-label="Collapse sidebar category 'Plugins'" 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/plugins/server"><span title="Server plugin" class="linkLabel_hZzm">Server plugin</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/plugins/analytics"><span title="Analytics plugin" class="linkLabel_hZzm">Analytics plugin</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/plugins/lakebase"><span title="Lakebase plugin" class="linkLabel_hZzm">Lakebase plugin</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/plugins/execution-context"><span title="Execution context" class="linkLabel_hZzm">Execution context</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/plugins/plugin-management"><span title="Plugin management" class="linkLabel_hZzm">Plugin management</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/plugins/custom-plugins"><span title="Creating custom plugins" class="linkLabel_hZzm">Creating custom plugins</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/plugins/caching"><span title="Caching" class="linkLabel_hZzm">Caching</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/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 menu__link--active" href="/appkit/docs/category/development"><span title="Development" class="categoryLinkLabel_ShmP">Development</span></a><button aria-label="Collapse sidebar category 'Development'" 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/ai-assisted-development"><span title="AI-Assisted development" class="linkLabel_hZzm">AI-Assisted 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 menu__link--active" aria-current="page" 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 'API reference'" 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"><a class="breadcrumbs__link" href="/appkit/docs/category/development"><span>Development</span></a></li><li class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link">Type generation</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>Type generation</h1></header>
|
|
15
|
-
<p>AppKit can automatically generate TypeScript types for your SQL queries, providing end-to-end type safety from database to UI.</p>
|
|
16
|
-
<h2 class="anchor anchorTargetStickyNavbar_scV4" id="goal">Goal<a href="#goal" class="hash-link" aria-label="Direct link to Goal" title="Direct link to Goal" translate="no"></a></h2>
|
|
17
|
-
<p>Generate <code>client/src/appKitTypes.d.ts</code> so query keys, parameters, and result rows are type-safe.</p>
|
|
18
|
-
<h2 class="anchor anchorTargetStickyNavbar_scV4" id="vite-plugin-appkittypesplugin">Vite plugin: <code>appKitTypesPlugin</code><a href="#vite-plugin-appkittypesplugin" class="hash-link" aria-label="Direct link to vite-plugin-appkittypesplugin" title="Direct link to vite-plugin-appkittypesplugin" translate="no"></a></h2>
|
|
19
|
-
<p>The recommended approach is to use the Vite plugin, which watches your SQL files and regenerates types automatically during development.</p>
|
|
20
|
-
<h3 class="anchor anchorTargetStickyNavbar_scV4" id="configuration">Configuration<a href="#configuration" class="hash-link" aria-label="Direct link to Configuration" title="Direct link to Configuration" translate="no"></a></h3>
|
|
21
|
-
<ul>
|
|
22
|
-
<li class=""><code>outFile?: string</code> - Output file path (default: <code>src/appKitTypes.d.ts</code>)</li>
|
|
23
|
-
<li class=""><code>watchFolders?: string[]</code> - Folders to watch for SQL files (default: <code>["../config/queries"]</code>)</li>
|
|
24
|
-
</ul>
|
|
25
|
-
<h3 class="anchor anchorTargetStickyNavbar_scV4" id="example">Example<a href="#example" class="hash-link" aria-label="Direct link to Example" title="Direct link to Example" translate="no"></a></h3>
|
|
26
|
-
<div class="language-ts codeBlockContainer_crgn theme-code-block" style="--prism-color:#000000;--prism-background-color:#ffffff"><div class="codeBlockContent__42J"><pre tabindex="0" class="prism-code language-ts codeBlock_CnLD thin-scrollbar" style="color:#000000;background-color:#ffffff"><code class="codeBlockLines_sJEA"><span class="token-line" style="color:#000000"><span class="token comment" style="color:rgb(0, 128, 0)">// client/vite.config.ts</span><span class="token plain"></span><br></span><span class="token-line" style="color:#000000"><span class="token plain"></span><span class="token keyword" style="color:rgb(0, 0, 255)">import</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(4, 81, 165)">{</span><span class="token plain"> defineConfig </span><span class="token punctuation" style="color:rgb(4, 81, 165)">}</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(0, 0, 255)">from</span><span class="token plain"> </span><span class="token string" style="color:rgb(163, 21, 21)">"vite"</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 keyword" style="color:rgb(0, 0, 255)">import</span><span class="token plain"> react </span><span class="token keyword" style="color:rgb(0, 0, 255)">from</span><span class="token plain"> </span><span class="token string" style="color:rgb(163, 21, 21)">"@vitejs/plugin-react"</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 keyword" style="color:rgb(0, 0, 255)">import</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(4, 81, 165)">{</span><span class="token plain"> appKitTypesPlugin </span><span class="token punctuation" style="color:rgb(4, 81, 165)">}</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(0, 0, 255)">from</span><span class="token plain"> </span><span class="token string" style="color:rgb(163, 21, 21)">"@databricks/appkit"</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" style="display:inline-block"></span><br></span><span class="token-line" style="color:#000000"><span class="token plain"></span><span class="token keyword" style="color:rgb(0, 0, 255)">export</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(0, 0, 255)">default</span><span class="token plain"> </span><span class="token function" style="color:rgb(0, 0, 255)">defineConfig</span><span class="token punctuation" style="color:rgb(4, 81, 165)">(</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"> plugins</span><span class="token operator" style="color:rgb(0, 0, 0)">:</span><span class="token plain"> </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 function" style="color:rgb(0, 0, 255)">react</span><span class="token punctuation" style="color:rgb(4, 81, 165)">(</span><span class="token punctuation" style="color:rgb(4, 81, 165)">)</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 function" style="color:rgb(0, 0, 255)">appKitTypesPlugin</span><span class="token punctuation" style="color:rgb(4, 81, 165)">(</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"> outFile</span><span class="token operator" style="color:rgb(0, 0, 0)">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(163, 21, 21)">"src/appKitTypes.d.ts"</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"> watchFolders</span><span class="token operator" style="color:rgb(0, 0, 0)">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(4, 81, 165)">[</span><span class="token string" style="color:rgb(163, 21, 21)">"../config/queries"</span><span class="token punctuation" style="color:rgb(4, 81, 165)">]</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 punctuation" style="color:rgb(4, 81, 165)">)</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 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 punctuation" style="color:rgb(4, 81, 165)">)</span><span class="token punctuation" style="color:rgb(4, 81, 165)">;</span><br></span></code></pre></div></div>
|
|
27
|
-
<h3 class="anchor anchorTargetStickyNavbar_scV4" id="important-nuance">Important nuance<a href="#important-nuance" class="hash-link" aria-label="Direct link to Important nuance" title="Direct link to Important nuance" translate="no"></a></h3>
|
|
28
|
-
<p>When the frontend is served through AppKit in dev mode, AppKit's dev server already includes <code>appKitTypesPlugin()</code> internally. You still want it in your client build pipeline if you run <code>vite build</code> separately.</p>
|
|
29
|
-
<h2 class="anchor anchorTargetStickyNavbar_scV4" id="cli-npx-databricksappkit-generate-types">CLI: <code>npx @databricks/appkit generate-types</code><a href="#cli-npx-databricksappkit-generate-types" class="hash-link" aria-label="Direct link to cli-npx-databricksappkit-generate-types" title="Direct link to cli-npx-databricksappkit-generate-types" translate="no"></a></h2>
|
|
30
|
-
<p>For manual type generation or CI/CD pipelines, use the CLI command:</p>
|
|
31
|
-
<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"># Requires DATABRICKS_WAREHOUSE_ID (or pass as 3rd arg)</span><br></span><span class="token-line" style="color:#000000"><span class="token plain">npx @databricks/appkit generate-types [rootDir] [outFile] [warehouseId]</span><br></span></code></pre></div></div>
|
|
32
|
-
<h3 class="anchor anchorTargetStickyNavbar_scV4" id="examples">Examples<a href="#examples" class="hash-link" aria-label="Direct link to Examples" title="Direct link to Examples" translate="no"></a></h3>
|
|
33
|
-
<ul>
|
|
34
|
-
<li class="">
|
|
35
|
-
<p>Generate types using warehouse ID from environment</p>
|
|
36
|
-
<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">npx @databricks/appkit generate-types . client/src/appKitTypes.d.ts</span><br></span></code></pre></div></div>
|
|
37
|
-
</li>
|
|
38
|
-
<li class="">
|
|
39
|
-
<p>Generate types using warehouse ID explicitly</p>
|
|
40
|
-
<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">npx @databricks/appkit generate-types . client/src/appKitTypes.d.ts abc123...</span><br></span></code></pre></div></div>
|
|
41
|
-
</li>
|
|
42
|
-
<li class="">
|
|
43
|
-
<p>Force regeneration (skip cache)</p>
|
|
44
|
-
<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">npx @databricks/appkit generate-types --no-cache</span><br></span></code></pre></div></div>
|
|
45
|
-
</li>
|
|
46
|
-
</ul>
|
|
47
|
-
<h2 class="anchor anchorTargetStickyNavbar_scV4" id="how-it-works">How it works<a href="#how-it-works" class="hash-link" aria-label="Direct link to How it works" title="Direct link to How it works" translate="no"></a></h2>
|
|
48
|
-
<p>The type generator:</p>
|
|
49
|
-
<ol>
|
|
50
|
-
<li class="">Scans your <code>config/queries/</code> folder for <code>.sql</code> files</li>
|
|
51
|
-
<li class="">Parses SQL parameter annotations (e.g., <code>-- @param startDate DATE</code>)</li>
|
|
52
|
-
<li class="">Connects to your Databricks SQL Warehouse to infer result column types</li>
|
|
53
|
-
<li class="">Generates TypeScript interfaces for query parameters and results</li>
|
|
54
|
-
<li class="">Creates a <code>QueryRegistry</code> type for type-safe query execution</li>
|
|
55
|
-
</ol>
|
|
56
|
-
<h2 class="anchor anchorTargetStickyNavbar_scV4" id="using-generated-types">Using generated types<a href="#using-generated-types" class="hash-link" aria-label="Direct link to Using generated types" title="Direct link to Using generated types" translate="no"></a></h2>
|
|
57
|
-
<p>Once types are generated, your IDE will provide autocomplete and type checking:</p>
|
|
58
|
-
<div class="language-tsx codeBlockContainer_crgn theme-code-block" style="--prism-color:#000000;--prism-background-color:#ffffff"><div class="codeBlockContent__42J"><pre tabindex="0" class="prism-code language-tsx codeBlock_CnLD thin-scrollbar" style="color:#000000;background-color:#ffffff"><code class="codeBlockLines_sJEA"><span class="token-line" style="color:#000000"><span class="token keyword" style="color:rgb(0, 0, 255)">import</span><span class="token plain"> </span><span class="token imports punctuation" style="color:rgb(4, 81, 165)">{</span><span class="token imports"> useAnalyticsQuery </span><span class="token imports punctuation" style="color:rgb(4, 81, 165)">}</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(0, 0, 255)">from</span><span class="token plain"> </span><span class="token string" style="color:rgb(163, 21, 21)">"@databricks/appkit-ui/react"</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 keyword" style="color:rgb(0, 0, 255)">import</span><span class="token plain"> </span><span class="token imports punctuation" style="color:rgb(4, 81, 165)">{</span><span class="token imports"> sql </span><span class="token imports punctuation" style="color:rgb(4, 81, 165)">}</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(0, 0, 255)">from</span><span class="token plain"> </span><span class="token string" style="color:rgb(163, 21, 21)">"@databricks/appkit-ui/js"</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" style="display:inline-block"></span><br></span><span class="token-line" style="color:#000000"><span class="token plain"></span><span class="token comment" style="color:rgb(0, 128, 0)">// TypeScript knows "users_list" is a valid query key</span><span class="token plain"></span><br></span><span class="token-line" style="color:#000000"><span class="token plain"></span><span class="token comment" style="color:rgb(0, 128, 0)">// and what parameters it expects</span><span class="token plain"></span><br></span><span class="token-line" style="color:#000000"><span class="token plain"></span><span class="token keyword" style="color:rgb(0, 0, 255)">const</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(4, 81, 165)">{</span><span class="token plain"> data </span><span class="token punctuation" style="color:rgb(4, 81, 165)">}</span><span class="token plain"> </span><span class="token operator" style="color:rgb(0, 0, 0)">=</span><span class="token plain"> </span><span class="token function" style="color:rgb(0, 0, 255)">useAnalyticsQuery</span><span class="token punctuation" style="color:rgb(4, 81, 165)">(</span><span class="token string" style="color:rgb(163, 21, 21)">"users_list"</span><span class="token punctuation" style="color:rgb(4, 81, 165)">,</span><span class="token plain"> </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"> status</span><span class="token operator" style="color:rgb(0, 0, 0)">:</span><span class="token plain"> sql</span><span class="token punctuation" style="color:rgb(4, 81, 165)">.</span><span class="token method function property-access" style="color:rgb(0, 0, 255)">string</span><span class="token punctuation" style="color:rgb(4, 81, 165)">(</span><span class="token string" style="color:rgb(163, 21, 21)">"active"</span><span class="token punctuation" style="color:rgb(4, 81, 165)">)</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"> limit</span><span class="token operator" style="color:rgb(0, 0, 0)">:</span><span class="token plain"> sql</span><span class="token punctuation" style="color:rgb(4, 81, 165)">.</span><span class="token method function property-access" style="color:rgb(0, 0, 255)">number</span><span class="token punctuation" style="color:rgb(4, 81, 165)">(</span><span class="token number" style="color:rgb(9, 134, 88)">50</span><span class="token punctuation" style="color:rgb(4, 81, 165)">)</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 punctuation" style="color:rgb(4, 81, 165)">)</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" style="display:inline-block"></span><br></span><span class="token-line" style="color:#000000"><span class="token plain"></span><span class="token comment" style="color:rgb(0, 128, 0)">// TypeScript knows the shape of the result rows</span><span class="token plain"></span><br></span><span class="token-line" style="color:#000000"><span class="token plain">data</span><span class="token operator" style="color:rgb(0, 0, 0)">?.</span><span class="token method function property-access" style="color:rgb(0, 0, 255)">forEach</span><span class="token punctuation" style="color:rgb(4, 81, 165)">(</span><span class="token plain">row </span><span class="token arrow operator" style="color:rgb(0, 0, 0)">=></span><span class="token plain"> </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 console class-name" style="color:rgb(38, 127, 153)">console</span><span class="token punctuation" style="color:rgb(4, 81, 165)">.</span><span class="token method function property-access" style="color:rgb(0, 0, 255)">log</span><span class="token punctuation" style="color:rgb(4, 81, 165)">(</span><span class="token plain">row</span><span class="token punctuation" style="color:rgb(4, 81, 165)">.</span><span class="token property-access">email</span><span class="token punctuation" style="color:rgb(4, 81, 165)">)</span><span class="token punctuation" style="color:rgb(4, 81, 165)">;</span><span class="token plain"> </span><span class="token comment" style="color:rgb(0, 128, 0)">// ✓ autocomplete works</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 punctuation" style="color:rgb(4, 81, 165)">)</span><span class="token punctuation" style="color:rgb(4, 81, 165)">;</span><br></span></code></pre></div></div>
|
|
59
|
-
<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>
|
|
60
|
-
<ul>
|
|
61
|
-
<li class=""><a class="" href="/appkit/docs/plugins/">Plugins</a> - Analytics plugin configuration</li>
|
|
62
|
-
<li class=""><a class="" href="/appkit/docs/api/appkit-ui">API Reference</a> - Complete UI components API documentation</li>
|
|
63
|
-
</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/development/type-generation.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/project-setup"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Project setup</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/appkit/docs/development/llm-guide"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">LLM Guide</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="#goal" class="table-of-contents__link toc-highlight">Goal</a></li><li><a href="#vite-plugin-appkittypesplugin" class="table-of-contents__link toc-highlight">Vite plugin: <code>appKitTypesPlugin</code></a><ul><li><a href="#configuration" class="table-of-contents__link toc-highlight">Configuration</a></li><li><a href="#example" class="table-of-contents__link toc-highlight">Example</a></li><li><a href="#important-nuance" class="table-of-contents__link toc-highlight">Important nuance</a></li></ul></li><li><a href="#cli-npx-databricksappkit-generate-types" class="table-of-contents__link toc-highlight">CLI: <code>npx @databricks/appkit generate-types</code></a><ul><li><a href="#examples" class="table-of-contents__link toc-highlight">Examples</a></li></ul></li><li><a href="#how-it-works" class="table-of-contents__link toc-highlight">How it works</a></li><li><a href="#using-generated-types" class="table-of-contents__link toc-highlight">Using generated types</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>
|
|
64
|
-
</body>
|
|
65
|
-
</html>
|
package/docs/docs/development.md
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
# Development
|
|
2
|
-
|
|
3
|
-
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.
|
|
4
|
-
|
|
5
|
-
## Prerequisites[](#prerequisites "Direct link to Prerequisites")
|
|
6
|
-
|
|
7
|
-
* [Node.js](https://nodejs.org) v22+ environment with `npm`
|
|
8
|
-
* Databricks CLI (v0.287.0 or higher): install and configure it according to the [official tutorial](https://docs.databricks.com/aws/en/dev-tools/cli/tutorial).
|
|
9
|
-
* A new Databricks app with AppKit installed. See the [Quick start](/appkit/docs.md#quick-start) for more details.
|
|
10
|
-
|
|
11
|
-
## Development flows[](#development-flows "Direct link to Development flows")
|
|
12
|
-
|
|
13
|
-
There are multiple supported development flows available with AppKit:
|
|
14
|
-
|
|
15
|
-
1. **[Local development](/appkit/docs/development/local-development.md)**: Run the development server with hot reload for both UI and backend code. This is the default development flow and is suitable for most use cases.
|
|
16
|
-
2. **[AI-assisted development](/appkit/docs/development/ai-assisted-development.md)**: Use an AI coding assistant to explore data, run CLI commands, and scaffold your app interactively.
|
|
17
|
-
3. **[Remote Bridge](/appkit/docs/development/remote-bridge.md)**: Create a remote bridge to a deployed backend while keeping your queries and UI local. This is useful for testing against production data or debugging deployed backend code without redeploying your app.
|
|
18
|
-
|
|
19
|
-
## See also[](#see-also "Direct link to See also")
|
|
20
|
-
|
|
21
|
-
* [App management](/appkit/docs/app-management.md): Manage your AppKit application throughout its lifecycle using the Databricks CLI
|
|
22
|
-
* [Architecture](/appkit/docs/architecture.md): Learn about the architecture of AppKit
|
package/docs/docs/index.html
DELETED
|
@@ -1,58 +0,0 @@
|
|
|
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-index" 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">Getting started | 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/"><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="Getting started | AppKit"><meta data-rh="true" name="description" content="Learn how to get started with AppKit."><meta data-rh="true" property="og:description" content="Learn how to get started with 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/"><link data-rh="true" rel="alternate" href="https://databricks.github.io/appkit/docs/" hreflang="en"><link data-rh="true" rel="alternate" href="https://databricks.github.io/appkit/docs/" hreflang="x-default"><script data-rh="true" type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Getting started","item":"https://databricks.github.io/appkit/docs/"}]}</script><link rel="stylesheet" href="/appkit/assets/css/styles.36a38b99.css">
|
|
7
|
-
<script src="/appkit/assets/js/runtime~main.05f114de.js" defer="defer"></script>
|
|
8
|
-
<script src="/appkit/assets/js/main.215573eb.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 menu__link--active" aria-current="page" 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-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/plugins/"><span title="Plugins" class="categoryLinkLabel_ShmP">Plugins</span></a><button aria-label="Collapse sidebar category 'Plugins'" 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/plugins/server"><span title="Server plugin" class="linkLabel_hZzm">Server plugin</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/plugins/analytics"><span title="Analytics plugin" class="linkLabel_hZzm">Analytics plugin</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/plugins/lakebase"><span title="Lakebase plugin" class="linkLabel_hZzm">Lakebase plugin</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/plugins/execution-context"><span title="Execution context" class="linkLabel_hZzm">Execution context</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/plugins/plugin-management"><span title="Plugin management" class="linkLabel_hZzm">Plugin management</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/plugins/custom-plugins"><span title="Creating custom plugins" class="linkLabel_hZzm">Creating custom plugins</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/plugins/caching"><span title="Caching" class="linkLabel_hZzm">Caching</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/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 'Development'" 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/ai-assisted-development"><span title="AI-Assisted development" class="linkLabel_hZzm">AI-Assisted 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 'API reference'" 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">Getting started</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>Getting started</h1></header>
|
|
15
|
-
<p>Learn how to get started with AppKit.</p>
|
|
16
|
-
<!-- -->
|
|
17
|
-
<h2 class="anchor anchorTargetStickyNavbar_scV4" id="introduction">Introduction<a href="#introduction" class="hash-link" aria-label="Direct link to Introduction" title="Direct link to Introduction" translate="no"></a></h2>
|
|
18
|
-
<p>AppKit is a TypeScript SDK for building production-ready Databricks applications with a plugin-based architecture. It provides opinionated defaults, built-in observability, and seamless integration with Databricks services.</p>
|
|
19
|
-
<p>AppKit simplifies building data applications on Databricks by providing:</p>
|
|
20
|
-
<ul>
|
|
21
|
-
<li class=""><strong>Plugin architecture</strong>: Modular design with built-in server and analytics plugins</li>
|
|
22
|
-
<li class=""><strong>Type safety</strong>: End-to-end TypeScript with automatic query type generation</li>
|
|
23
|
-
<li class=""><strong>Production-ready features</strong>: Built-in caching, telemetry, retry logic, and error handling</li>
|
|
24
|
-
<li class=""><strong>Developer experience</strong>: Remote hot reload, file-based queries, optimized for AI-assisted development</li>
|
|
25
|
-
<li class=""><strong>Databricks native</strong>: Seamless integration with SQL Warehouses, Unity Catalog, and other workspace resources</li>
|
|
26
|
-
</ul>
|
|
27
|
-
<h2 class="anchor anchorTargetStickyNavbar_scV4" id="prerequisites">Prerequisites<a href="#prerequisites" class="hash-link" aria-label="Direct link to Prerequisites" title="Direct link to Prerequisites" translate="no"></a></h2>
|
|
28
|
-
<ul>
|
|
29
|
-
<li class=""><a href="https://nodejs.org" target="_blank" rel="noopener noreferrer" class="">Node.js</a> v22+ environment with <code>npm</code></li>
|
|
30
|
-
<li class="">Databricks CLI (v0.287.0 or higher): install and configure it according to the <a href="https://docs.databricks.com/aws/en/dev-tools/cli/tutorial" target="_blank" rel="noopener noreferrer" class="">official tutorial</a>.</li>
|
|
31
|
-
</ul>
|
|
32
|
-
<h2 class="anchor anchorTargetStickyNavbar_scV4" id="quick-start">Quick start<a href="#quick-start" class="hash-link" aria-label="Direct link to Quick start" title="Direct link to Quick start" translate="no"></a></h2>
|
|
33
|
-
<p>Learn how to create and deploy a sample Databricks application that uses AppKit with the Databricks CLI.</p>
|
|
34
|
-
<h3 class="anchor anchorTargetStickyNavbar_scV4" id="bootstrap-a-new-databricks-app">Bootstrap a new Databricks app<a href="#bootstrap-a-new-databricks-app" class="hash-link" aria-label="Direct link to Bootstrap a new Databricks app" title="Direct link to Bootstrap a new Databricks app" translate="no"></a></h3>
|
|
35
|
-
<p>Run the following command to bootstrap the new Databricks app with AppKit:</p>
|
|
36
|
-
<div class="language-sh codeBlockContainer_crgn theme-code-block" style="--prism-color:#000000;--prism-background-color:#ffffff"><div class="codeBlockContent__42J"><pre tabindex="0" class="prism-code language-sh 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 apps init</span><br></span></code></pre></div></div>
|
|
37
|
-
<p>Follow the prompts to bootstrap the app codebase in the current working directory.</p>
|
|
38
|
-
<p>The command will guide you through the process of:</p>
|
|
39
|
-
<ul>
|
|
40
|
-
<li class="">creating a new Databricks app</li>
|
|
41
|
-
<li class="">scaffolding the app codebase with selected features</li>
|
|
42
|
-
<li class="">installing dependencies</li>
|
|
43
|
-
<li class="">(optionally) deploying the app to Databricks</li>
|
|
44
|
-
<li class="">(optionally) running the app in development mode</li>
|
|
45
|
-
</ul>
|
|
46
|
-
<p>Learn more about the various <a class="" href="/appkit/docs/development/">development flows</a> available with AppKit.</p>
|
|
47
|
-
<h3 class="anchor anchorTargetStickyNavbar_scV4" id="deploy-the-app-to-databricks">Deploy the app to Databricks<a href="#deploy-the-app-to-databricks" class="hash-link" aria-label="Direct link to Deploy the app to Databricks" title="Direct link to Deploy the app to Databricks" translate="no"></a></h3>
|
|
48
|
-
<p>Run the following command to deploy the app to Databricks:</p>
|
|
49
|
-
<div class="language-sh codeBlockContainer_crgn theme-code-block" style="--prism-color:#000000;--prism-background-color:#ffffff"><div class="codeBlockContent__42J"><pre tabindex="0" class="prism-code language-sh 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 apps deploy</span><br></span></code></pre></div></div>
|
|
50
|
-
<p>This deploys the sample app to Databricks.</p>
|
|
51
|
-
<h2 class="anchor anchorTargetStickyNavbar_scV4" id="next-steps">Next steps<a href="#next-steps" class="hash-link" aria-label="Direct link to Next steps" title="Direct link to Next steps" translate="no"></a></h2>
|
|
52
|
-
<ul>
|
|
53
|
-
<li class=""><strong><a class="" href="/appkit/docs/app-management">App management</a></strong>: Manage your AppKit application throughout its lifecycle using the Databricks CLI</li>
|
|
54
|
-
<li class=""><strong><a class="" href="/appkit/docs/api/appkit/">API reference</a></strong>: Explore the complete API documentation</li>
|
|
55
|
-
<li class=""><strong><a class="" href="/appkit/docs/core-principles">Core concepts</a></strong>: Learn about AppKit's design principles and architecture</li>
|
|
56
|
-
</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/index.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--next" href="/appkit/docs/app-management"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">App management</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="#introduction" class="table-of-contents__link toc-highlight">Introduction</a></li><li><a href="#prerequisites" class="table-of-contents__link toc-highlight">Prerequisites</a></li><li><a href="#quick-start" class="table-of-contents__link toc-highlight">Quick start</a><ul><li><a href="#bootstrap-a-new-databricks-app" class="table-of-contents__link toc-highlight">Bootstrap a new Databricks app</a></li><li><a href="#deploy-the-app-to-databricks" class="table-of-contents__link toc-highlight">Deploy the app to Databricks</a></li></ul></li><li><a href="#next-steps" class="table-of-contents__link toc-highlight">Next steps</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>
|
|
57
|
-
</body>
|
|
58
|
-
</html>
|
|
@@ -1,53 +0,0 @@
|
|
|
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-plugins/analytics" 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">Analytics plugin | 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/plugins/analytics"><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="Analytics plugin | AppKit"><meta data-rh="true" name="description" content="Enables SQL query execution against Databricks SQL Warehouses."><meta data-rh="true" property="og:description" content="Enables SQL query execution against Databricks SQL Warehouses."><link data-rh="true" rel="icon" href="/appkit/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://databricks.github.io/appkit/docs/plugins/analytics"><link data-rh="true" rel="alternate" href="https://databricks.github.io/appkit/docs/plugins/analytics" hreflang="en"><link data-rh="true" rel="alternate" href="https://databricks.github.io/appkit/docs/plugins/analytics" hreflang="x-default"><script data-rh="true" type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Plugins","item":"https://databricks.github.io/appkit/docs/plugins/"},{"@type":"ListItem","position":2,"name":"Analytics plugin","item":"https://databricks.github.io/appkit/docs/plugins/analytics"}]}</script><link rel="stylesheet" href="/appkit/assets/css/styles.36a38b99.css">
|
|
7
|
-
<script src="/appkit/assets/js/runtime~main.05f114de.js" defer="defer"></script>
|
|
8
|
-
<script src="/appkit/assets/js/main.215573eb.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-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 menu__link--active" href="/appkit/docs/plugins/"><span title="Plugins" class="categoryLinkLabel_ShmP">Plugins</span></a><button aria-label="Collapse sidebar category 'Plugins'" 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/plugins/server"><span title="Server plugin" class="linkLabel_hZzm">Server plugin</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/appkit/docs/plugins/analytics"><span title="Analytics plugin" class="linkLabel_hZzm">Analytics plugin</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/plugins/lakebase"><span title="Lakebase plugin" class="linkLabel_hZzm">Lakebase plugin</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/plugins/execution-context"><span title="Execution context" class="linkLabel_hZzm">Execution context</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/plugins/plugin-management"><span title="Plugin management" class="linkLabel_hZzm">Plugin management</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/plugins/custom-plugins"><span title="Creating custom plugins" class="linkLabel_hZzm">Creating custom plugins</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/plugins/caching"><span title="Caching" class="linkLabel_hZzm">Caching</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/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 'Development'" 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/ai-assisted-development"><span title="AI-Assisted development" class="linkLabel_hZzm">AI-Assisted 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 'API reference'" 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"><a class="breadcrumbs__link" href="/appkit/docs/plugins/"><span>Plugins</span></a></li><li class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link">Analytics plugin</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>Analytics plugin</h1></header>
|
|
15
|
-
<p>Enables SQL query execution against Databricks SQL Warehouses.</p>
|
|
16
|
-
<p><strong>Key features:</strong></p>
|
|
17
|
-
<ul>
|
|
18
|
-
<li class="">File-based SQL queries with automatic type generation</li>
|
|
19
|
-
<li class="">Parameterized queries with type-safe <a class="" href="/appkit/docs/api/appkit/Variable.sql">SQL helpers</a></li>
|
|
20
|
-
<li class="">JSON and Arrow format support</li>
|
|
21
|
-
<li class="">Built-in caching and retry logic</li>
|
|
22
|
-
<li class="">Server-Sent Events (SSE) streaming</li>
|
|
23
|
-
</ul>
|
|
24
|
-
<h2 class="anchor anchorTargetStickyNavbar_scV4" id="basic-usage">Basic usage<a href="#basic-usage" class="hash-link" aria-label="Direct link to Basic usage" title="Direct link to Basic usage" translate="no"></a></h2>
|
|
25
|
-
<div class="language-ts codeBlockContainer_crgn theme-code-block" style="--prism-color:#000000;--prism-background-color:#ffffff"><div class="codeBlockContent__42J"><pre tabindex="0" class="prism-code language-ts codeBlock_CnLD thin-scrollbar" style="color:#000000;background-color:#ffffff"><code class="codeBlockLines_sJEA"><span class="token-line" style="color:#000000"><span class="token keyword" style="color:rgb(0, 0, 255)">import</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(4, 81, 165)">{</span><span class="token plain"> analytics</span><span class="token punctuation" style="color:rgb(4, 81, 165)">,</span><span class="token plain"> createApp</span><span class="token punctuation" style="color:rgb(4, 81, 165)">,</span><span class="token plain"> server </span><span class="token punctuation" style="color:rgb(4, 81, 165)">}</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(0, 0, 255)">from</span><span class="token plain"> </span><span class="token string" style="color:rgb(163, 21, 21)">"@databricks/appkit"</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" style="display:inline-block"></span><br></span><span class="token-line" style="color:#000000"><span class="token plain"></span><span class="token keyword" style="color:rgb(0, 0, 255)">await</span><span class="token plain"> </span><span class="token function" style="color:rgb(0, 0, 255)">createApp</span><span class="token punctuation" style="color:rgb(4, 81, 165)">(</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"> plugins</span><span class="token operator" style="color:rgb(0, 0, 0)">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(4, 81, 165)">[</span><span class="token function" style="color:rgb(0, 0, 255)">server</span><span class="token punctuation" style="color:rgb(4, 81, 165)">(</span><span class="token punctuation" style="color:rgb(4, 81, 165)">)</span><span class="token punctuation" style="color:rgb(4, 81, 165)">,</span><span class="token plain"> </span><span class="token function" style="color:rgb(0, 0, 255)">analytics</span><span class="token punctuation" style="color:rgb(4, 81, 165)">(</span><span class="token punctuation" style="color:rgb(4, 81, 165)">{</span><span class="token punctuation" style="color:rgb(4, 81, 165)">}</span><span class="token punctuation" style="color:rgb(4, 81, 165)">)</span><span class="token punctuation" style="color:rgb(4, 81, 165)">]</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 punctuation" style="color:rgb(4, 81, 165)">)</span><span class="token punctuation" style="color:rgb(4, 81, 165)">;</span><br></span></code></pre></div></div>
|
|
26
|
-
<h2 class="anchor anchorTargetStickyNavbar_scV4" id="where-queries-live">Where queries live<a href="#where-queries-live" class="hash-link" aria-label="Direct link to Where queries live" title="Direct link to Where queries live" translate="no"></a></h2>
|
|
27
|
-
<ul>
|
|
28
|
-
<li class="">Put <code>.sql</code> files in <code>config/queries/</code></li>
|
|
29
|
-
<li class="">Query key is the filename without <code>.sql</code> (e.g. <code>spend_summary.sql</code> → <code>"spend_summary"</code>)</li>
|
|
30
|
-
</ul>
|
|
31
|
-
<h2 class="anchor anchorTargetStickyNavbar_scV4" id="sql-parameters">SQL parameters<a href="#sql-parameters" class="hash-link" aria-label="Direct link to SQL parameters" title="Direct link to SQL parameters" translate="no"></a></h2>
|
|
32
|
-
<p>Use <code>:paramName</code> placeholders and optionally annotate parameter types using SQL comments:</p>
|
|
33
|
-
<div class="language-sql codeBlockContainer_crgn theme-code-block" style="--prism-color:#000000;--prism-background-color:#ffffff"><div class="codeBlockContent__42J"><pre tabindex="0" class="prism-code language-sql codeBlock_CnLD thin-scrollbar" style="color:#000000;background-color:#ffffff"><code class="codeBlockLines_sJEA"><span class="token-line" style="color:#000000"><span class="token comment" style="color:rgb(0, 128, 0)">-- @param startDate DATE</span><span class="token plain"></span><br></span><span class="token-line" style="color:#000000"><span class="token plain"></span><span class="token comment" style="color:rgb(0, 128, 0)">-- @param endDate DATE</span><span class="token plain"></span><br></span><span class="token-line" style="color:#000000"><span class="token plain"></span><span class="token comment" style="color:rgb(0, 128, 0)">-- @param limit NUMERIC</span><span class="token plain"></span><br></span><span class="token-line" style="color:#000000"><span class="token plain"></span><span class="token keyword" style="color:rgb(0, 0, 255)">SELECT</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(4, 81, 165)">.</span><span class="token punctuation" style="color:rgb(4, 81, 165)">.</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 keyword" style="color:rgb(0, 0, 255)">WHERE</span><span class="token plain"> usage_date </span><span class="token operator" style="color:rgb(0, 0, 0)">BETWEEN</span><span class="token plain"> :startDate </span><span class="token operator" style="color:rgb(0, 0, 0)">AND</span><span class="token plain"> :endDate</span><br></span><span class="token-line" style="color:#000000"><span class="token plain"></span><span class="token keyword" style="color:rgb(0, 0, 255)">LIMIT</span><span class="token plain"> :</span><span class="token keyword" style="color:rgb(0, 0, 255)">limit</span><br></span></code></pre></div></div>
|
|
34
|
-
<p><strong>Supported <code>-- @param</code> types</strong> (case-insensitive):</p>
|
|
35
|
-
<ul>
|
|
36
|
-
<li class=""><code>STRING</code>, <code>NUMERIC</code>, <code>BOOLEAN</code>, <code>DATE</code>, <code>TIMESTAMP</code>, <code>BINARY</code></li>
|
|
37
|
-
</ul>
|
|
38
|
-
<h2 class="anchor anchorTargetStickyNavbar_scV4" id="server-injected-parameters">Server-injected parameters<a href="#server-injected-parameters" class="hash-link" aria-label="Direct link to Server-injected parameters" title="Direct link to Server-injected parameters" translate="no"></a></h2>
|
|
39
|
-
<p><code>:workspaceId</code> is <strong>injected by the server</strong> and <strong>must not</strong> be annotated:</p>
|
|
40
|
-
<div class="language-sql codeBlockContainer_crgn theme-code-block" style="--prism-color:#000000;--prism-background-color:#ffffff"><div class="codeBlockContent__42J"><pre tabindex="0" class="prism-code language-sql codeBlock_CnLD thin-scrollbar" style="color:#000000;background-color:#ffffff"><code class="codeBlockLines_sJEA"><span class="token-line" style="color:#000000"><span class="token keyword" style="color:rgb(0, 0, 255)">WHERE</span><span class="token plain"> workspace_id </span><span class="token operator" style="color:rgb(0, 0, 0)">=</span><span class="token plain"> :workspaceId</span><br></span></code></pre></div></div>
|
|
41
|
-
<h2 class="anchor anchorTargetStickyNavbar_scV4" id="http-endpoints">HTTP endpoints<a href="#http-endpoints" class="hash-link" aria-label="Direct link to HTTP endpoints" title="Direct link to HTTP endpoints" translate="no"></a></h2>
|
|
42
|
-
<p>The analytics plugin exposes these endpoints (mounted under <code>/api/analytics</code>):</p>
|
|
43
|
-
<ul>
|
|
44
|
-
<li class=""><code>POST /api/analytics/query/:query_key</code></li>
|
|
45
|
-
<li class=""><code>GET /api/analytics/arrow-result/:jobId</code></li>
|
|
46
|
-
</ul>
|
|
47
|
-
<h2 class="anchor anchorTargetStickyNavbar_scV4" id="format-options">Format options<a href="#format-options" class="hash-link" aria-label="Direct link to Format options" title="Direct link to Format options" translate="no"></a></h2>
|
|
48
|
-
<ul>
|
|
49
|
-
<li class=""><code>format: "JSON"</code> (default) returns JSON rows</li>
|
|
50
|
-
<li class=""><code>format: "ARROW"</code> returns an Arrow "statement_id" payload over SSE, then the client fetches binary Arrow from <code>/api/analytics/arrow-result/:jobId</code></li>
|
|
51
|
-
</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/plugins/analytics.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/plugins/server"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Server plugin</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/appkit/docs/plugins/lakebase"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Lakebase plugin</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="#basic-usage" class="table-of-contents__link toc-highlight">Basic usage</a></li><li><a href="#where-queries-live" class="table-of-contents__link toc-highlight">Where queries live</a></li><li><a href="#sql-parameters" class="table-of-contents__link toc-highlight">SQL parameters</a></li><li><a href="#server-injected-parameters" class="table-of-contents__link toc-highlight">Server-injected parameters</a></li><li><a href="#http-endpoints" class="table-of-contents__link toc-highlight">HTTP endpoints</a></li><li><a href="#format-options" class="table-of-contents__link toc-highlight">Format options</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>
|
|
52
|
-
</body>
|
|
53
|
-
</html>
|