@databricks/appkit-ui 0.12.0 → 0.12.2
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/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/table/data-table.d.ts.map +1 -1
- 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 +2 -2
- package/dist/react/ui/breadcrumb.d.ts +8 -8
- package/dist/react/ui/button-group.d.ts +4 -4
- package/dist/react/ui/button.d.ts +2 -2
- 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 +19 -19
- package/dist/react/ui/chart.d.ts.map +1 -1
- 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/drawer.d.ts +11 -11
- package/dist/react/ui/drawer.d.ts.map +1 -1
- 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 +9 -9
- package/dist/react/ui/form.d.ts.map +1 -1
- 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 +41 -24
- package/dist/react/ui/sidebar.d.ts.map +1 -1
- package/dist/react/ui/sidebar.js.map +1 -1
- 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 +22 -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 +32 -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/{docs/api → api}/appkit-ui/ui/Sidebar.md +304 -37
- 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/development/ai-assisted-development.md +88 -0
- package/docs/{docs/development → development}/llm-guide.md +8 -7
- package/docs/{docs/development → development}/local-development.md +2 -2
- package/docs/{docs/development → development}/project-setup.md +11 -11
- 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/plugins/analytics.md +169 -0
- package/docs/{docs/plugins → plugins}/custom-plugins.md +6 -6
- package/docs/{docs/plugins → plugins}/server.md +1 -1
- package/docs/{docs/plugins.md → plugins.md} +2 -2
- package/{docs/docs.md → docs.md} +36 -5
- 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/ai-assisted-development.md +0 -26
- 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/analytics.md +0 -66
- 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/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
|
@@ -20,7 +20,7 @@ The backend SDK that provides the plugin architecture and core functionality. It
|
|
|
20
20
|
* Cache management and streaming capabilities
|
|
21
21
|
* Type generation for SQL queries
|
|
22
22
|
|
|
23
|
-
See the [Plugins](
|
|
23
|
+
See the [Plugins](./docs/plugins.md) and [API reference](./docs/api/appkit.md) documentation for detailed information.
|
|
24
24
|
|
|
25
25
|
### @databricks/appkit-ui[](#databricksappkit-ui "Direct link to @databricks/appkit-ui")
|
|
26
26
|
|
|
@@ -31,7 +31,7 @@ A React UI library with pre-built components optimized for data applications:
|
|
|
31
31
|
* Data visualization components
|
|
32
32
|
* Type-safe integration with backend queries
|
|
33
33
|
|
|
34
|
-
See the [API reference](
|
|
34
|
+
See the [API reference](./docs/api/appkit-ui.md) for component documentation.
|
|
35
35
|
|
|
36
36
|
## Application layers[](#application-layers "Direct link to Application layers")
|
|
37
37
|
|
|
@@ -63,7 +63,7 @@ Integration with Databricks services:
|
|
|
63
63
|
|
|
64
64
|
## See also[](#see-also "Direct link to See also")
|
|
65
65
|
|
|
66
|
-
* [Plugins](
|
|
67
|
-
* [API reference](
|
|
68
|
-
* [Development](
|
|
69
|
-
* [Core Principles](
|
|
66
|
+
* [Plugins](./docs/plugins.md): Deep dive into the plugin system
|
|
67
|
+
* [API reference](./docs/api.md): Complete API documentation
|
|
68
|
+
* [Development](./docs/development.md): Explore development workflows
|
|
69
|
+
* [Core Principles](./docs/core-principles.md): Learn about AppKit's design philosophy
|
|
@@ -146,5 +146,5 @@ For advanced Databricks Apps configuration (authorization, networking, resource
|
|
|
146
146
|
|
|
147
147
|
## See also[](#see-also "Direct link to See also")
|
|
148
148
|
|
|
149
|
-
* [App management](
|
|
150
|
-
* [Plugins](
|
|
149
|
+
* [App management](./docs/app-management.md) - Deploying and managing apps
|
|
150
|
+
* [Plugins](./docs/plugins.md) - Plugin configuration options
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
# AI-Assisted development
|
|
2
|
+
|
|
3
|
+
## Prerequisites[](#prerequisites "Direct link to Prerequisites")
|
|
4
|
+
|
|
5
|
+
* [Node.js](https://nodejs.org) v22+ environment with `npm`
|
|
6
|
+
* 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).
|
|
7
|
+
* A new Databricks app with AppKit installed. See [Bootstrap a new Databricks app](./docs.md#quick-start-options) for more details.
|
|
8
|
+
|
|
9
|
+
AppKit integrates with AI coding assistants through the Agent Skills.
|
|
10
|
+
|
|
11
|
+
## Installing Agent Skills[](#installing-agent-skills "Direct link to Installing Agent Skills")
|
|
12
|
+
|
|
13
|
+
To install the Databricks Agent Skills for your preferred AI assistant, run:
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
databricks experimental aitools skills install
|
|
17
|
+
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Skills capabilities[](#skills-capabilities "Direct link to Skills capabilities")
|
|
21
|
+
|
|
22
|
+
The Agent Skills expose the following capabilities for AI assistants:
|
|
23
|
+
|
|
24
|
+
* **Data exploration**: Query catalogs, schemas, tables, and execute SQL
|
|
25
|
+
* **CLI command execution**: Deploy and manage apps, and run other workspace operations
|
|
26
|
+
* **Workspace resource discovery**: Inspect and navigate workspace resources
|
|
27
|
+
|
|
28
|
+
## Example prompts[](#example-prompts "Direct link to Example prompts")
|
|
29
|
+
|
|
30
|
+
Here are some basic examples you can use to explore your app and workspace:
|
|
31
|
+
|
|
32
|
+
1. Creating a new basic app
|
|
33
|
+
|
|
34
|
+
```text
|
|
35
|
+
Create a new Databricks app that displays a dashboard of the users table in main.default.
|
|
36
|
+
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
1. Introspecting a table schema
|
|
40
|
+
|
|
41
|
+
```text
|
|
42
|
+
Show me the schema of the users table in main.default.
|
|
43
|
+
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
1. Creating a new query
|
|
47
|
+
|
|
48
|
+
```text
|
|
49
|
+
Create a new query to find users created in the last 7 days.
|
|
50
|
+
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
1. Deploying an app
|
|
54
|
+
|
|
55
|
+
```text
|
|
56
|
+
Deploy the app to Databricks with the name "my-app".
|
|
57
|
+
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Possibilities are virtually endless. Ask your AI assistant to help you with your app and workspace.
|
|
61
|
+
|
|
62
|
+
## LLM resources[](#llm-resources "Direct link to LLM resources")
|
|
63
|
+
|
|
64
|
+
AppKit provides specialized guidance files to help AI coding assistants work more effectively with the projects.
|
|
65
|
+
|
|
66
|
+
If you're building applications using AppKit packages, reference the `llms.txt` file. There are two ways to access the documentation:
|
|
67
|
+
|
|
68
|
+
1. Use the [hosted llms.txt file](https://databricks.github.io/appkit/llms.txt)
|
|
69
|
+
2. Use the `npx @databricks/appkit docs` command to view the documentation in the terminal.
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
npx @databricks/appkit docs # documentation index with section overview
|
|
73
|
+
npx @databricks/appkit docs <query> # for specific documentation file or section
|
|
74
|
+
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
Examples of documentation queries:
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
npx @databricks/appkit docs "appkit-ui API reference" # view a specific section
|
|
81
|
+
npx @databricks/appkit docs --full # full index with all API entries
|
|
82
|
+
npx @databricks/appkit docs ./docs.md # view a specific documentation file
|
|
83
|
+
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
## See more[](#see-more "Direct link to See more")
|
|
87
|
+
|
|
88
|
+
To learn more about Agent Skills, see the [Agent Skills repository](https://github.com/databricks/databricks-agent-skills).
|
|
@@ -46,17 +46,18 @@ View API reference (docs only, NOT for scaffolding):
|
|
|
46
46
|
|
|
47
47
|
```bash
|
|
48
48
|
# ONLY for viewing documentation - do NOT use for init/scaffold
|
|
49
|
-
npx @databricks/appkit docs <
|
|
49
|
+
npx @databricks/appkit docs <query>
|
|
50
50
|
|
|
51
51
|
```
|
|
52
52
|
|
|
53
|
-
**IMPORTANT**: ALWAYS run `npx @databricks/appkit docs` (no
|
|
53
|
+
**IMPORTANT**: ALWAYS run `npx @databricks/appkit docs` (no query) FIRST to see the documentation index. DO NOT guess paths - use the index to find correct paths.
|
|
54
54
|
|
|
55
|
-
Examples
|
|
55
|
+
Examples:
|
|
56
56
|
|
|
57
|
-
*
|
|
58
|
-
*
|
|
59
|
-
*
|
|
57
|
+
* Documentation index: `npx @databricks/appkit docs`
|
|
58
|
+
* View a section: `npx @databricks/appkit docs "appkit-ui API reference"`
|
|
59
|
+
* Full index (all API entries): `npx @databricks/appkit docs --full`
|
|
60
|
+
* View specific doc: `npx @databricks/appkit docs ./docs/plugins/analytics.md`
|
|
60
61
|
|
|
61
62
|
## LLM checklist (before finalizing code)[](#llm-checklist-before-finalizing-code "Direct link to LLM checklist (before finalizing code)")
|
|
62
63
|
|
|
@@ -64,7 +65,7 @@ Examples of known paths:
|
|
|
64
65
|
|
|
65
66
|
* `package.json` has `"type": "module"`
|
|
66
67
|
* `tsx` is in devDependencies for dev server
|
|
67
|
-
* `dev` script uses `NODE_ENV=development tsx watch server/
|
|
68
|
+
* `dev` script uses `NODE_ENV=development tsx watch server/server.ts`
|
|
68
69
|
* `client/index.html` exists with `<div id="root"></div>` and script pointing to `client/src/main.tsx`
|
|
69
70
|
|
|
70
71
|
### Backend[](#backend "Direct link to Backend")
|
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
|
|
5
5
|
* [Node.js](https://nodejs.org) v22+ environment with `npm`
|
|
6
6
|
* 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).
|
|
7
|
-
* A new Databricks app with AppKit installed. See
|
|
7
|
+
* A new Databricks app with AppKit installed. See [Bootstrap a new Databricks app](./docs.md#quick-start-options) for more details.
|
|
8
8
|
|
|
9
|
-
Once your app is bootstrapped according to the [
|
|
9
|
+
Once your app is bootstrapped according to the [Manual quick start](./docs.md#manual-quick-start) guide, you can start the development server with hot reload for both UI and backend code.
|
|
10
10
|
|
|
11
11
|
In the application root directory, run the following command to start the development server:
|
|
12
12
|
|
|
@@ -9,7 +9,7 @@ Recommended structure (client/server split):
|
|
|
9
9
|
```text
|
|
10
10
|
my-app/
|
|
11
11
|
├── server/
|
|
12
|
-
│ ├──
|
|
12
|
+
│ ├── server.ts # backend entry point (AppKit)
|
|
13
13
|
│ └── .env # optional local dev env vars (do not commit)
|
|
14
14
|
├── client/
|
|
15
15
|
│ ├── index.html
|
|
@@ -44,9 +44,9 @@ The AppKit `server()` plugin automatically serves:
|
|
|
44
44
|
"version": "0.0.0",
|
|
45
45
|
"type": "module",
|
|
46
46
|
"scripts": {
|
|
47
|
-
"dev": "NODE_ENV=development tsx watch server/
|
|
47
|
+
"dev": "NODE_ENV=development tsx watch server/server.ts",
|
|
48
48
|
"build": "npm run build:server && npm run build:client",
|
|
49
|
-
"build:server": "tsdown --out-dir build server/
|
|
49
|
+
"build:server": "tsdown --out-dir build server/server.ts",
|
|
50
50
|
"build:client": "tsc -b && vite build --config client/vite.config.ts",
|
|
51
51
|
"start": "node build/index.mjs"
|
|
52
52
|
},
|
|
@@ -149,7 +149,7 @@ export default defineConfig({
|
|
|
149
149
|
|
|
150
150
|
```
|
|
151
151
|
|
|
152
|
-
### `server/
|
|
152
|
+
### `server/server.ts`[](#serverserverts "Direct link to serverserverts")
|
|
153
153
|
|
|
154
154
|
```ts
|
|
155
155
|
import { createApp, server } from "@databricks/appkit";
|
|
@@ -193,7 +193,7 @@ If you don't already have a `client/` folder, create one and move your Vite app
|
|
|
193
193
|
* Move `vite.config.ts` → `client/vite.config.ts`
|
|
194
194
|
* Move `src/` → `client/src/`
|
|
195
195
|
|
|
196
|
-
### 2. Create `server/
|
|
196
|
+
### 2. Create `server/server.ts` (New File)[](#2-create-serverserverts-new-file "Direct link to 2-create-serverserverts-new-file")
|
|
197
197
|
|
|
198
198
|
```ts
|
|
199
199
|
import { createApp, server } from "@databricks/appkit";
|
|
@@ -209,9 +209,9 @@ await createApp({
|
|
|
209
209
|
```json
|
|
210
210
|
{
|
|
211
211
|
"scripts": {
|
|
212
|
-
"dev": "NODE_ENV=development tsx watch server/
|
|
212
|
+
"dev": "NODE_ENV=development tsx watch server/server.ts",
|
|
213
213
|
"build": "npm run build:server && npm run build:client",
|
|
214
|
-
"build:server": "tsdown --out-dir build server/
|
|
214
|
+
"build:server": "tsdown --out-dir build server/server.ts",
|
|
215
215
|
"build:client": "tsc -b && vite build --config client/vite.config.ts",
|
|
216
216
|
"start": "node build/index.mjs"
|
|
217
217
|
}
|
|
@@ -228,7 +228,7 @@ AppKit's server plugin will automatically serve your Vite app in dev mode and `c
|
|
|
228
228
|
To add SQL query execution capabilities:
|
|
229
229
|
|
|
230
230
|
```ts
|
|
231
|
-
// server/
|
|
231
|
+
// server/server.ts
|
|
232
232
|
import { createApp, server, analytics } from "@databricks/appkit";
|
|
233
233
|
|
|
234
234
|
await createApp({
|
|
@@ -241,6 +241,6 @@ Then create `config/queries/` and add your `.sql` files.
|
|
|
241
241
|
|
|
242
242
|
## See also[](#see-also "Direct link to See also")
|
|
243
243
|
|
|
244
|
-
* [Local development](
|
|
245
|
-
* [Configuration](
|
|
246
|
-
* [Plugins](
|
|
244
|
+
* [Local development](./docs/development/local-development.md) - Running the dev server
|
|
245
|
+
* [Configuration](./docs/configuration.md) - Environment variables
|
|
246
|
+
* [Plugins](./docs/plugins.md) - Plugin configuration
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
* [Node.js](https://nodejs.org) v22+ environment with `npm`
|
|
6
6
|
* 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).
|
|
7
|
-
* A new Databricks app with AppKit installed. See
|
|
7
|
+
* A new Databricks app with AppKit installed. See [Bootstrap a new Databricks app](./docs.md#quick-start-options) for more details.
|
|
8
8
|
|
|
9
9
|
Remote bridge allows you to develop against a deployed backend while keeping your UI and queries local. This is useful for testing against production data or debugging deployed backend code without redeploying your app.
|
|
10
10
|
|
|
@@ -106,5 +106,5 @@ data?.forEach(row => {
|
|
|
106
106
|
|
|
107
107
|
## See also[](#see-also "Direct link to See also")
|
|
108
108
|
|
|
109
|
-
* [Plugins](
|
|
110
|
-
* [API Reference](
|
|
109
|
+
* [Plugins](./docs/plugins/analytics.md) - Analytics plugin configuration
|
|
110
|
+
* [API Reference](./docs/api/appkit-ui.md) - Complete UI components API documentation
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Development
|
|
2
|
+
|
|
3
|
+
AppKit provides multiple development workflows to suit different needs: local development with hot reload, AI-assisted development with Agent Skills, 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 [Bootstrap a new Databricks app](./docs.md#quick-start-options) 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](./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](./docs/development/ai-assisted-development.md)**: Use an AI coding assistant with Agent Skills to explore data, run CLI commands, and scaffold your app interactively.
|
|
17
|
+
3. **[Remote Bridge](./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](./docs/app-management.md): Manage your AppKit application throughout its lifecycle using the Databricks CLI
|
|
22
|
+
* [Architecture](./docs/architecture.md): Learn about the architecture of AppKit
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
# Analytics plugin
|
|
2
|
+
|
|
3
|
+
Enables SQL query execution against Databricks SQL Warehouses.
|
|
4
|
+
|
|
5
|
+
**Key features:**
|
|
6
|
+
|
|
7
|
+
* File-based SQL queries with automatic type generation
|
|
8
|
+
* Parameterized queries with type-safe [SQL helpers](./docs/api/appkit/Variable.sql.md)
|
|
9
|
+
* JSON and Arrow format support
|
|
10
|
+
* Built-in caching and retry logic
|
|
11
|
+
* Server-Sent Events (SSE) streaming
|
|
12
|
+
|
|
13
|
+
## Basic usage[](#basic-usage "Direct link to Basic usage")
|
|
14
|
+
|
|
15
|
+
```ts
|
|
16
|
+
import { analytics, createApp, server } from "@databricks/appkit";
|
|
17
|
+
|
|
18
|
+
await createApp({
|
|
19
|
+
plugins: [server(), analytics({})],
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Query files[](#query-files "Direct link to Query files")
|
|
25
|
+
|
|
26
|
+
* Put `.sql` files in `config/queries/`
|
|
27
|
+
* Query key is the filename without `.sql` (e.g. `spend_summary.sql` → `"spend_summary"`)
|
|
28
|
+
|
|
29
|
+
### Execution context[](#execution-context "Direct link to Execution context")
|
|
30
|
+
|
|
31
|
+
* `queryKey.sql` executes as **service principal** (shared cache)
|
|
32
|
+
* `queryKey.obo.sql` executes as **user** (OBO = on-behalf-of, per-user cache)
|
|
33
|
+
|
|
34
|
+
The execution context is determined by the SQL file name, not by the hook call.
|
|
35
|
+
|
|
36
|
+
## SQL parameters[](#sql-parameters "Direct link to SQL parameters")
|
|
37
|
+
|
|
38
|
+
Use `:paramName` placeholders and optionally annotate parameter types using SQL comments:
|
|
39
|
+
|
|
40
|
+
```sql
|
|
41
|
+
-- @param startDate DATE
|
|
42
|
+
-- @param endDate DATE
|
|
43
|
+
-- @param limit NUMERIC
|
|
44
|
+
SELECT ...
|
|
45
|
+
WHERE usage_date BETWEEN :startDate AND :endDate
|
|
46
|
+
LIMIT :limit
|
|
47
|
+
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
**Supported `-- @param` types** (case-insensitive):
|
|
51
|
+
|
|
52
|
+
* `STRING`, `NUMERIC`, `BOOLEAN`, `DATE`, `TIMESTAMP`, `BINARY`
|
|
53
|
+
|
|
54
|
+
## Server-injected parameters[](#server-injected-parameters "Direct link to Server-injected parameters")
|
|
55
|
+
|
|
56
|
+
`:workspaceId` is **injected by the server** and **must not** be annotated:
|
|
57
|
+
|
|
58
|
+
```sql
|
|
59
|
+
WHERE workspace_id = :workspaceId
|
|
60
|
+
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
## HTTP endpoints[](#http-endpoints "Direct link to HTTP endpoints")
|
|
64
|
+
|
|
65
|
+
The analytics plugin exposes these endpoints (mounted under `/api/analytics`):
|
|
66
|
+
|
|
67
|
+
* `POST /api/analytics/query/:query_key`
|
|
68
|
+
* `GET /api/analytics/arrow-result/:jobId`
|
|
69
|
+
|
|
70
|
+
## Format options[](#format-options "Direct link to Format options")
|
|
71
|
+
|
|
72
|
+
* `format: "JSON"` (default) returns JSON rows
|
|
73
|
+
* `format: "ARROW"` returns an Arrow "statement\_id" payload over SSE, then the client fetches binary Arrow from `/api/analytics/arrow-result/:jobId`
|
|
74
|
+
|
|
75
|
+
## Frontend usage[](#frontend-usage "Direct link to Frontend usage")
|
|
76
|
+
|
|
77
|
+
### useAnalyticsQuery[](#useanalyticsquery "Direct link to useAnalyticsQuery")
|
|
78
|
+
|
|
79
|
+
React hook that subscribes to an analytics query over SSE and returns its latest result.
|
|
80
|
+
|
|
81
|
+
```ts
|
|
82
|
+
import { useAnalyticsQuery } from "@databricks/appkit-ui/react";
|
|
83
|
+
|
|
84
|
+
const { data, loading, error } = useAnalyticsQuery(queryKey, parameters, options);
|
|
85
|
+
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
**Return type:**
|
|
89
|
+
|
|
90
|
+
```ts
|
|
91
|
+
{
|
|
92
|
+
data: T | null; // query result (typed array for JSON, TypedArrowTable for ARROW)
|
|
93
|
+
loading: boolean; // true while the query is executing
|
|
94
|
+
error: string | null; // error message, or null on success
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
**Options:**
|
|
100
|
+
|
|
101
|
+
| Option | Type | Default | Description |
|
|
102
|
+
| ------------------- | ------------------- | -------- | --------------------------------------- |
|
|
103
|
+
| `format` | `"JSON" \| "ARROW"` | `"JSON"` | Response format |
|
|
104
|
+
| `maxParametersSize` | `number` | `102400` | Max serialized parameters size in bytes |
|
|
105
|
+
| `autoStart` | `boolean` | `true` | Start query on mount |
|
|
106
|
+
|
|
107
|
+
**Example with loading/error/empty handling:**
|
|
108
|
+
|
|
109
|
+
```tsx
|
|
110
|
+
import { useAnalyticsQuery } from "@databricks/appkit-ui/react";
|
|
111
|
+
import { sql } from "@databricks/appkit-ui/js";
|
|
112
|
+
import { Skeleton } from "@databricks/appkit-ui";
|
|
113
|
+
|
|
114
|
+
function SpendTable() {
|
|
115
|
+
const params = useMemo(() => ({
|
|
116
|
+
startDate: sql.date("2025-01-01"),
|
|
117
|
+
endDate: sql.date("2025-12-31"),
|
|
118
|
+
}), []);
|
|
119
|
+
|
|
120
|
+
const { data, loading, error } = useAnalyticsQuery("spend_summary", params);
|
|
121
|
+
|
|
122
|
+
if (loading) return <Skeleton className="h-32 w-full" />;
|
|
123
|
+
if (error) return <div className="text-destructive">{error}</div>;
|
|
124
|
+
if (!data?.length) return <div className="text-muted-foreground">No results</div>;
|
|
125
|
+
|
|
126
|
+
return (
|
|
127
|
+
<ul>
|
|
128
|
+
{data.map((row) => (
|
|
129
|
+
<li key={row.id}>{row.name}: ${row.cost_usd}</li>
|
|
130
|
+
))}
|
|
131
|
+
</ul>
|
|
132
|
+
);
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
### Type-safe queries[](#type-safe-queries "Direct link to Type-safe queries")
|
|
138
|
+
|
|
139
|
+
Augment the `QueryRegistry` interface to get full type inference on parameters and results:
|
|
140
|
+
|
|
141
|
+
```ts
|
|
142
|
+
// config/appKitTypes.d.ts
|
|
143
|
+
declare module "@databricks/appkit-ui/react" {
|
|
144
|
+
interface QueryRegistry {
|
|
145
|
+
spend_summary: {
|
|
146
|
+
name: "spend_summary";
|
|
147
|
+
parameters: { startDate: string; endDate: string };
|
|
148
|
+
result: Array<{ id: string; name: string; cost_usd: number }>;
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
See [Type generation](./docs/development/type-generation.md) for automatic generation from SQL files.
|
|
156
|
+
|
|
157
|
+
### Memoization[](#memoization "Direct link to Memoization")
|
|
158
|
+
|
|
159
|
+
**Always wrap parameters in `useMemo`** to avoid refetch loops. The hook re-executes whenever the parameters reference changes:
|
|
160
|
+
|
|
161
|
+
```ts
|
|
162
|
+
// Good
|
|
163
|
+
const params = useMemo(() => ({ status: sql.string("active") }), []);
|
|
164
|
+
const { data } = useAnalyticsQuery("users", params);
|
|
165
|
+
|
|
166
|
+
// Bad - creates a new object every render, causing infinite refetches
|
|
167
|
+
const { data } = useAnalyticsQuery("users", { status: sql.string("active") });
|
|
168
|
+
|
|
169
|
+
```
|
|
@@ -11,7 +11,7 @@ For a deeper understanding of the plugin structure, read on.
|
|
|
11
11
|
|
|
12
12
|
## Basic plugin example[](#basic-plugin-example "Direct link to Basic plugin example")
|
|
13
13
|
|
|
14
|
-
Extend the [`Plugin`](
|
|
14
|
+
Extend the [`Plugin`](./docs/api/appkit/Class.Plugin.md) class and export with `toPlugin()`:
|
|
15
15
|
|
|
16
16
|
```typescript
|
|
17
17
|
import { Plugin, toPlugin } from "@databricks/appkit";
|
|
@@ -128,7 +128,7 @@ This pattern allows:
|
|
|
128
128
|
|
|
129
129
|
## Key extension points[](#key-extension-points "Direct link to Key extension points")
|
|
130
130
|
|
|
131
|
-
* **Route injection**: Implement `injectRoutes()` to add custom endpoints using [`IAppRouter`](
|
|
131
|
+
* **Route injection**: Implement `injectRoutes()` to add custom endpoints using [`IAppRouter`](./docs/api/appkit/TypeAlias.IAppRouter.md)
|
|
132
132
|
|
|
133
133
|
* **Lifecycle hooks**: Override `setup()`, and `shutdown()` methods
|
|
134
134
|
|
|
@@ -136,10 +136,10 @@ This pattern allows:
|
|
|
136
136
|
|
|
137
137
|
<!-- -->
|
|
138
138
|
|
|
139
|
-
* **Cache management**: Access the cache service via `this.cache`. See [`CacheConfig`](
|
|
140
|
-
* **Telemetry**: Instrument your plugin with traces and metrics via `this.telemetry`. See [`ITelemetry`](
|
|
139
|
+
* **Cache management**: Access the cache service via `this.cache`. See [`CacheConfig`](./docs/api/appkit/Interface.CacheConfig.md) for configuration.
|
|
140
|
+
* **Telemetry**: Instrument your plugin with traces and metrics via `this.telemetry`. See [`ITelemetry`](./docs/api/appkit/Interface.ITelemetry.md).
|
|
141
141
|
|
|
142
|
-
* **Execution interceptors**: Use `execute()` and `executeStream()` with [`StreamExecutionSettings`](
|
|
142
|
+
* **Execution interceptors**: Use `execute()` and `executeStream()` with [`StreamExecutionSettings`](./docs/api/appkit/Interface.StreamExecutionSettings.md)
|
|
143
143
|
|
|
144
144
|
**Consuming your plugin programmatically**
|
|
145
145
|
|
|
@@ -158,4 +158,4 @@ AppKit.myPlugin.myCustomMethod();
|
|
|
158
158
|
|
|
159
159
|
```
|
|
160
160
|
|
|
161
|
-
See the [`Plugin`](
|
|
161
|
+
See the [`Plugin`](./docs/api/appkit/Class.Plugin.md) API reference for complete documentation.
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Plugins are modular extensions that add capabilities to your AppKit application. They follow a defined lifecycle and have access to shared services like caching, telemetry, and streaming.
|
|
4
4
|
|
|
5
|
-
For complete API documentation, see the [`Plugin`](
|
|
5
|
+
For complete API documentation, see the [`Plugin`](./docs/api/appkit/Class.Plugin.md) class reference.
|
|
6
6
|
|
|
7
7
|
## Using plugins[](#using-plugins "Direct link to Using plugins")
|
|
8
8
|
|
|
@@ -20,7 +20,7 @@ const AppKit = await createApp({
|
|
|
20
20
|
|
|
21
21
|
```
|
|
22
22
|
|
|
23
|
-
For complete configuration options, see [`createApp`](
|
|
23
|
+
For complete configuration options, see [`createApp`](./docs/api/appkit/Function.createApp.md).
|
|
24
24
|
|
|
25
25
|
## Plugin phases[](#plugin-phases "Direct link to Plugin phases")
|
|
26
26
|
|
package/{docs/docs.md → docs.md}
RENAMED
|
@@ -21,7 +21,38 @@ AppKit simplifies building data applications on Databricks by providing:
|
|
|
21
21
|
* [Node.js](https://nodejs.org) v22+ environment with `npm`
|
|
22
22
|
* 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).
|
|
23
23
|
|
|
24
|
-
## Quick start[](#quick-start "Direct link to Quick start")
|
|
24
|
+
## Quick start options[](#quick-start-options "Direct link to Quick start options")
|
|
25
|
+
|
|
26
|
+
There are two ways to get started with AppKit:
|
|
27
|
+
|
|
28
|
+
* **AI-assisted** (recommended): Use an AI coding assistant with Agent Skills to explore data, run CLI commands, and scaffold your app interactively.
|
|
29
|
+
* **Manual**: Use the Databricks CLI directly to create, bootstrap, and deploy your app.
|
|
30
|
+
|
|
31
|
+
Choose the path that best fits your workflow; both approaches produce the same kind of AppKit-based Databricks application.
|
|
32
|
+
|
|
33
|
+
## AI-first quick start[](#ai-first-quick-start "Direct link to AI-first quick start")
|
|
34
|
+
|
|
35
|
+
Databricks AppKit is designed to work with AI coding assistants through Agent Skills.
|
|
36
|
+
|
|
37
|
+
Install Agent Skills and configure it for use with your preferred AI assistant:
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
databricks experimental aitools skills install
|
|
41
|
+
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
Once configured for your development environment, you can use your AI assistant to create and deploy new Databricks applications, as well as to iteratively evolve your app's codebase.
|
|
45
|
+
|
|
46
|
+
Just prompt your AI assistant to create a new Databricks app, such as:
|
|
47
|
+
|
|
48
|
+
```text
|
|
49
|
+
Create a new Databricks app that displays a dashboard of the nyc taxi trips dataset.
|
|
50
|
+
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
To learn more about the Agent Skills, see the [AI-assisted development](./docs/development/ai-assisted-development.md) documentation.
|
|
54
|
+
|
|
55
|
+
## Manual quick start[](#manual-quick-start "Direct link to Manual quick start")
|
|
25
56
|
|
|
26
57
|
Learn how to create and deploy a sample Databricks application that uses AppKit with the Databricks CLI.
|
|
27
58
|
|
|
@@ -44,7 +75,7 @@ The command will guide you through the process of:
|
|
|
44
75
|
* (optionally) deploying the app to Databricks
|
|
45
76
|
* (optionally) running the app in development mode
|
|
46
77
|
|
|
47
|
-
Learn more about the various [development flows](
|
|
78
|
+
Learn more about the various [development flows](./docs/development.md) available with AppKit.
|
|
48
79
|
|
|
49
80
|
### Deploy the app to Databricks[](#deploy-the-app-to-databricks "Direct link to Deploy the app to Databricks")
|
|
50
81
|
|
|
@@ -59,6 +90,6 @@ This deploys the sample app to Databricks.
|
|
|
59
90
|
|
|
60
91
|
## Next steps[](#next-steps "Direct link to Next steps")
|
|
61
92
|
|
|
62
|
-
* **[App management](
|
|
63
|
-
* **[API reference](
|
|
64
|
-
* **[Core concepts](
|
|
93
|
+
* **[App management](./docs/app-management.md)**: Manage your AppKit application throughout its lifecycle using the Databricks CLI
|
|
94
|
+
* **[API reference](./docs/api/appkit.md)**: Explore the complete API documentation
|
|
95
|
+
* **[Core concepts](./docs/core-principles.md)**: Learn about AppKit's design principles and architecture
|