[{"data":1,"prerenderedAt":1406},["ShallowReactive",2],{"navigation":3,"\u002Fgetting-started\u002Fquickstart-by-hand":773,"\u002Fgetting-started\u002Fquickstart-by-hand-surround":1401},[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":20,"admin":775,"body":776,"description":1396,"extension":1397,"links":775,"meta":1398,"navigation":906,"path":21,"seo":1399,"stem":22,"__hash__":1400},"docs\u002F01.getting-started\u002F04.quickstart-by-hand.md",null,{"type":777,"value":778,"toc":1392},"minimark",[779,787,796,1254,1259,1292,1339,1343,1388],[780,781,782,783,786],"p",{},"This guide builds a small piece of Acme's field service application by hand: a work orders table, a screen over it in the App, and a dashboard. Along the way you'll see where each kind of rule lives. You need a running instance (see ",[784,785,12],"a",{"href":13},") and its administrator account.",[788,789,790],"tip",{},[780,791,792,793,795],{},"Prefer to describe it and let an AI agent build it? See ",[784,794,16],{"href":17},". Doing it once by hand shows you what the agent is doing.",[797,798,799,804,811,955,958,969,973,1013,1018,1022,1047,1050,1054,1067,1089,1100,1104,1108,1118,1122,1126,1140,1143,1146,1150,1188,1192,1202,1227,1234,1243,1250],"steps",{},[800,801,803],"h3",{"id":802},"create-a-table","Create a table",[780,805,806,807,810],{},"Open ",[808,809,104],"strong",{}," in the rail and run:",[812,813,818],"pre",{"className":814,"code":815,"language":816,"meta":817,"style":817},"language-sql shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","CREATE TABLE public.work_orders (\n  id          uuid PRIMARY KEY DEFAULT gen_random_uuid(),\n  title       text NOT NULL,\n  site        text NOT NULL,\n  priority    text NOT NULL DEFAULT 'NORMAL'\n              CHECK (priority IN ('LOW', 'NORMAL', 'HIGH', 'URGENT')),\n  status      text NOT NULL DEFAULT 'NEW'\n              CHECK (status IN ('NEW', 'ASSIGNED', 'IN_PROGRESS', 'COMPLETED')),\n  resolution  text,\n  reported_at timestamptz NOT NULL DEFAULT now(),\n  CONSTRAINT work_orders_completed_resolution\n    CHECK (status \u003C> 'COMPLETED' OR resolution IS NOT NULL)\n);\n\nCOMMENT ON CONSTRAINT work_orders_completed_resolution ON public.work_orders\n  IS 'Write the resolution before completing the order.';\n\nINSERT INTO public.work_orders (title, site, priority, status) VALUES\n  ('Compressor trips after 10 minutes', 'Mercado del Norte - Depósito', 'URGENT', 'NEW'),\n  ('Yearly maintenance, 4 split units', 'Hotel Salta - Lobby', 'NORMAL', 'ASSIGNED'),\n  ('Inverter shows error 31', 'Finca Las Moras - Solar field', 'HIGH', 'IN_PROGRESS'),\n  ('Install 2 units in new offices', 'Estudio Paz - 3rd floor', 'LOW', 'NEW');\n","sql","",[819,820,821,829,835,841,847,853,859,865,871,877,883,889,895,901,908,914,920,925,931,937,943,949],"code",{"__ignoreMap":817},[822,823,826],"span",{"class":824,"line":825},"line",1,[822,827,828],{},"CREATE TABLE public.work_orders (\n",[822,830,832],{"class":824,"line":831},2,[822,833,834],{},"  id          uuid PRIMARY KEY DEFAULT gen_random_uuid(),\n",[822,836,838],{"class":824,"line":837},3,[822,839,840],{},"  title       text NOT NULL,\n",[822,842,844],{"class":824,"line":843},4,[822,845,846],{},"  site        text NOT NULL,\n",[822,848,850],{"class":824,"line":849},5,[822,851,852],{},"  priority    text NOT NULL DEFAULT 'NORMAL'\n",[822,854,856],{"class":824,"line":855},6,[822,857,858],{},"              CHECK (priority IN ('LOW', 'NORMAL', 'HIGH', 'URGENT')),\n",[822,860,862],{"class":824,"line":861},7,[822,863,864],{},"  status      text NOT NULL DEFAULT 'NEW'\n",[822,866,868],{"class":824,"line":867},8,[822,869,870],{},"              CHECK (status IN ('NEW', 'ASSIGNED', 'IN_PROGRESS', 'COMPLETED')),\n",[822,872,874],{"class":824,"line":873},9,[822,875,876],{},"  resolution  text,\n",[822,878,880],{"class":824,"line":879},10,[822,881,882],{},"  reported_at timestamptz NOT NULL DEFAULT now(),\n",[822,884,886],{"class":824,"line":885},11,[822,887,888],{},"  CONSTRAINT work_orders_completed_resolution\n",[822,890,892],{"class":824,"line":891},12,[822,893,894],{},"    CHECK (status \u003C> 'COMPLETED' OR resolution IS NOT NULL)\n",[822,896,898],{"class":824,"line":897},13,[822,899,900],{},");\n",[822,902,904],{"class":824,"line":903},14,[822,905,907],{"emptyLinePlaceholder":906},true,"\n",[822,909,911],{"class":824,"line":910},15,[822,912,913],{},"COMMENT ON CONSTRAINT work_orders_completed_resolution ON public.work_orders\n",[822,915,917],{"class":824,"line":916},16,[822,918,919],{},"  IS 'Write the resolution before completing the order.';\n",[822,921,923],{"class":824,"line":922},17,[822,924,907],{"emptyLinePlaceholder":906},[822,926,928],{"class":824,"line":927},18,[822,929,930],{},"INSERT INTO public.work_orders (title, site, priority, status) VALUES\n",[822,932,934],{"class":824,"line":933},19,[822,935,936],{},"  ('Compressor trips after 10 minutes', 'Mercado del Norte - Depósito', 'URGENT', 'NEW'),\n",[822,938,940],{"class":824,"line":939},20,[822,941,942],{},"  ('Yearly maintenance, 4 split units', 'Hotel Salta - Lobby', 'NORMAL', 'ASSIGNED'),\n",[822,944,946],{"class":824,"line":945},21,[822,947,948],{},"  ('Inverter shows error 31', 'Finca Las Moras - Solar field', 'HIGH', 'IN_PROGRESS'),\n",[822,950,952],{"class":824,"line":951},22,[822,953,954],{},"  ('Install 2 units in new offices', 'Estudio Paz - 3rd floor', 'LOW', 'NEW');\n",[780,956,957],{},"The rules are in the table itself: the allowed priorities and statuses, and \"a completed order has a resolution\". PostgreSQL enforces them for every writer: the screens you'll build, the API, a script. The comment on the constraint is the message users will see when they break it.",[780,959,960,961,964,965,968],{},"You can also create tables visually, with ",[808,962,963],{},"Database › New table"," and ",[808,966,967],{},"Add column",".",[800,970,972],{"id":971},"expose-it","Expose it",[780,974,975,976,978,979,982,983,985,986,989,990,993,994,997,998,1001,1002,964,1005,1008,1009,1012],{},"Every table starts hidden. Open ",[808,977,86],{},", choose the ",[819,980,981],{},"public"," schema's ",[808,984,92],{},", and in the ",[819,987,988],{},"work_orders"," row's ",[808,991,992],{},"⋮"," menu choose ",[808,995,996],{},"Endpoints",". Turn on ",[819,999,1000],{},"GET",", ",[819,1003,1004],{},"POST",[819,1006,1007],{},"PATCH",", so screens can read, create and edit orders. Leave ",[819,1010,1011],{},"DELETE"," off.",[1014,1015],"screenshot",{"caption":1016,"id":1017},"The Endpoints dialog of work_orders, with GET, POST and PATCH on.","quickstart-endpoints",[800,1019,1021],{"id":1020},"give-the-statuses-colors","Give the statuses colors",[780,1023,1024,1025,1027,1028,1031,1032,1035,1036,1039,1040,1043,1044,968],{},"Still in Database, open ",[819,1026,988],{}," and its ",[808,1029,1030],{},"Columns"," tab. Open the ",[819,1033,1034],{},"status"," column: because it has a ",[819,1037,1038],{},"CHECK"," list, its ",[808,1041,1042],{},"Options"," list each value. Give each one a label and a color (New gray, Assigned blue, In progress amber, Completed green). Do the same for ",[819,1045,1046],{},"priority",[780,1048,1049],{},"Every screen that shows these columns will now use these labels and colors.",[800,1051,1053],{"id":1052},"make-a-screen-of-it","Make a screen of it",[780,1055,1056,1057,1059,1060,1062,1063,1066],{},"Still on the ",[819,1058,988],{}," page in ",[808,1061,86],{},", click ",[808,1064,1065],{},"Create DataView",". One window asks three things:",[1068,1069,1070,1077,1083],"ol",{},[1071,1072,1073,1076],"li",{},[808,1074,1075],{},"Name",": \"Work orders\".",[1071,1078,1079,1082],{},[808,1080,1081],{},"Who opens it",": leave it empty for now; you'll give it to a role below.",[1071,1084,1085,1088],{},[808,1086,1087],{},"Publish now",": keep it on.",[780,1090,1091,1092,1095,1096,1099],{},"Click ",[808,1093,1094],{},"Create",". TotalBase makes a table of the orders, with every column, and publishes it. ",[808,1097,1098],{},"More options…"," opens the full wizard instead, for other kinds of screens.",[1014,1101],{"caption":1102,"id":1103},"Create DataView on the work_orders table: a name, the roles that open it, published at once.","quickstart-table-create",[800,1105,1107],{"id":1106},"open-it-in-the-app","Open it in the App",[780,1109,1091,1110,1112,1113,1117],{},[808,1111,64],{}," in the rail. ",[1114,1115,1116],"em",{},"Work orders"," is in the menu: a table of the orders with the statuses and priorities in their colors. Search, sort by a column, and click a row to open the order in its form.",[1014,1119],{"caption":1120,"id":1121},"Work orders in the App, as a table.","type-table",[800,1123,1125],{"id":1124},"try-a-rule","Try a rule",[780,1127,806,1128,1131,1132,1135,1136,1139],{},[1114,1129,1130],{},"Inverter shows error 31",", set ",[808,1133,1134],{},"Status"," to ",[1114,1137,1138],{},"Completed"," and save. PostgreSQL refuses it, because the order has no resolution, and the App shows your constraint's message: \"Write the resolution before completing the order.\"",[780,1141,1142],{},"Write a resolution and save again. Now it's completed.",[780,1144,1145],{},"You didn't write any validation in the screen. The rule lives in the database, so it holds everywhere: in this table, in the API, and in anything an AI agent builds later.",[800,1147,1149],{"id":1148},"add-a-kanban-view","Add a kanban view",[780,1151,1152,1153,1156,1157,1159,1160,1163,1164,1167,1168,1170,1171,1173,1174,1177,1178,1135,1181,1184,1185,968],{},"The same rows can also be a board. Open ",[808,1154,1155],{},"DataViews › Work orders › Settings › Views",", and on the ",[808,1158,144],{}," row turn on ",[808,1161,1162],{},"Offer",": it proposes ",[808,1165,1166],{},"Group by"," ",[819,1169,1034],{},", because that column has a ",[819,1172,1038],{}," list. ",[808,1175,1176],{},"Publish",". In the App, the toolbar now switches between the table and the kanban, and dragging a card from ",[1114,1179,1180],{},"New",[1114,1182,1183],{},"Assigned"," saves at once. See ",[784,1186,1187],{"href":197},"Settings › Views",[800,1189,1191],{"id":1190},"add-a-dashboard","Add a dashboard",[780,1193,806,1194,1197,1198,1201],{},[808,1195,1196],{},"Dashboards › New Dashboard",", name it \"Operations\", and add a ",[808,1199,1200],{},"Bar chart"," widget. A widget is a SQL query:",[812,1203,1205],{"className":814,"code":1204,"language":816,"meta":817,"style":817},"SELECT status, count(*) AS orders\nFROM work_orders\nGROUP BY status\nORDER BY status\n",[819,1206,1207,1212,1217,1222],{"__ignoreMap":817},[822,1208,1209],{"class":824,"line":825},[822,1210,1211],{},"SELECT status, count(*) AS orders\n",[822,1213,1214],{"class":824,"line":831},[822,1215,1216],{},"FROM work_orders\n",[822,1218,1219],{"class":824,"line":837},[822,1220,1221],{},"GROUP BY status\n",[822,1223,1224],{"class":824,"line":843},[822,1225,1226],{},"ORDER BY status\n",[780,1228,1229,1230,1233],{},"Add a ",[808,1231,1232],{},"KPI"," widget with the open orders:",[812,1235,1237],{"className":814,"code":1236,"language":816,"meta":817,"style":817},"SELECT count(*) FROM work_orders WHERE status \u003C> 'COMPLETED'\n",[819,1238,1239],{"__ignoreMap":817},[822,1240,1241],{"class":824,"line":825},[822,1242,1236],{},[780,1244,1245,1247,1248,968],{},[808,1246,1176],{},", and the dashboard appears in the App next to ",[1114,1249,1116],{},[1014,1251],{"caption":1252,"id":1253},"The Operations dashboard: orders by status and the open count.","quickstart-dashboard",[1255,1256,1258],"h2",{"id":1257},"what-youve-seen","What you've seen",[1260,1261,1262,1268,1274,1280,1286],"ul",{},[1071,1263,1264,1267],{},[808,1265,1266],{},"PostgreSQL holds the rules."," The allowed values, required fields and \"completed needs a resolution\" are constraints. TotalBase shows their messages instead of re-implementing them.",[1071,1269,1270,1273],{},[808,1271,1272],{},"Nothing is exposed until you say so."," The table was hidden until you enabled its endpoints.",[1071,1275,1276,1279],{},[808,1277,1278],{},"Presentation is set once."," Labels and colors are set on the column, and every screen inherits them.",[1071,1281,1282,1285],{},[808,1283,1284],{},"Drafts and publishing."," The dashboard was a draft until you published it, and so was the kanban view: what people use changes only when you publish.",[1071,1287,1288,1291],{},[808,1289,1290],{},"The same table is already an API."," The endpoints you enabled serve the screen and any other client:",[812,1293,1297],{"className":1294,"code":1295,"language":1296,"meta":817,"style":817},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","curl -s \"http:\u002F\u002Flocalhost:3050\u002Fapi\u002Fpublic\u002Ftable\u002Fwork_orders?fields=title,status&where[status][_neq]=COMPLETED\" \\\n  -H \"Authorization: Bearer $TOKEN\"\n","bash",[819,1298,1299,1323],{"__ignoreMap":817},[822,1300,1301,1305,1309,1313,1316,1319],{"class":824,"line":825},[822,1302,1304],{"class":1303},"sBMFI","curl",[822,1306,1308],{"class":1307},"sfazB"," -s",[822,1310,1312],{"class":1311},"sMK4o"," \"",[822,1314,1315],{"class":1307},"http:\u002F\u002Flocalhost:3050\u002Fapi\u002Fpublic\u002Ftable\u002Fwork_orders?fields=title,status&where[status][_neq]=COMPLETED",[822,1317,1318],{"class":1311},"\"",[822,1320,1322],{"class":1321},"sTEyZ"," \\\n",[822,1324,1325,1328,1330,1333,1336],{"class":824,"line":831},[822,1326,1327],{"class":1307},"  -H",[822,1329,1312],{"class":1311},[822,1331,1332],{"class":1307},"Authorization: Bearer ",[822,1334,1335],{"class":1321},"$TOKEN",[822,1337,1338],{"class":1311},"\"\n",[1255,1340,1342],{"id":1341},"next-steps","Next steps",[1260,1344,1345,1357,1366,1374,1381],{},[1071,1346,1347,1350,1351,964,1354,968],{},[808,1348,1349],{},"Give it to people."," Add users to the Dispatcher role, and choose exactly which fields it reads: ",[784,1352,1353],{"href":554},"Granting permissions",[784,1355,1356],{"href":60},"Object access",[1071,1358,1359,1362,1363,968],{},[808,1360,1361],{},"Limit what each one sees."," Technicians see only their own orders: ",[784,1364,1365],{"href":558},"Row filters",[1071,1367,1368,1371,1372,968],{},[808,1369,1370],{},"Automate."," Email the customer when an order is completed: ",[784,1373,356],{"href":362},[1071,1375,1376,1167,1379,968],{},[808,1377,1378],{},"Use it from code.",[784,1380,595],{"href":601},[1071,1382,1383,1167,1386,968],{},[808,1384,1385],{},"Let an agent do the rest.",[784,1387,16],{"href":17},[1389,1390,1391],"style",{},"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 .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}",{"title":817,"searchDepth":825,"depth":831,"links":1393},[1394,1395],{"id":1257,"depth":831,"text":1258},{"id":1341,"depth":831,"text":1342},"From an empty database to a working screen and a dashboard in fifteen minutes, by hand.","md",{},{"title":20,"description":1396},"oKTqKBvfTbxXB4Q9dSf1Nv3DAL7KUfeVnZbttl0Aibg",[1402,1404],{"title":16,"path":17,"stem":18,"description":1403,"children":-1},"Describe the application you need in plain language, and an AI agent builds it in TotalBase: tables, rules, roles, screens, dashboards and workflows.",{"title":24,"path":25,"stem":26,"description":1405,"children":-1},"A tour of the administration screens and what each area is for.",1792339939424]