[{"data":1,"prerenderedAt":1826},["ShallowReactive",2],{"navigation":3,"\u002Fdashboards\u002Fsettings\u002Fshare":773,"\u002Fdashboards\u002Fsettings\u002Fshare-surround":1821},[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":346,"admin":775,"body":776,"description":1815,"extension":1816,"links":1817,"meta":1818,"navigation":1316,"path":347,"seo":1819,"stem":348,"__hash__":1820},"docs\u002F07.dashboards\u002F05.settings\u002F04.share.md","Dashboards › a Dashboard › Settings › Share",{"type":777,"value":778,"toc":1803},"minimark",[779,799,806,811,816,858,861,865,875,1026,1035,1041,1045,1052,1095,1105,1116,1119,1130,1133,1136,1147,1150,1249,1267,1277,1706,1710,1726,1759,1765,1769,1783,1787,1799],[780,781,782,785,786,789,790,794,795,798],"p",{},[783,784,346],"strong",{}," shows a published dashboard on another site, to visitors without a TotalBase account. Each way it's shown is an ",[783,787,788],{},"embed",": a public link for data that may be public, or a signed embed for a portal that shows each visitor their own data. Acme's public ",[791,792,793],"em",{},"Service status"," page uses a link; its customer portal uses a signed embed of the ",[791,796,797],{},"Customer portal"," dashboard.",[780,800,801,802,805],{},"Changes here apply at once, without publishing. Every embed shows the dashboard's ",[783,803,804],{},"published"," version: a publish updates them all, and a draft never shows.",[807,808],"screenshot",{"caption":809,"id":810},"Settings › Share of the Customer portal dashboard: a signed embed being designed, with its live preview.","dashboard-settings-share",[812,813,815],"h2",{"id":814},"before-you-start","Before you start",[817,818,819,826,847],"ul",{},[820,821,822,825],"li",{},[783,823,824],{},"Allow embedding",", the dashboard's switch at the top. Off, none of its embeds shows anything.",[820,827,828,831,832,837,838,841,842,846],{},[783,829,830],{},"Sites that may embed",", in ",[833,834,836],"a",{"href":835},"\u002Fsettings\u002Ffeatures#dashboards","Settings › Dashboards"," (",[791,839,840],{},"Embedding","): the exact origins allowed to frame an embed, such as ",[843,844,845],"code",{},"https:\u002F\u002Fportal.acme-field.example",". Until there's one, no site can frame any embed; the preview here works anyway.",[820,848,849,852,853,857],{},[783,850,851],{},"The embedding secret",", in the same place, for signed embeds: the ",[833,854,856],{"href":855},"\u002Fsettings\u002Fsecurity#secrets","secret"," your portal's backend signs tokens with. It never reaches a browser.",[780,859,860],{},"Notices on the page say when the dashboard has unpublished changes and when no site may frame an embed yet.",[812,862,864],{"id":863},"designing-an-embed","Designing an embed",[780,866,867,870,871,874],{},[783,868,869],{},"New embed"," opens the form beside a ",[783,872,873],{},"live preview",": the real embed page, at Desktop, Tablet or Phone width, showing exactly what the form says.",[876,877,878,890],"table",{},[879,880,881],"thead",{},[882,883,884,888],"tr",{},[885,886,887],"th",{},"Field",[885,889],{},[891,892,893,908,923,939,953,961,969,981,992,999,1007],"tbody",{},[882,894,895,899],{},[896,897,898],"td",{},"Name",[896,900,901,902,905,906],{},"Up to 32 characters, unique in the dashboard: ",[791,903,904],{},"Website",", ",[791,907,797],{},[882,909,910,913],{},[896,911,912],{},"Kind",[896,914,915,918,919,922],{},[783,916,917],{},"Public link"," or ",[783,920,921],{},"Signed (portal)",". Chosen once",[882,924,925,928],{},[896,926,927],{},"Theme",[896,929,930,905,933,918,936],{},[783,931,932],{},"Auto",[783,934,935],{},"Light",[783,937,938],{},"Dark",[882,940,941,944],{},[896,942,943],{},"Refresh",[896,945,946,905,949,952],{},[783,947,948],{},"As the dashboard",[783,950,951],{},"Off",", or an interval",[882,954,955,958],{},[896,956,957],{},"Show the title and description",[896,959,960],{},"the dashboard's name and description above it",[882,962,963,966],{},[896,964,965],{},"Transparent background",[896,967,968],{},"the embedding page shows through",[882,970,971,974],{},[896,972,973],{},"Allow downloads",[896,975,976,977,980],{},"each widget's ",[783,978,979],{},"⋮"," offers CSV, Excel and an image. Off by default",[882,982,983,986],{},[896,984,985],{},"Show private files",[896,987,988,989],{},"images the queries return that aren't public files, such as a technician's photo. Off by default: ",[791,990,991],{},"Image not available on this link",[882,993,994,996],{},[896,995,258],{},[896,997,998],{},"each published variable's mode and value (below)",[882,1000,1001,1004],{},[896,1002,1003],{},"Sites that may frame it",[896,1005,1006],{},"some of the instance's sites. Empty: all of them",[882,1008,1009,1012],{},[896,1010,1011],{},"Expires",[896,1013,1014,905,1017,905,1020,905,1023],{},[783,1015,1016],{},"Never",[783,1018,1019],{},"In 30 days",[783,1021,1022],{},"In 90 days",[783,1024,1025],{},"In a year",[780,1027,1028,918,1031,1034],{},[783,1029,1030],{},"Create link",[783,1032,1033],{},"Create signed embed"," saves it. Editing an embed keeps its link and its tokens working.",[1036,1037,1038],"note",{},[780,1039,1040],{},"Allow downloads is a convenience, not a protection: whatever the queries return is already in the visitor's browser.",[1042,1043,258],"h3",{"id":1044},"variables",[780,1046,1047,1048,1051],{},"Each variable the published version has gets a mode. A value is written as in the App's address: a preset or ",[843,1049,1050],{},"2026-01-01..2026-03-31"," for a period, commas between several values.",[876,1053,1054,1063],{},[879,1055,1056],{},[882,1057,1058,1061],{},[885,1059,1060],{},"Mode",[885,1062],{},[891,1064,1065,1075,1085],{},[882,1066,1067,1072],{},[896,1068,1069],{},[783,1070,1071],{},"Editable",[896,1073,1074],{},"In the bar: the visitor chooses. The value is where it starts. A new variable is Editable until you say otherwise",[882,1076,1077,1082],{},[896,1078,1079],{},[783,1080,1081],{},"Hidden",[896,1083,1084],{},"Not in the bar: bound to its value, or its default. Not a restriction: it says nothing the dashboard doesn't show",[882,1086,1087,1092],{},[896,1088,1089],{},[783,1090,1091],{},"Locked",[896,1093,1094],{},"Fixed by the embed: the visitor can never change it. The embed's restriction",[780,1096,1097,1100,1101,1104],{},[783,1098,1099],{},"Only Locked restricts data."," Use it with a query such as ",[843,1102,1103],{},"WHERE s.customer = $VAR.customer::uuid",". A public link needs a value for each Locked variable. On a signed embed, a Locked variable left empty is given by the token, per visitor.",[780,1106,1107,1108,1111,1112,1115],{},"An embed has no viewer: ",[843,1109,1110],{},"$USER"," is unavailable, and a widget whose query uses it fails. A click runs only when it filters a variable the visitor may change, or opens a URL marked ",[791,1113,1114],{},"Also in embeds","; the form lists the widgets whose click doesn't run there.",[812,1117,917],{"id":1118},"public-link",[780,1120,1121,1122,1125,1126,1129],{},"The link is the access: ",[843,1123,1124],{},"https:\u002F\u002Facme.example\u002Fadmin\u002Fembed\u002Ftbe_…",". Anyone who has it sees the dashboard. It sits in the embedding page's HTML and also opens outside a frame, where the page says ",[791,1127,1128],{},"Only available embedded",": a deterrent, not security. The sites only decide who may frame it.",[780,1131,1132],{},"Use a public link only for data that may be public, such as orders completed this week and the average response time.",[812,1134,921],{"id":1135},"signed-portal",[780,1137,1138,1139,1142,1143,1146],{},"For private or per-visitor data. The URL to frame is ",[843,1140,1141],{},"https:\u002F\u002Facme.example\u002Fadmin\u002Fembed\u002F\u003Cembed id>#\u003Ctoken>",". For each page view, your portal's backend signs a short-lived token naming the embed and the values that depend on the visitor. The token travels after ",[843,1144,1145],{},"#",", so it's never sent to a server or logged.",[780,1148,1149],{},"The token is a JWT signed with HS256 and the embedding secret. Its payload:",[1151,1152,1157],"pre",{"className":1153,"code":1154,"language":1155,"meta":1156,"style":1156},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{ \"resource\": { \"embed\": \"6f1c2a4e-…\" }, \"params\": { \"customer\": \"b3e9…\" }, \"exp\": 1767225600 }\n","json","",[843,1158,1159],{"__ignoreMap":1156},[1160,1161,1164,1168,1171,1175,1178,1181,1184,1186,1189,1191,1193,1195,1199,1201,1204,1206,1209,1211,1213,1215,1217,1220,1222,1224,1226,1229,1231,1233,1235,1238,1240,1242,1246],"span",{"class":1162,"line":1163},"line",1,[1160,1165,1167],{"class":1166},"sMK4o","{",[1160,1169,1170],{"class":1166}," \"",[1160,1172,1174],{"class":1173},"spNyl","resource",[1160,1176,1177],{"class":1166},"\"",[1160,1179,1180],{"class":1166},":",[1160,1182,1183],{"class":1166}," {",[1160,1185,1170],{"class":1166},[1160,1187,788],{"class":1188},"sBMFI",[1160,1190,1177],{"class":1166},[1160,1192,1180],{"class":1166},[1160,1194,1170],{"class":1166},[1160,1196,1198],{"class":1197},"sfazB","6f1c2a4e-…",[1160,1200,1177],{"class":1166},[1160,1202,1203],{"class":1166}," },",[1160,1205,1170],{"class":1166},[1160,1207,1208],{"class":1173},"params",[1160,1210,1177],{"class":1166},[1160,1212,1180],{"class":1166},[1160,1214,1183],{"class":1166},[1160,1216,1170],{"class":1166},[1160,1218,1219],{"class":1188},"customer",[1160,1221,1177],{"class":1166},[1160,1223,1180],{"class":1166},[1160,1225,1170],{"class":1166},[1160,1227,1228],{"class":1197},"b3e9…",[1160,1230,1177],{"class":1166},[1160,1232,1203],{"class":1166},[1160,1234,1170],{"class":1166},[1160,1236,1237],{"class":1173},"exp",[1160,1239,1177],{"class":1166},[1160,1241,1180],{"class":1166},[1160,1243,1245],{"class":1244},"sbssI"," 1767225600",[1160,1247,1248],{"class":1166}," }\n",[817,1250,1251,1257,1262],{},[820,1252,1253,1256],{},[843,1254,1255],{},"resource.embed",": the embed's id. The dashboard's id never appears.",[820,1258,1259,1261],{},[843,1260,1208],{},": a value for every Locked variable the embed leaves empty, and nothing else.",[820,1263,1264,1266],{},[843,1265,1237],{},": required, in seconds, in the future and at most an hour away by default.",[780,1268,1269,1270,1272,1273,1276],{},"Any other algorithm, a wrong signature, an expired token or a wrong ",[843,1271,1208],{}," is refused. ",[783,1274,1275],{},"Copy payload"," gives the shape for an embed. In Node, with no library:",[1151,1278,1282],{"className":1279,"code":1280,"language":1281,"meta":1156,"style":1156},"language-js shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { createHmac } from 'node:crypto'\n\nconst part = (value) => Buffer.from(JSON.stringify(value)).toString('base64url')\n\nexport function customerPortalUrl(secret, embedId, customerId) {\n  const header = part({ alg: 'HS256', typ: 'JWT' })\n  const payload = part({\n    resource: { embed: embedId },\n    params: { customer: customerId },\n    exp: Math.floor(Date.now() \u002F 1000) + 10 * 60\n  })\n  const signature = createHmac('sha256', secret).update(`${header}.${payload}`).digest('base64url')\n  return `https:\u002F\u002Facme.example\u002Fadmin\u002Fembed\u002F${embedId}#${header}.${payload}.${signature}`\n}\n","js",[843,1283,1284,1311,1318,1382,1387,1419,1469,1486,1506,1525,1575,1583,1655,1700],{"__ignoreMap":1156},[1160,1285,1286,1290,1292,1296,1299,1302,1305,1308],{"class":1162,"line":1163},[1160,1287,1289],{"class":1288},"s7zQu","import",[1160,1291,1183],{"class":1166},[1160,1293,1295],{"class":1294},"sTEyZ"," createHmac",[1160,1297,1298],{"class":1166}," }",[1160,1300,1301],{"class":1288}," from",[1160,1303,1304],{"class":1166}," '",[1160,1306,1307],{"class":1197},"node:crypto",[1160,1309,1310],{"class":1166},"'\n",[1160,1312,1314],{"class":1162,"line":1313},2,[1160,1315,1317],{"emptyLinePlaceholder":1316},true,"\n",[1160,1319,1321,1324,1327,1330,1332,1336,1339,1342,1345,1348,1352,1355,1357,1360,1363,1365,1368,1371,1374,1377,1379],{"class":1162,"line":1320},3,[1160,1322,1323],{"class":1173},"const",[1160,1325,1326],{"class":1294}," part ",[1160,1328,1329],{"class":1166},"=",[1160,1331,837],{"class":1166},[1160,1333,1335],{"class":1334},"sHdIc","value",[1160,1337,1338],{"class":1166},")",[1160,1340,1341],{"class":1173}," =>",[1160,1343,1344],{"class":1294}," Buffer",[1160,1346,1347],{"class":1166},".",[1160,1349,1351],{"class":1350},"s2Zo4","from",[1160,1353,1354],{"class":1294},"(JSON",[1160,1356,1347],{"class":1166},[1160,1358,1359],{"class":1350},"stringify",[1160,1361,1362],{"class":1294},"(value))",[1160,1364,1347],{"class":1166},[1160,1366,1367],{"class":1350},"toString",[1160,1369,1370],{"class":1294},"(",[1160,1372,1373],{"class":1166},"'",[1160,1375,1376],{"class":1197},"base64url",[1160,1378,1373],{"class":1166},[1160,1380,1381],{"class":1294},")\n",[1160,1383,1385],{"class":1162,"line":1384},4,[1160,1386,1317],{"emptyLinePlaceholder":1316},[1160,1388,1390,1393,1396,1399,1401,1403,1406,1409,1411,1414,1416],{"class":1162,"line":1389},5,[1160,1391,1392],{"class":1288},"export",[1160,1394,1395],{"class":1173}," function",[1160,1397,1398],{"class":1350}," customerPortalUrl",[1160,1400,1370],{"class":1166},[1160,1402,856],{"class":1334},[1160,1404,1405],{"class":1166},",",[1160,1407,1408],{"class":1334}," embedId",[1160,1410,1405],{"class":1166},[1160,1412,1413],{"class":1334}," customerId",[1160,1415,1338],{"class":1166},[1160,1417,1418],{"class":1166}," {\n",[1160,1420,1422,1425,1428,1431,1434,1437,1439,1442,1444,1446,1449,1451,1453,1456,1458,1460,1463,1465,1467],{"class":1162,"line":1421},6,[1160,1423,1424],{"class":1173},"  const",[1160,1426,1427],{"class":1294}," header",[1160,1429,1430],{"class":1166}," =",[1160,1432,1433],{"class":1350}," part",[1160,1435,1370],{"class":1436},"swJcz",[1160,1438,1167],{"class":1166},[1160,1440,1441],{"class":1436}," alg",[1160,1443,1180],{"class":1166},[1160,1445,1304],{"class":1166},[1160,1447,1448],{"class":1197},"HS256",[1160,1450,1373],{"class":1166},[1160,1452,1405],{"class":1166},[1160,1454,1455],{"class":1436}," typ",[1160,1457,1180],{"class":1166},[1160,1459,1304],{"class":1166},[1160,1461,1462],{"class":1197},"JWT",[1160,1464,1373],{"class":1166},[1160,1466,1298],{"class":1166},[1160,1468,1381],{"class":1436},[1160,1470,1472,1474,1477,1479,1481,1483],{"class":1162,"line":1471},7,[1160,1473,1424],{"class":1173},[1160,1475,1476],{"class":1294}," payload",[1160,1478,1430],{"class":1166},[1160,1480,1433],{"class":1350},[1160,1482,1370],{"class":1436},[1160,1484,1485],{"class":1166},"{\n",[1160,1487,1489,1492,1494,1496,1499,1501,1503],{"class":1162,"line":1488},8,[1160,1490,1491],{"class":1436},"    resource",[1160,1493,1180],{"class":1166},[1160,1495,1183],{"class":1166},[1160,1497,1498],{"class":1436}," embed",[1160,1500,1180],{"class":1166},[1160,1502,1408],{"class":1294},[1160,1504,1505],{"class":1166}," },\n",[1160,1507,1509,1512,1514,1516,1519,1521,1523],{"class":1162,"line":1508},9,[1160,1510,1511],{"class":1436},"    params",[1160,1513,1180],{"class":1166},[1160,1515,1183],{"class":1166},[1160,1517,1518],{"class":1436}," customer",[1160,1520,1180],{"class":1166},[1160,1522,1413],{"class":1294},[1160,1524,1505],{"class":1166},[1160,1526,1528,1531,1533,1536,1538,1541,1543,1546,1548,1551,1554,1557,1560,1563,1566,1569,1572],{"class":1162,"line":1527},10,[1160,1529,1530],{"class":1436},"    exp",[1160,1532,1180],{"class":1166},[1160,1534,1535],{"class":1294}," Math",[1160,1537,1347],{"class":1166},[1160,1539,1540],{"class":1350},"floor",[1160,1542,1370],{"class":1436},[1160,1544,1545],{"class":1294},"Date",[1160,1547,1347],{"class":1166},[1160,1549,1550],{"class":1350},"now",[1160,1552,1553],{"class":1436},"() ",[1160,1555,1556],{"class":1166},"\u002F",[1160,1558,1559],{"class":1244}," 1000",[1160,1561,1562],{"class":1436},") ",[1160,1564,1565],{"class":1166},"+",[1160,1567,1568],{"class":1244}," 10",[1160,1570,1571],{"class":1166}," *",[1160,1573,1574],{"class":1244}," 60\n",[1160,1576,1578,1581],{"class":1162,"line":1577},11,[1160,1579,1580],{"class":1166},"  }",[1160,1582,1381],{"class":1436},[1160,1584,1586,1588,1591,1593,1595,1597,1599,1602,1604,1606,1609,1611,1613,1616,1618,1621,1624,1627,1629,1632,1635,1638,1640,1642,1645,1647,1649,1651,1653],{"class":1162,"line":1585},12,[1160,1587,1424],{"class":1173},[1160,1589,1590],{"class":1294}," signature",[1160,1592,1430],{"class":1166},[1160,1594,1295],{"class":1350},[1160,1596,1370],{"class":1436},[1160,1598,1373],{"class":1166},[1160,1600,1601],{"class":1197},"sha256",[1160,1603,1373],{"class":1166},[1160,1605,1405],{"class":1166},[1160,1607,1608],{"class":1294}," secret",[1160,1610,1338],{"class":1436},[1160,1612,1347],{"class":1166},[1160,1614,1615],{"class":1350},"update",[1160,1617,1370],{"class":1436},[1160,1619,1620],{"class":1166},"`${",[1160,1622,1623],{"class":1294},"header",[1160,1625,1626],{"class":1166},"}",[1160,1628,1347],{"class":1197},[1160,1630,1631],{"class":1166},"${",[1160,1633,1634],{"class":1294},"payload",[1160,1636,1637],{"class":1166},"}`",[1160,1639,1338],{"class":1436},[1160,1641,1347],{"class":1166},[1160,1643,1644],{"class":1350},"digest",[1160,1646,1370],{"class":1436},[1160,1648,1373],{"class":1166},[1160,1650,1376],{"class":1197},[1160,1652,1373],{"class":1166},[1160,1654,1381],{"class":1436},[1160,1656,1658,1661,1664,1667,1669,1672,1674,1676,1678,1680,1682,1684,1686,1688,1690,1692,1694,1697],{"class":1162,"line":1657},13,[1160,1659,1660],{"class":1288},"  return",[1160,1662,1663],{"class":1166}," `",[1160,1665,1666],{"class":1197},"https:\u002F\u002Facme.example\u002Fadmin\u002Fembed\u002F",[1160,1668,1631],{"class":1166},[1160,1670,1671],{"class":1294},"embedId",[1160,1673,1626],{"class":1166},[1160,1675,1145],{"class":1197},[1160,1677,1631],{"class":1166},[1160,1679,1623],{"class":1294},[1160,1681,1626],{"class":1166},[1160,1683,1347],{"class":1197},[1160,1685,1631],{"class":1166},[1160,1687,1634],{"class":1294},[1160,1689,1626],{"class":1166},[1160,1691,1347],{"class":1197},[1160,1693,1631],{"class":1166},[1160,1695,1696],{"class":1294},"signature",[1160,1698,1699],{"class":1166},"}`\n",[1160,1701,1703],{"class":1162,"line":1702},14,[1160,1704,1705],{"class":1166},"}\n",[812,1707,1709],{"id":1708},"its-embeds","Its embeds",[780,1711,1712,1713,905,1716,905,1719,905,1722,1725],{},"The list shows each embed's name, kind, status (",[783,1714,1715],{},"Active",[783,1717,1718],{},"Expired",[783,1720,1721],{},"Revoked",[783,1723,1724],{},"Needs update","), when it was last used and when it expires, with:",[817,1727,1728,1741,1747,1753],{},[820,1729,1730,1733,1734,1737,1738,1740],{},[783,1731,1732],{},"Copy link"," (a public link) or ",[783,1735,1736],{},"Copy URL"," and ",[783,1739,1275],{}," (a signed embed);",[820,1742,1743,1746],{},[783,1744,1745],{},"Copy iframe",": the frame, with a listener that sizes it to the dashboard's height;",[820,1748,1749,1752],{},[783,1750,1751],{},"Edit",";",[820,1754,1755,1758],{},[783,1756,1757],{},"Revoke",": it stops at once, for good. A revoked embed can then be deleted.",[780,1760,1761,1762,1347],{},"Creating, changing, revoking and deleting an embed are recorded in the ",[833,1763,1764],{"href":584},"audit log",[1042,1766,1768],{"id":1767},"failing-closed","Failing closed",[780,1770,1771,1772,1775,1776,1778,1779,1782],{},"Variables change between versions. If the published version no longer has a variable an embed ",[783,1773,1774],{},"locks",", that embed stops showing anything (",[791,1777,1724],{},"), rather than show the dashboard without its restriction. Before you publish, the editor's ",[783,1780,1781],{},"Publish"," lists the embeds it would stop. A variable an embed doesn't lock that's gone is simply gone.",[812,1784,1786],{"id":1785},"next-steps","Next steps",[817,1788,1789,1794],{},[820,1790,1791,1793],{},[833,1792,258],{"href":340},": the variables an embed locks.",[820,1795,1796,1798],{},[833,1797,836],{"href":835},": sites, secret and token lifetime.",[1800,1801,1802],"style",{},"html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}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 .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 .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}",{"title":1156,"searchDepth":1163,"depth":1313,"links":1804},[1805,1806,1809,1810,1811,1814],{"id":814,"depth":1313,"text":815},{"id":863,"depth":1313,"text":864,"children":1807},[1808],{"id":1044,"depth":1320,"text":258},{"id":1118,"depth":1313,"text":917},{"id":1135,"depth":1313,"text":921},{"id":1708,"depth":1313,"text":1709,"children":1812},[1813],{"id":1767,"depth":1320,"text":1768},{"id":1785,"depth":1313,"text":1786},"Public links and signed embeds, to show a dashboard outside TotalBase.","md",null,{},{"title":346,"description":1815},"1LJI5lzuaARdzhHugwEzEX6fD_-lOnd9PzKJ6kQyD3A",[1822,1824],{"title":193,"path":343,"stem":344,"description":1823,"children":-1},"How often the App re-runs the widgets.",{"title":207,"path":350,"stem":351,"description":1825,"children":-1},"The roles that open the dashboard.",1792339966106]