[{"data":1,"prerenderedAt":1453},["ShallowReactive",2],{"navigation":3,"\u002Fgetting-started\u002Fquickstart-with-ai":773,"\u002Fgetting-started\u002Fquickstart-with-ai-surround":1448},[4,28,63,85,103,112,269,355,453,485,506,542,576,594,647,669,693,721,747],{"title":5,"path":6,"stem":7,"children":8,"icon":27},"Getting Started","\u002Fgetting-started","01.getting-started\u002F01.index",[9,11,15,19,23],{"title":10,"path":6,"stem":7},"Introduction",{"title":12,"path":13,"stem":14},"Installation","\u002Fgetting-started\u002Finstallation","01.getting-started\u002F02.installation",{"title":16,"path":17,"stem":18},"Quickstart with AI","\u002Fgetting-started\u002Fquickstart-with-ai","01.getting-started\u002F03.quickstart-with-ai",{"title":20,"path":21,"stem":22},"Quickstart by Hand","\u002Fgetting-started\u002Fquickstart-by-hand","01.getting-started\u002F04.quickstart-by-hand",{"title":24,"path":25,"stem":26},"The Admin","\u002Fgetting-started\u002Fadmin-tour","01.getting-started\u002F05.admin-tour","i-lucide-rocket",{"title":29,"icon":30,"path":31,"stem":32,"children":33,"page":62},"Concepts","i-lucide-lightbulb","\u002Fconcepts","02.concepts",[34,38,42,46,50,54,58],{"title":35,"path":36,"stem":37},"PostgreSQL First","\u002Fconcepts\u002Fpostgresql-first","02.concepts\u002F01.postgresql-first",{"title":39,"path":40,"stem":41},"Resources","\u002Fconcepts\u002Fresources","02.concepts\u002F02.resources",{"title":43,"path":44,"stem":45},"Users and Roles","\u002Fconcepts\u002Fusers-and-roles","02.concepts\u002F03.users-and-roles",{"title":47,"path":48,"stem":49},"Permissions","\u002Fconcepts\u002Fpermissions","02.concepts\u002F04.permissions",{"title":51,"path":52,"stem":53},"Drafts and Publishing","\u002Fconcepts\u002Fdrafts-and-publishing","02.concepts\u002F05.drafts-and-publishing",{"title":55,"path":56,"stem":57},"Audit and Events","\u002Fconcepts\u002Faudit-and-events","02.concepts\u002F06.audit-and-events",{"title":59,"path":60,"stem":61},"Object Access","\u002Fconcepts\u002Fobject-access","02.concepts\u002F07.object-access",false,{"title":64,"icon":65,"path":66,"stem":67,"children":68,"page":62},"App","i-lucide-app-window","\u002Fapp","03.app",[69,73,77,81],{"title":70,"path":71,"stem":72},"The App","\u002Fapp\u002Foverview","03.app\u002F01.overview",{"title":74,"path":75,"stem":76},"DataViews","\u002Fapp\u002Fdataviews","03.app\u002F02.dataviews",{"title":78,"path":79,"stem":80},"Dashboards","\u002Fapp\u002Fdashboards","03.app\u002F03.dashboards",{"title":82,"path":83,"stem":84},"Arrange menu","\u002Fapp\u002Farrange-menu","03.app\u002F04.arrange-menu",{"title":86,"icon":87,"path":88,"stem":89,"children":90,"page":62},"Database","i-lucide-database","\u002Fdatabase","04.database",[91,95,99],{"title":92,"path":93,"stem":94},"Tables","\u002Fdatabase\u002Ftables","04.database\u002F01.tables",{"title":96,"path":97,"stem":98},"Views","\u002Fdatabase\u002Fviews","04.database\u002F02.views",{"title":100,"path":101,"stem":102},"Functions","\u002Fdatabase\u002Ffunctions","04.database\u002F03.functions",{"title":104,"icon":105,"path":106,"stem":107,"children":108,"page":62},"SQL Console","i-lucide-square-terminal","\u002Fsql-console","05.sql-console",[109],{"title":104,"path":110,"stem":111},"\u002Fsql-console\u002Foverview","05.sql-console\u002F01.overview",{"title":74,"icon":113,"path":114,"stem":115,"children":116,"page":62},"i-lucide-layout-list","\u002Fdataviews","06.dataviews",[117,121,125,129,183,214],{"title":118,"path":119,"stem":120},"Overview","\u002Fdataviews\u002Foverview","06.dataviews\u002F01.overview",{"title":122,"path":123,"stem":124},"Creating a DataView","\u002Fdataviews\u002Fcreating","06.dataviews\u002F02.creating",{"title":126,"path":127,"stem":128},"Publishing","\u002Fdataviews\u002Fpublishing","06.dataviews\u002F03.publishing",{"title":130,"icon":131,"path":132,"stem":133,"children":134,"page":62},"Types","i-lucide-shapes","\u002Fdataviews\u002Ftypes","06.dataviews\u002F04.types",[135,139,143,147,151,155,159,163,167,171,175,179],{"title":136,"path":137,"stem":138},"Table","\u002Fdataviews\u002Ftypes\u002Ftable","06.dataviews\u002F04.types\u002F01.table",{"title":140,"path":141,"stem":142},"Cards","\u002Fdataviews\u002Ftypes\u002Fcards","06.dataviews\u002F04.types\u002F02.cards",{"title":144,"path":145,"stem":146},"Kanban","\u002Fdataviews\u002Ftypes\u002Fkanban","06.dataviews\u002F04.types\u002F03.kanban",{"title":148,"path":149,"stem":150},"Calendar","\u002Fdataviews\u002Ftypes\u002Fcalendar","06.dataviews\u002F04.types\u002F04.calendar",{"title":152,"path":153,"stem":154},"Gantt","\u002Fdataviews\u002Ftypes\u002Fgantt","06.dataviews\u002F04.types\u002F05.gantt",{"title":156,"path":157,"stem":158},"Map","\u002Fdataviews\u002Ftypes\u002Fmap","06.dataviews\u002F04.types\u002F06.map",{"title":160,"path":161,"stem":162},"Tree","\u002Fdataviews\u002Ftypes\u002Ftree","06.dataviews\u002F04.types\u002F07.tree",{"title":164,"path":165,"stem":166},"Form","\u002Fdataviews\u002Ftypes\u002Fform","06.dataviews\u002F04.types\u002F08.form",{"title":168,"path":169,"stem":170},"Master-detail","\u002Fdataviews\u002Ftypes\u002Fmaster-detail","06.dataviews\u002F04.types\u002F09.master-detail",{"title":172,"path":173,"stem":174},"Settings","\u002Fdataviews\u002Ftypes\u002Fsettings","06.dataviews\u002F04.types\u002F10.settings",{"title":176,"path":177,"stem":178},"Custom","\u002Fdataviews\u002Ftypes\u002Fcustom","06.dataviews\u002F04.types\u002F11.custom",{"title":180,"path":181,"stem":182},"External Frame","\u002Fdataviews\u002Ftypes\u002Fexternal-frame","06.dataviews\u002F04.types\u002F12.external-frame",{"title":172,"icon":184,"path":185,"stem":186,"children":187,"page":62},"i-lucide-settings-2","\u002Fdataviews\u002Fsettings","06.dataviews\u002F05.settings",[188,192,196,199,202,206,210],{"title":189,"path":190,"stem":191},"General","\u002Fdataviews\u002Fsettings\u002Fgeneral","06.dataviews\u002F05.settings\u002F01.general",{"title":193,"path":194,"stem":195},"Data","\u002Fdataviews\u002Fsettings\u002Fdata","06.dataviews\u002F05.settings\u002F02.data",{"title":96,"path":197,"stem":198},"\u002Fdataviews\u002Fsettings\u002Fviews","06.dataviews\u002F05.settings\u002F03.views",{"title":164,"path":200,"stem":201},"\u002Fdataviews\u002Fsettings\u002Fform","06.dataviews\u002F05.settings\u002F04.form",{"title":203,"path":204,"stem":205},"Actions","\u002Fdataviews\u002Fsettings\u002Factions","06.dataviews\u002F05.settings\u002F05.actions",{"title":207,"path":208,"stem":209},"Security","\u002Fdataviews\u002Fsettings\u002Fsecurity","06.dataviews\u002F05.settings\u002F06.security",{"title":211,"path":212,"stem":213},"Versions","\u002Fdataviews\u002Fsettings\u002Fversions","06.dataviews\u002F05.settings\u002F07.versions",{"title":215,"icon":216,"path":217,"stem":218,"children":219,"page":62},"Design Form","i-lucide-pencil-ruler","\u002Fdataviews\u002Fdesign-form","06.dataviews\u002F06.design-form",[220,223,257,261,265],{"title":118,"path":221,"stem":222},"\u002Fdataviews\u002Fdesign-form\u002Foverview","06.dataviews\u002F06.design-form\u002F01.overview",{"title":224,"icon":131,"path":225,"stem":226,"children":227,"page":62},"Widgets","\u002Fdataviews\u002Fdesign-form\u002Fwidgets","06.dataviews\u002F06.design-form\u002F02.widgets",[228,231,234,238,242,246,250,254],{"title":224,"path":229,"stem":230},"\u002Fdataviews\u002Fdesign-form\u002Fwidgets\u002Foverview","06.dataviews\u002F06.design-form\u002F02.widgets\u002F01.overview",{"title":164,"path":232,"stem":233},"\u002Fdataviews\u002Fdesign-form\u002Fwidgets\u002Fform","06.dataviews\u002F06.design-form\u002F02.widgets\u002F02.form",{"title":235,"path":236,"stem":237},"Inputs","\u002Fdataviews\u002Fdesign-form\u002Fwidgets\u002Finputs","06.dataviews\u002F06.design-form\u002F02.widgets\u002F03.inputs",{"title":239,"path":240,"stem":241},"Display","\u002Fdataviews\u002Fdesign-form\u002Fwidgets\u002Fdisplay","06.dataviews\u002F06.design-form\u002F02.widgets\u002F04.display",{"title":243,"path":244,"stem":245},"Embeds","\u002Fdataviews\u002Fdesign-form\u002Fwidgets\u002Fembeds","06.dataviews\u002F06.design-form\u002F02.widgets\u002F05.embeds",{"title":247,"path":248,"stem":249},"Layout","\u002Fdataviews\u002Fdesign-form\u002Fwidgets\u002Flayout","06.dataviews\u002F06.design-form\u002F02.widgets\u002F06.layout",{"title":251,"path":252,"stem":253},"Overlays","\u002Fdataviews\u002Fdesign-form\u002Fwidgets\u002Foverlays","06.dataviews\u002F06.design-form\u002F02.widgets\u002F07.overlays",{"title":203,"path":255,"stem":256},"\u002Fdataviews\u002Fdesign-form\u002Fwidgets\u002Factions","06.dataviews\u002F06.design-form\u002F02.widgets\u002F08.actions",{"title":258,"path":259,"stem":260},"Variables","\u002Fdataviews\u002Fdesign-form\u002Fvariables","06.dataviews\u002F06.design-form\u002F03.variables",{"title":262,"path":263,"stem":264},"Code","\u002Fdataviews\u002Fdesign-form\u002Fcode","06.dataviews\u002F06.design-form\u002F04.code",{"title":266,"path":267,"stem":268},"Formulas","\u002Fdataviews\u002Fdesign-form\u002Fformulas","06.dataviews\u002F06.design-form\u002F05.formulas",{"title":78,"icon":270,"path":271,"stem":272,"children":273,"page":62},"i-lucide-layout-dashboard","\u002Fdashboards","07.dashboards",[274,277,281,285,332],{"title":118,"path":275,"stem":276},"\u002Fdashboards\u002Foverview","07.dashboards\u002F01.overview",{"title":278,"path":279,"stem":280},"Creating a Dashboard","\u002Fdashboards\u002Fcreating","07.dashboards\u002F02.creating",{"title":282,"path":283,"stem":284},"Editor","\u002Fdashboards\u002Feditor","07.dashboards\u002F03.editor",{"title":224,"icon":286,"path":287,"stem":288,"children":289,"page":62},"i-lucide-chart-bar","\u002Fdashboards\u002Fwidgets","07.dashboards\u002F04.widgets",[290,293,297,301,305,309,313,317,321,324,328],{"title":224,"path":291,"stem":292},"\u002Fdashboards\u002Fwidgets\u002Foverview","07.dashboards\u002F04.widgets\u002F01.overview",{"title":294,"path":295,"stem":296},"Editing a Widget","\u002Fdashboards\u002Fwidgets\u002Fediting-a-widget","07.dashboards\u002F04.widgets\u002F02.editing-a-widget",{"title":298,"path":299,"stem":300},"Indicators","\u002Fdashboards\u002Fwidgets\u002Findicators","07.dashboards\u002F04.widgets\u002F03.indicators",{"title":302,"path":303,"stem":304},"Comparison","\u002Fdashboards\u002Fwidgets\u002Fcomparison","07.dashboards\u002F04.widgets\u002F04.comparison",{"title":306,"path":307,"stem":308},"Trend","\u002Fdashboards\u002Fwidgets\u002Ftrend","07.dashboards\u002F04.widgets\u002F05.trend",{"title":310,"path":311,"stem":312},"Proportion","\u002Fdashboards\u002Fwidgets\u002Fproportion","07.dashboards\u002F04.widgets\u002F06.proportion",{"title":314,"path":315,"stem":316},"Distribution and Relation","\u002Fdashboards\u002Fwidgets\u002Fdistribution-and-relation","07.dashboards\u002F04.widgets\u002F07.distribution-and-relation",{"title":318,"path":319,"stem":320},"Maps","\u002Fdashboards\u002Fwidgets\u002Fmaps","07.dashboards\u002F04.widgets\u002F08.maps",{"title":92,"path":322,"stem":323},"\u002Fdashboards\u002Fwidgets\u002Ftables","07.dashboards\u002F04.widgets\u002F09.tables",{"title":325,"path":326,"stem":327},"Visualization and Insertion","\u002Fdashboards\u002Fwidgets\u002Fvisualization-and-insertion","07.dashboards\u002F04.widgets\u002F10.visualization-and-insertion",{"title":329,"path":330,"stem":331},"SQL Conventions","\u002Fdashboards\u002Fwidgets\u002Fsql-conventions","07.dashboards\u002F04.widgets\u002F11.sql-conventions",{"title":172,"icon":184,"path":333,"stem":334,"children":335,"page":62},"\u002Fdashboards\u002Fsettings","07.dashboards\u002F05.settings",[336,339,342,345,349,352],{"title":189,"path":337,"stem":338},"\u002Fdashboards\u002Fsettings\u002Fgeneral","07.dashboards\u002F05.settings\u002F01.general",{"title":258,"path":340,"stem":341},"\u002Fdashboards\u002Fsettings\u002Fvariables","07.dashboards\u002F05.settings\u002F02.variables",{"title":193,"path":343,"stem":344},"\u002Fdashboards\u002Fsettings\u002Fdata","07.dashboards\u002F05.settings\u002F03.data",{"title":346,"path":347,"stem":348},"Share","\u002Fdashboards\u002Fsettings\u002Fshare","07.dashboards\u002F05.settings\u002F04.share",{"title":207,"path":350,"stem":351},"\u002Fdashboards\u002Fsettings\u002Fsecurity","07.dashboards\u002F05.settings\u002F05.security",{"title":211,"path":353,"stem":354},"\u002Fdashboards\u002Fsettings\u002Fversions","07.dashboards\u002F05.settings\u002F06.versions",{"title":356,"icon":357,"path":358,"stem":359,"children":360,"page":62},"Workflows","i-lucide-workflow","\u002Fworkflows","08.workflows",[361,364,368,371,393,432],{"title":118,"path":362,"stem":363},"\u002Fworkflows\u002Foverview","08.workflows\u002F01.overview",{"title":365,"path":366,"stem":367},"Creating a Workflow","\u002Fworkflows\u002Fcreating","08.workflows\u002F02.creating",{"title":282,"path":369,"stem":370},"\u002Fworkflows\u002Feditor","08.workflows\u002F03.editor",{"title":372,"icon":373,"path":374,"stem":375,"children":376,"page":62},"Triggers","i-lucide-zap","\u002Fworkflows\u002Ftriggers","08.workflows\u002F04.triggers",[377,381,385,389],{"title":378,"path":379,"stem":380},"Manual","\u002Fworkflows\u002Ftriggers\u002Fmanual","08.workflows\u002F04.triggers\u002F01.manual",{"title":382,"path":383,"stem":384},"Database Event","\u002Fworkflows\u002Ftriggers\u002Fdatabase-event","08.workflows\u002F04.triggers\u002F02.database-event",{"title":386,"path":387,"stem":388},"Schedule","\u002Fworkflows\u002Ftriggers\u002Fschedule","08.workflows\u002F04.triggers\u002F03.schedule",{"title":390,"path":391,"stem":392},"Webhook","\u002Fworkflows\u002Ftriggers\u002Fwebhook","08.workflows\u002F04.triggers\u002F04.webhook",{"title":394,"icon":357,"path":395,"stem":396,"children":397,"page":62},"Steps","\u002Fworkflows\u002Fsteps","08.workflows\u002F05.steps",[398,401,405,408,412,416,420,424,428],{"title":193,"path":399,"stem":400},"\u002Fworkflows\u002Fsteps\u002Fdata","08.workflows\u002F05.steps\u002F01.data",{"title":402,"path":403,"stem":404},"Control","\u002Fworkflows\u002Fsteps\u002Fcontrol","08.workflows\u002F05.steps\u002F02.control",{"title":262,"path":406,"stem":407},"\u002Fworkflows\u002Fsteps\u002Fcode","08.workflows\u002F05.steps\u002F03.code",{"title":409,"path":410,"stem":411},"Integration","\u002Fworkflows\u002Fsteps\u002Fintegration","08.workflows\u002F05.steps\u002F04.integration",{"title":413,"path":414,"stem":415},"Communication","\u002Fworkflows\u002Fsteps\u002Fcommunication","08.workflows\u002F05.steps\u002F05.communication",{"title":417,"path":418,"stem":419},"Files","\u002Fworkflows\u002Fsteps\u002Ffiles","08.workflows\u002F05.steps\u002F06.files",{"title":421,"path":422,"stem":423},"Documents","\u002Fworkflows\u002Fsteps\u002Fdocuments","08.workflows\u002F05.steps\u002F07.documents",{"title":425,"path":426,"stem":427},"Composition","\u002Fworkflows\u002Fsteps\u002Fcomposition","08.workflows\u002F05.steps\u002F08.composition",{"title":429,"path":430,"stem":431},"Values","\u002Fworkflows\u002Fsteps\u002Fvalues","08.workflows\u002F05.steps\u002F09.values",{"title":172,"icon":184,"path":433,"stem":434,"children":435,"page":62},"\u002Fworkflows\u002Fsettings","08.workflows\u002F06.settings",[436,439,443,446,449],{"title":189,"path":437,"stem":438},"\u002Fworkflows\u002Fsettings\u002Fgeneral","08.workflows\u002F06.settings\u002F01.general",{"title":440,"path":441,"stem":442},"Trigger","\u002Fworkflows\u002Fsettings\u002Ftrigger","08.workflows\u002F06.settings\u002F02.trigger",{"title":207,"path":444,"stem":445},"\u002Fworkflows\u002Fsettings\u002Fsecurity","08.workflows\u002F06.settings\u002F03.security",{"title":211,"path":447,"stem":448},"\u002Fworkflows\u002Fsettings\u002Fversions","08.workflows\u002F06.settings\u002F04.versions",{"title":450,"path":451,"stem":452},"Runs","\u002Fworkflows\u002Fsettings\u002Fruns","08.workflows\u002F06.settings\u002F05.runs",{"title":417,"icon":454,"path":455,"stem":456,"children":457,"page":62},"i-lucide-files","\u002Ffiles","09.files",[458,461,465,469,473,477,481],{"title":118,"path":459,"stem":460},"\u002Ffiles\u002Foverview","09.files\u002F01.overview",{"title":462,"path":463,"stem":464},"Uploading","\u002Ffiles\u002Fuploading","09.files\u002F02.uploading",{"title":466,"path":467,"stem":468},"File Details","\u002Ffiles\u002Ffile-details","09.files\u002F03.file-details",{"title":470,"path":471,"stem":472},"Editing Files","\u002Ffiles\u002Fediting-files","09.files\u002F04.editing-files",{"title":474,"path":475,"stem":476},"Using Files in Tables","\u002Ffiles\u002Fusing-files-in-tables","09.files\u002F05.using-files-in-tables",{"title":478,"path":479,"stem":480},"Image Transformations","\u002Ffiles\u002Fimage-transformations","09.files\u002F06.image-transformations",{"title":482,"path":483,"stem":484},"Who Can See a File","\u002Ffiles\u002Fwho-can-see-a-file","09.files\u002F07.who-can-see-a-file",{"title":486,"icon":487,"path":488,"stem":489,"children":490,"page":62},"Templates","i-lucide-file-text","\u002Ftemplates","10.templates",[491,494,498,502],{"title":118,"path":492,"stem":493},"\u002Ftemplates\u002Foverview","10.templates\u002F01.overview",{"title":495,"path":496,"stem":497},"Emails","\u002Ftemplates\u002Femails","10.templates\u002F02.emails",{"title":499,"path":500,"stem":501},"PDF","\u002Ftemplates\u002Fpdf","10.templates\u002F03.pdf",{"title":503,"path":504,"stem":505},"System Emails","\u002Ftemplates\u002Fsystem-emails","10.templates\u002F04.system-emails",{"title":507,"icon":508,"path":509,"stem":510,"children":511,"page":62},"Users","i-lucide-users","\u002Fusers","11.users",[512,516,520,524,528],{"title":513,"path":514,"stem":515},"Managing Users","\u002Fusers\u002Fmanaging-users","11.users\u002F01.managing-users",{"title":517,"path":518,"stem":519},"A User's Page","\u002Fusers\u002Fa-users-page","11.users\u002F02.a-users-page",{"title":521,"path":522,"stem":523},"API Tokens","\u002Fusers\u002Fapi-tokens","11.users\u002F03.api-tokens",{"title":525,"path":526,"stem":527},"Sessions","\u002Fusers\u002Fsessions","11.users\u002F04.sessions",{"title":529,"icon":530,"path":531,"stem":532,"children":533,"page":62},"Insights","i-lucide-chart-line","\u002Fusers\u002Finsights","11.users\u002F05.insights",[534,538],{"title":535,"path":536,"stem":537},"Sign-ins","\u002Fusers\u002Finsights\u002Fsign-ins","11.users\u002F05.insights\u002F01.sign-ins",{"title":539,"path":540,"stem":541},"Activity","\u002Fusers\u002Finsights\u002Factivity","11.users\u002F05.insights\u002F02.activity",{"title":543,"icon":544,"path":545,"stem":546,"children":547,"page":62},"Roles","i-lucide-shield-check","\u002Froles","12.roles",[548,552,556,560,564,568,572],{"title":549,"path":550,"stem":551},"Creating a Role","\u002Froles\u002Fcreating-a-role","12.roles\u002F01.creating-a-role",{"title":553,"path":554,"stem":555},"Granting Permissions","\u002Froles\u002Fgranting-permissions","12.roles\u002F02.granting-permissions",{"title":557,"path":558,"stem":559},"Row Filters","\u002Froles\u002Frow-filters","12.roles\u002F03.row-filters",{"title":561,"path":562,"stem":563},"Payload Checks","\u002Froles\u002Fpayload-checks","12.roles\u002F04.payload-checks",{"title":565,"path":566,"stem":567},"Members","\u002Froles\u002Fmembers","12.roles\u002F05.members",{"title":569,"path":570,"stem":571},"Access Reviews","\u002Froles\u002Faccess-reviews","12.roles\u002F06.access-reviews",{"title":573,"path":574,"stem":575},"Delegated Administration","\u002Froles\u002Fdelegated-administration","12.roles\u002F07.delegated-administration",{"title":577,"icon":578,"path":579,"stem":580,"children":581,"page":62},"Logs","i-lucide-scroll-text","\u002Flogs","13.logs",[582,586,590],{"title":583,"path":584,"stem":585},"Audit Log","\u002Flogs\u002Faudit-log","13.logs\u002F01.audit-log",{"title":587,"path":588,"stem":589},"An Entry","\u002Flogs\u002Fan-entry","13.logs\u002F02.an-entry",{"title":591,"path":592,"stem":593},"Where Else It Shows","\u002Flogs\u002Fwhere-else-it-shows","13.logs\u002F03.where-else-it-shows",{"title":595,"icon":596,"path":597,"stem":598,"children":599,"page":62},"Data API","i-lucide-braces","\u002Fdata-api","14.data-api",[600,603,607,611,615,619,623,627,631,635,639,643],{"title":118,"path":601,"stem":602},"\u002Fdata-api\u002Foverview","14.data-api\u002F01.overview",{"title":604,"path":605,"stem":606},"Authentication","\u002Fdata-api\u002Fauthentication","14.data-api\u002F02.authentication",{"title":608,"path":609,"stem":610},"Reading","\u002Fdata-api\u002Freading","14.data-api\u002F03.reading",{"title":612,"path":613,"stem":614},"Filtering","\u002Fdata-api\u002Ffiltering","14.data-api\u002F04.filtering",{"title":616,"path":617,"stem":618},"Aggregating","\u002Fdata-api\u002Faggregating","14.data-api\u002F05.aggregating",{"title":620,"path":621,"stem":622},"Writing","\u002Fdata-api\u002Fwriting","14.data-api\u002F06.writing",{"title":624,"path":625,"stem":626},"Nested Writes","\u002Fdata-api\u002Fnested-writes","14.data-api\u002F07.nested-writes",{"title":628,"path":629,"stem":630},"Transactions","\u002Fdata-api\u002Ftransactions","14.data-api\u002F08.transactions",{"title":632,"path":633,"stem":634},"Calling Functions","\u002Fdata-api\u002Fcalling-functions","14.data-api\u002F09.calling-functions",{"title":636,"path":637,"stem":638},"OpenAPI","\u002Fdata-api\u002Fopenapi","14.data-api\u002F10.openapi",{"title":640,"path":641,"stem":642},"Routes","\u002Fdata-api\u002Froutes","14.data-api\u002F11.routes",{"title":644,"path":645,"stem":646},"A client, end to end","\u002Fdata-api\u002Fa-client","14.data-api\u002F12.a-client",{"title":172,"icon":648,"path":649,"stem":650,"children":651,"page":62},"i-lucide-settings","\u002Fsettings","15.settings",[652,655,659,662,665],{"title":189,"path":653,"stem":654},"\u002Fsettings\u002Fgeneral","15.settings\u002F01.general",{"title":656,"path":657,"stem":658},"Access","\u002Fsettings\u002Faccess","15.settings\u002F02.access",{"title":207,"path":660,"stem":661},"\u002Fsettings\u002Fsecurity","15.settings\u002F03.security",{"title":595,"path":663,"stem":664},"\u002Fsettings\u002Fdata-api","15.settings\u002F04.data-api",{"title":666,"path":667,"stem":668},"Features","\u002Fsettings\u002Ffeatures","15.settings\u002F05.features",{"title":670,"icon":671,"path":672,"stem":673,"children":674,"page":62},"User Profile","i-lucide-circle-user","\u002Fuser-profile","16.user-profile",[675,679,682,686,690],{"title":676,"path":677,"stem":678},"My Account","\u002Fuser-profile\u002Fmy-account","16.user-profile\u002F01.my-account",{"title":525,"path":680,"stem":681},"\u002Fuser-profile\u002Fsessions","16.user-profile\u002F02.sessions",{"title":683,"path":684,"stem":685},"Tokens","\u002Fuser-profile\u002Ftokens","16.user-profile\u002F03.tokens",{"title":687,"path":688,"stem":689},"Preferences","\u002Fuser-profile\u002Fpreferences","16.user-profile\u002F04.preferences",{"title":539,"path":691,"stem":692},"\u002Fuser-profile\u002Factivity","16.user-profile\u002F05.activity",{"title":694,"icon":695,"path":696,"stem":697,"children":698,"page":62},"AI Agents","i-lucide-bot","\u002Fai-agents","17.ai-agents",[699,702,705,709,713,717],{"title":118,"path":700,"stem":701},"\u002Fai-agents\u002Foverview","17.ai-agents\u002F01.overview",{"title":683,"path":703,"stem":704},"\u002Fai-agents\u002Ftokens","17.ai-agents\u002F02.tokens",{"title":706,"path":707,"stem":708},"MCP Server","\u002Fai-agents\u002Fmcp-server","17.ai-agents\u002F03.mcp-server",{"title":710,"path":711,"stem":712},"Recipes","\u002Fai-agents\u002Frecipes","17.ai-agents\u002F04.recipes",{"title":714,"path":715,"stem":716},"Tools","\u002Fai-agents\u002Ftools","17.ai-agents\u002F05.tools",{"title":718,"path":719,"stem":720},"llms.txt","\u002Fai-agents\u002Fllms-txt","17.ai-agents\u002F06.llms-txt",{"title":722,"icon":723,"path":724,"stem":725,"children":726,"page":62},"Operations","i-lucide-server","\u002Foperations","18.operations",[727,731,735,739,743],{"title":728,"path":729,"stem":730},"Deployment","\u002Foperations\u002Fdeployment","18.operations\u002F01.deployment",{"title":732,"path":733,"stem":734},"PostgreSQL","\u002Foperations\u002Fpostgresql","18.operations\u002F02.postgresql",{"title":736,"path":737,"stem":738},"Public URL, Proxy and CORS","\u002Foperations\u002Fpublic-url-proxy-cors","18.operations\u002F03.public-url-proxy-cors",{"title":740,"path":741,"stem":742},"Backup and Restore","\u002Foperations\u002Fbackup-restore","18.operations\u002F04.backup-restore",{"title":744,"path":745,"stem":746},"Upgrading","\u002Foperations\u002Fupgrading","18.operations\u002F05.upgrading",{"title":748,"icon":749,"path":750,"stem":751,"children":752,"page":62},"Reference","i-lucide-library","\u002Freference","19.reference",[753,757,761,765,769],{"title":754,"path":755,"stem":756},"Query Language","\u002Freference\u002Fquery-language","19.reference\u002F01.query-language",{"title":758,"path":759,"stem":760},"Errors","\u002Freference\u002Ferrors","19.reference\u002F02.errors",{"title":762,"path":763,"stem":764},"Admin API","\u002Freference\u002Fadmin-api","19.reference\u002F03.admin-api",{"title":766,"path":767,"stem":768},"Authentication API","\u002Freference\u002Fauth-api","19.reference\u002F04.auth-api",{"title":770,"path":771,"stem":772},"Environment Variables","\u002Freference\u002Fenvironment","19.reference\u002F05.environment",{"id":774,"title":16,"admin":775,"body":776,"description":1441,"extension":1442,"links":1443,"meta":1444,"navigation":1445,"path":17,"seo":1446,"stem":18,"__hash__":1447},"docs\u002F01.getting-started\u002F03.quickstart-with-ai.md","Settings › MCP · My account › Tokens",{"type":777,"value":778,"toc":1433},"minimark",[779,783,786,792,795,800,803,814,818,821,901,904,908,912,916,919,923,926,1299,1303,1306,1341,1350,1354,1402,1406,1429],[780,781,782],"p",{},"TotalBase is built to be administered by AI agents. Its MCP server gives an agent such as Claude Code the same tools you use in the admin: create tables, set permissions, design screens, build dashboards, write workflows. You describe the application, and the agent builds it while you watch.",[780,784,785],{},"The result is a real application, not generated code to maintain. The tables are PostgreSQL tables, the screens are DataViews you can open and edit in the admin, and everything the agent did is in the audit log.",[787,788],"screenshot",{"caption":789,"id":790,"kind":791},"Acme's field service app built from nothing through the MCP server - the tables, roles, screens, dashboards and workflows - each tool call on the left, the admin filling up on the right, then the App.","build-with-ai-demo","video",[780,793,794],{},"The whole of Acme - its tables and rules, roles, screens, dashboards, workflows, images and menu - is 354 MCP calls. Replayed from a script against an empty instance, they take under a minute; the build, from starting the containers to the App open, under two. An agent writing the same calls from your prompt takes longer, as long as its thinking does, but nothing in between is done by hand.",[796,797,799],"h2",{"id":798},"one-prompt","One prompt",[780,801,802],{},"This is the prompt behind the video:",[804,805,811],"pre",{"className":806,"code":808,"language":809,"meta":810},[807],"language-text","Build a field service application for Acme, a company that installs and repairs\nair conditioning and solar equipment at its customers' sites.\n\n- Customers, each with one or more sites (address and map location).\n- Work orders: a site, a type (repair, maintenance, installation), a priority\n  (low, normal, high, urgent), a status (new, assigned, in progress, completed,\n  cancelled), the assigned technician, a description and a resolution.\n  A completed order must have a resolution.\n- Technicians are users. Each technician sees and updates only the orders\n  assigned to them. Dispatchers see every order and assign them.\n- Screens: a kanban of work orders by status for dispatchers, colored by\n  priority; a phone-friendly form where a technician closes an order; a map\n  of the sites.\n- A dashboard with open orders by status, orders by priority, and the\n  overdue ones.\n- Load realistic sample data: 10 customers in Salta, 20 sites, 40 orders.\n- Publish everything for the right roles.\n","text","",[812,813,808],"code",{"__ignoreMap":810},[796,815,817],{"id":816},"what-the-agent-does","What the agent does",[780,819,820],{},"Following TotalBase's own guide for agents, it works in this order:",[822,823,824,850,860,877,883,889,895],"ol",{},[825,826,827,831,832,835,836,835,839,842,843,846,847,849],"li",{},[828,829,830],"strong",{},"Models the data"," as PostgreSQL tables: ",[812,833,834],{},"customers",", ",[812,837,838],{},"sites",[812,840,841],{},"work_orders",", with foreign keys, ",[812,844,845],{},"CHECK"," lists for status and priority, and a ",[812,848,845],{}," that a completed order has a resolution.",[825,851,852,855,856,859],{},[828,853,854],{},"Exposes"," the tables to the API and ",[828,857,858],{},"presents"," their columns: labels, status colors, how a site is shown when an order points at it.",[825,861,862,865,866,869,870,872,873,876],{},[828,863,864],{},"Creates the roles"," Dispatcher and Technician, and ",[828,867,868],{},"grants"," them: Technicians read and update ",[812,871,841],{}," where ",[812,874,875],{},"technician = $USER.id",".",[825,878,879,882],{},[828,880,881],{},"Loads the sample data"," through the Data API, under the same rules as any user.",[825,884,885,888],{},[828,886,887],{},"Builds the screens",": a Kanban DataView by status, a Form for technicians, a Map of the sites.",[825,890,891,894],{},[828,892,893],{},"Builds the dashboard"," with three SQL-backed widgets.",[825,896,897,900],{},[828,898,899],{},"Publishes"," the screens and the dashboard to the right roles, and arranges the App menu.",[780,902,903],{},"At the end it tells you what it built and how to check it: for example, sign in as a technician and confirm you see only your orders.",[787,905],{"caption":906,"id":907},"The result: the dispatcher's kanban of work orders, colored by priority.","build-with-ai-kanban",[787,909],{"caption":910,"id":911},"The result: a technician closing an order.","build-with-ai-form",[787,913],{"caption":914,"id":915},"The result: the operations dashboard.","build-with-ai-dashboard",[780,917,918],{},"From there you keep going the same way: \"add a signature to the technician's form\", \"email the customer when an order is completed\", \"dispatchers only see their own branch\". Or you open the admin and change things by hand. The agent and you edit the same objects.",[796,920,922],{"id":921},"connect-an-agent","Connect an agent",[780,924,925],{},"Any MCP client works. These steps use Claude Code.",[927,928,929,934,941,991,998,1003,1013,1032,1038,1042,1052,1079,1083,1086,1137,1144,1285,1289],"steps",{},[930,931,933],"h3",{"id":932},"turn-on-the-mcp-server","Turn on the MCP server",[780,935,936,937,940],{},"In ",[828,938,939],{},"Settings › MCP",", turn the server on and choose what agents may do:",[942,943,944,957],"table",{},[945,946,947],"thead",{},[948,949,950,954],"tr",{},[951,952,953],"th",{},"Mode",[951,955,956],{},"The agent can",[958,959,960,971,981],"tbody",{},[948,961,962,968],{},[963,964,965],"td",{},[812,966,967],{},"READ_ONLY",[963,969,970],{},"only read: describe tables, list roles, query records",[948,972,973,978],{},[963,974,975],{},[812,976,977],{},"STANDARD",[963,979,980],{},"build and change everything, but never delete or revoke",[948,982,983,988],{},[963,984,985],{},[812,986,987],{},"FULL",[963,989,990],{},"everything, with destructive calls requiring an explicit confirmation",[780,992,993,994,997],{},"You can also switch tool groups off (workflows, SQL…) and write ",[828,995,996],{},"project instructions"," the agent receives on every connection: your naming conventions, your language, what it must never touch.",[999,1000,1002],"h4",{"id":1001},"do-you-need-the-sql-console","Do you need the SQL Console?",[780,1004,1005,1006,1008,1009,1012],{},"Not for the prompt on this page. The agent's table tools create tables, columns, foreign keys, ",[812,1007,845],{}," and ",[812,1010,1011],{},"UNIQUE"," constraints and indexes, load records through the Data API, and write dashboard queries, all without raw SQL.",[780,1014,1015,1016,1019,1020,1023,1024,1027,1028,1031],{},"Some things can only be written in SQL: ",[828,1017,1018],{},"views, functions and triggers",". Examples are a due date calculated from the customer's contract, stock that goes down when a part is used, or a view of each vehicle's latest position. For those, turn on ",[828,1021,1022],{},"Settings › SQL Console › Allow API tokens",". The ",[828,1025,1026],{},"SQL"," tool group in Settings › MCP must be on as well. Without them, the agent gets ",[812,1029,1030],{},"SQL_CONSOLE_DISABLED"," and tells you what it couldn't do.",[1033,1034,1035],"warning",{},[780,1036,1037],{},"SQL runs as TotalBase's database role, outside permissions and payload checks. Turn it on while the agent builds what needs it, and off again afterwards if you prefer. Every statement stays in the SQL Console's history and the audit log.",[930,1039,1041],{"id":1040},"create-a-token","Create a token",[780,1043,1044,1045,1048,1049,1051],{},"The agent acts as you, with an administrator's token. In ",[828,1046,1047],{},"My account › Tokens",", create a token with ",[828,1050,762],{}," access. Copy it; it's shown once.",[804,1053,1057],{"className":1054,"code":1055,"language":1056,"meta":810,"style":810},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","export TOTALBASE_TOKEN=tb_...\n","bash",[812,1058,1059],{"__ignoreMap":810},[1060,1061,1064,1068,1072,1076],"span",{"class":1062,"line":1063},"line",1,[1060,1065,1067],{"class":1066},"spNyl","export",[1060,1069,1071],{"class":1070},"sTEyZ"," TOTALBASE_TOKEN",[1060,1073,1075],{"class":1074},"sMK4o","=",[1060,1077,1078],{"class":1070},"tb_...\n",[930,1080,1082],{"id":1081},"add-the-server-to-claude-code","Add the server to Claude Code",[780,1084,1085],{},"Settings › MCP shows the exact command for your instance:",[804,1087,1089],{"className":1054,"code":1088,"language":1056,"meta":810,"style":810},"claude mcp add --transport http totalbase https:\u002F\u002Fops.acme-field.example\u002Fmcp \\\n  --header \"Authorization: Bearer $TOTALBASE_TOKEN\"\n",[812,1090,1091,1119],{"__ignoreMap":810},[1060,1092,1093,1097,1101,1104,1107,1110,1113,1116],{"class":1062,"line":1063},[1060,1094,1096],{"class":1095},"sBMFI","claude",[1060,1098,1100],{"class":1099},"sfazB"," mcp",[1060,1102,1103],{"class":1099}," add",[1060,1105,1106],{"class":1099}," --transport",[1060,1108,1109],{"class":1099}," http",[1060,1111,1112],{"class":1099}," totalbase",[1060,1114,1115],{"class":1099}," https:\u002F\u002Fops.acme-field.example\u002Fmcp",[1060,1117,1118],{"class":1070}," \\\n",[1060,1120,1122,1125,1128,1131,1134],{"class":1062,"line":1121},2,[1060,1123,1124],{"class":1099},"  --header",[1060,1126,1127],{"class":1074}," \"",[1060,1129,1130],{"class":1099},"Authorization: Bearer ",[1060,1132,1133],{"class":1070},"$TOTALBASE_TOKEN",[1060,1135,1136],{"class":1074},"\"\n",[780,1138,1139,1140,1143],{},"Or as a project's ",[812,1141,1142],{},".mcp.json",":",[804,1145,1149],{"className":1146,"code":1147,"language":1148,"meta":810,"style":810},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"mcpServers\": {\n    \"totalbase\": {\n      \"type\": \"http\",\n      \"url\": \"https:\u002F\u002Fops.acme-field.example\u002Fmcp\",\n      \"headers\": { \"Authorization\": \"Bearer ${TOTALBASE_TOKEN}\" }\n    }\n  }\n}\n","json",[812,1150,1151,1156,1172,1187,1211,1232,1267,1273,1279],{"__ignoreMap":810},[1060,1152,1153],{"class":1062,"line":1063},[1060,1154,1155],{"class":1074},"{\n",[1060,1157,1158,1161,1164,1167,1169],{"class":1062,"line":1121},[1060,1159,1160],{"class":1074},"  \"",[1060,1162,1163],{"class":1066},"mcpServers",[1060,1165,1166],{"class":1074},"\"",[1060,1168,1143],{"class":1074},[1060,1170,1171],{"class":1074}," {\n",[1060,1173,1175,1178,1181,1183,1185],{"class":1062,"line":1174},3,[1060,1176,1177],{"class":1074},"    \"",[1060,1179,1180],{"class":1095},"totalbase",[1060,1182,1166],{"class":1074},[1060,1184,1143],{"class":1074},[1060,1186,1171],{"class":1074},[1060,1188,1190,1193,1197,1199,1201,1203,1206,1208],{"class":1062,"line":1189},4,[1060,1191,1192],{"class":1074},"      \"",[1060,1194,1196],{"class":1195},"sbssI","type",[1060,1198,1166],{"class":1074},[1060,1200,1143],{"class":1074},[1060,1202,1127],{"class":1074},[1060,1204,1205],{"class":1099},"http",[1060,1207,1166],{"class":1074},[1060,1209,1210],{"class":1074},",\n",[1060,1212,1214,1216,1219,1221,1223,1225,1228,1230],{"class":1062,"line":1213},5,[1060,1215,1192],{"class":1074},[1060,1217,1218],{"class":1195},"url",[1060,1220,1166],{"class":1074},[1060,1222,1143],{"class":1074},[1060,1224,1127],{"class":1074},[1060,1226,1227],{"class":1099},"https:\u002F\u002Fops.acme-field.example\u002Fmcp",[1060,1229,1166],{"class":1074},[1060,1231,1210],{"class":1074},[1060,1233,1235,1237,1240,1242,1244,1247,1249,1253,1255,1257,1259,1262,1264],{"class":1062,"line":1234},6,[1060,1236,1192],{"class":1074},[1060,1238,1239],{"class":1195},"headers",[1060,1241,1166],{"class":1074},[1060,1243,1143],{"class":1074},[1060,1245,1246],{"class":1074}," {",[1060,1248,1127],{"class":1074},[1060,1250,1252],{"class":1251},"swJcz","Authorization",[1060,1254,1166],{"class":1074},[1060,1256,1143],{"class":1074},[1060,1258,1127],{"class":1074},[1060,1260,1261],{"class":1099},"Bearer ${TOTALBASE_TOKEN}",[1060,1263,1166],{"class":1074},[1060,1265,1266],{"class":1074}," }\n",[1060,1268,1270],{"class":1062,"line":1269},7,[1060,1271,1272],{"class":1074},"    }\n",[1060,1274,1276],{"class":1062,"line":1275},8,[1060,1277,1278],{"class":1074},"  }\n",[1060,1280,1282],{"class":1062,"line":1281},9,[1060,1283,1284],{"class":1074},"}\n",[930,1286,1288],{"id":1287},"describe-what-you-need","Describe what you need",[780,1290,1291,1292,1295,1296,1298],{},"Start Claude Code and write your prompt. ",[812,1293,1294],{},"\u002Fmcp"," lists the ",[812,1297,1180],{}," server and its tools.",[796,1300,1302],{"id":1301},"why-agents-get-it-right","Why agents get it right",[780,1304,1305],{},"An agent is only as good as what it can learn about the system it works on. TotalBase tells it:",[1307,1308,1309,1315,1321,1335],"ul",{},[825,1310,1311,1314],{},[828,1312,1313],{},"How to work."," On connecting, the agent receives an orientation and a set of guides: the order to build things in, modeling, permissions, the query language, DataViews, dashboards, workflows, PDF templates and errors. The guides are generated from the code, so they always match what the server accepts.",[825,1316,1317,1320],{},[828,1318,1319],{},"What exists."," Tools describe the real tables, columns, constraints, roles and screens of your instance before the agent changes anything.",[825,1322,1323,1326,1327,1330,1331,1334],{},[828,1324,1325],{},"What went wrong."," Errors are specific and stable: ",[812,1328,1329],{},"CHECK_VIOLATION"," with your constraint's message, ",[812,1332,1333],{},"FIELD_PERMISSION_DENIED"," naming the field. The agent corrects itself instead of guessing.",[825,1336,1337,1340],{},[828,1338,1339],{},"The rules stay in PostgreSQL."," A constraint or trigger the agent creates holds for every writer, including the agent itself.",[780,1342,1343,1344,1346,1347,876],{},"This documentation is published for agents too: as ",[812,1345,718],{},", as one full file, and as its own MCP server. See ",[1348,1349,718],"a",{"href":719},[796,1351,1353],{"id":1352},"you-stay-in-control","You stay in control",[1307,1355,1356,1362,1374,1380,1390,1396],{},[825,1357,1358,1361],{},[828,1359,1360],{},"Same rules as everyone."," The agent's records go through the Data API, with the same permissions, constraints and guardrails as any user. It can do what its token's user can do, and nothing more.",[825,1363,1364,1367,1368,1370,1371,876],{},[828,1365,1366],{},"Everything is audited."," Every action is in ",[828,1369,577],{},", under your user, marked with the user agent ",[812,1372,1373],{},"TotalBase MCP",[825,1375,1376,1379],{},[828,1377,1378],{},"Nothing reaches users by itself."," The agent builds drafts. Users see a DataView, dashboard or workflow only once it is published, and you can review it first or tell the agent not to publish.",[825,1381,1382,1385,1386,1389],{},[828,1383,1384],{},"Raw SQL is off by default."," The agent works through structured tools. Running SQL needs ",[812,1387,1388],{},"sql_console.token_access",", which only you can turn on in the admin.",[825,1391,1392,1395],{},[828,1393,1394],{},"The agent can't widen its own limits."," MCP settings can only be changed by an administrator signed in to the admin, never with a token.",[825,1397,1398,1401],{},[828,1399,1400],{},"Stop it any time."," Revoke the token, or turn the MCP server off.",[796,1403,1405],{"id":1404},"next-steps","Next steps",[1307,1407,1408,1413,1418,1424],{},[825,1409,1410,1412],{},[1348,1411,710],{"href":711},": a table, permissions, a DataView, a dashboard and a workflow, each from one request, with the calls the agent makes.",[825,1414,1415,1417],{},[1348,1416,20],{"href":21},": build the same kind of screen by hand, to see how each piece works.",[825,1419,1420,1423],{},[1348,1421,1422],{"href":707},"MCP server",": every tool and setting.",[825,1425,1426,876],{},[1348,1427,1428],{"href":703},"AI Agents › Tokens",[1430,1431,1432],"style",{},"html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}",{"title":810,"searchDepth":1063,"depth":1121,"links":1434},[1435,1436,1437,1438,1439,1440],{"id":798,"depth":1121,"text":799},{"id":816,"depth":1121,"text":817},{"id":921,"depth":1121,"text":922},{"id":1301,"depth":1121,"text":1302},{"id":1352,"depth":1121,"text":1353},{"id":1404,"depth":1121,"text":1405},"Describe the application you need in plain language, and an AI agent builds it in TotalBase: tables, rules, roles, screens, dashboards and workflows.","md",null,{},true,{"title":16,"description":1441},"K947znsWtILU_cymUluZRZuxCwdAWLlzLcV9SbJldhQ",[1449,1451],{"title":12,"path":13,"stem":14,"description":1450,"children":-1},"Run TotalBase with Docker against your PostgreSQL 15-18 database.",{"title":20,"path":21,"stem":22,"description":1452,"children":-1},"From an empty database to a working screen and a dashboard in fifteen minutes, by hand.",1792339939424]