[{"data":1,"prerenderedAt":1707},["ShallowReactive",2],{"navigation":3,"\u002Fdata-api\u002Ffiltering":773,"\u002Fdata-api\u002Ffiltering-surround":1702},[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":612,"admin":775,"body":776,"description":1696,"extension":1697,"links":775,"meta":1698,"navigation":1699,"path":613,"seo":1700,"stem":614,"__hash__":1701},"docs\u002F14.data-api\u002F04.filtering.md",null,{"type":777,"value":778,"toc":1687},"minimark",[779,804,814,820,826,831,1176,1183,1211,1215,1218,1224,1227,1233,1251,1257,1263,1269,1287,1291,1294,1300,1307,1310,1404,1438,1444,1458,1462,1465,1550,1571,1575,1586,1600,1648,1665,1669,1683],[780,781,782,786,787,790,791,794,795,799,800,803],"p",{},[783,784,785],"code",{},"where"," chooses which rows a read returns, or which rows a ",[783,788,789],{},"PATCH"," or ",[783,792,793],{},"DELETE"," touches. It uses the same filter syntax as ",[796,797,798],"a",{"href":558},"row filters"," and ",[796,801,802],{"href":562},"payload checks",", written in the query string with brackets:",[805,806,812],"pre",{"className":807,"code":809,"language":810,"meta":811},[808],"language-text","where[\u003Cfield>][\u003Coperator>]=\u003Cvalue>\n","text","",[783,813,809],{"__ignoreMap":811},[805,815,818],{"className":816,"code":817,"language":810,"meta":811},[808],"where[status][_eq]=ASSIGNED\nwhere[due_at][_lt]=$CURRENT_TIMESTAMP\nwhere[site.customer.name][_ilike]=%mercado%\n",[783,819,817],{"__ignoreMap":811},[780,821,822,823,825],{},"Your ",[783,824,785],{}," is combined with your row filters using AND. It can narrow what you may see, never widen it.",[827,828,830],"h2",{"id":829},"operators","Operators",[832,833,834,853],"table",{},[835,836,837],"thead",{},[838,839,840,844,847,850],"tr",{},[841,842,843],"th",{},"Operator",[841,845,846],{},"Means",[841,848,849],{},"Value",[841,851,852],{},"Example",[854,855,856,875,892,909,926,943,960,986,1003,1021,1039,1056,1074,1095,1114,1140,1158],"tbody",{},[838,857,858,864,867,870],{},[859,860,861],"td",{},[783,862,863],{},"_eq",[859,865,866],{},"equal to",[859,868,869],{},"one value",[859,871,872],{},[783,873,874],{},"where[status][_eq]=NEW",[838,876,877,882,885,887],{},[859,878,879],{},[783,880,881],{},"_neq",[859,883,884],{},"different from",[859,886,869],{},[859,888,889],{},[783,890,891],{},"where[status][_neq]=CANCELLED",[838,893,894,899,902,904],{},[859,895,896],{},[783,897,898],{},"_gt",[859,900,901],{},"greater than",[859,903,869],{},[859,905,906],{},[783,907,908],{},"where[total][_gt]=1000",[838,910,911,916,919,921],{},[859,912,913],{},[783,914,915],{},"_gte",[859,917,918],{},"greater than or equal to",[859,920,869],{},[859,922,923],{},[783,924,925],{},"where[total][_gte]=1000",[838,927,928,933,936,938],{},[859,929,930],{},[783,931,932],{},"_lt",[859,934,935],{},"less than",[859,937,869],{},[859,939,940],{},[783,941,942],{},"where[due_at][_lt]=2026-11-01",[838,944,945,950,953,955],{},[859,946,947],{},[783,948,949],{},"_lte",[859,951,952],{},"less than or equal to",[859,954,869],{},[859,956,957],{},[783,958,959],{},"where[due_at][_lte]=2026-10-31",[838,961,962,967,978,981],{},[859,963,964],{},[783,965,966],{},"_like",[859,968,969,970,973,974,977],{},"matches a pattern: ",[783,971,972],{},"%"," any text, ",[783,975,976],{},"_"," one character",[859,979,980],{},"a pattern",[859,982,983],{},[783,984,985],{},"where[number][_like]=WO-0012%",[838,987,988,993,996,998],{},[859,989,990],{},[783,991,992],{},"_ilike",[859,994,995],{},"matches a pattern, ignoring case",[859,997,980],{},[859,999,1000],{},[783,1001,1002],{},"where[name][_ilike]=%güemes%",[838,1004,1005,1010,1013,1016],{},[859,1006,1007],{},[783,1008,1009],{},"_regex",[859,1011,1012],{},"matches a POSIX regular expression",[859,1014,1015],{},"a regular expression",[859,1017,1018],{},[783,1019,1020],{},"where[phone][_regex]=^387",[838,1022,1023,1028,1031,1034],{},[859,1024,1025],{},[783,1026,1027],{},"_in",[859,1029,1030],{},"one of the values",[859,1032,1033],{},"values separated by commas",[859,1035,1036],{},[783,1037,1038],{},"where[status][_in]=NEW,ASSIGNED",[838,1040,1041,1046,1049,1051],{},[859,1042,1043],{},[783,1044,1045],{},"_nin",[859,1047,1048],{},"none of the values",[859,1050,1033],{},[859,1052,1053],{},[783,1054,1055],{},"where[status][_nin]=COMPLETED,CANCELLED",[838,1057,1058,1063,1066,1069],{},[859,1059,1060],{},[783,1061,1062],{},"_between",[859,1064,1065],{},"between two values, both included",[859,1067,1068],{},"two values separated by a comma",[859,1070,1071],{},[783,1072,1073],{},"where[reported_at][_between]=2026-10-01,2026-10-31",[838,1075,1076,1081,1084,1090],{},[859,1077,1078],{},[783,1079,1080],{},"_null",[859,1082,1083],{},"has no value",[859,1085,1086,1089],{},[783,1087,1088],{},"true"," (ignored)",[859,1091,1092],{},[783,1093,1094],{},"where[technician][_null]=true",[838,1096,1097,1102,1105,1109],{},[859,1098,1099],{},[783,1100,1101],{},"_nnull",[859,1103,1104],{},"has a value",[859,1106,1107,1089],{},[783,1108,1088],{},[859,1110,1111],{},[783,1112,1113],{},"where[technician][_nnull]=true",[838,1115,1116,1121,1128,1135],{},[859,1117,1118],{},[783,1119,1120],{},"_contains",[859,1122,1123,1124,1127],{},"the array or ",[783,1125,1126],{},"jsonb"," contains the value",[859,1129,1130,1131,1134],{},"an array literal (",[783,1132,1133],{},"{A,B}",") or JSON",[859,1136,1137],{},[783,1138,1139],{},"where[skills][_contains]={HVAC}",[838,1141,1142,1147,1150,1153],{},[859,1143,1144],{},[783,1145,1146],{},"_contained_by",[859,1148,1149],{},"every element is in the value",[859,1151,1152],{},"an array literal or JSON",[859,1154,1155],{},[783,1156,1157],{},"where[skills][_contained_by]={HVAC,SOLAR}",[838,1159,1160,1165,1168,1171],{},[859,1161,1162],{},[783,1163,1164],{},"_overlap",[859,1166,1167],{},"shares at least one element with the value",[859,1169,1170],{},"an array literal",[859,1172,1173],{},[783,1174,1175],{},"where[skills][_overlap]={SOLAR,ELECTRICAL}",[780,1177,1178,1182],{},[796,1179,1181],{"href":1180},"\u002Froles\u002Frow-filters#operators-and-combinations","Row filters › Operators"," explains each operator in detail, including how rows with no value behave.",[780,1184,1185,1186,790,1188,1191,1192,1195,1196,1198,1199,1202,1203,1206,1207,1210],{},"A value is converted to the column's type: ",[783,1187,1088],{},[783,1189,1190],{},"false"," for booleans, a number for numeric columns (",[783,1193,1194],{},"400 INVALID_TYPE"," otherwise). Anything else is cast by PostgreSQL. Remember to URL-encode values: ",[783,1197,972],{}," is ",[783,1200,1201],{},"%25",", a space is ",[783,1204,1205],{},"%20",". ",[783,1208,1209],{},"curl -G --data-urlencode"," does it for you.",[827,1212,1214],{"id":1213},"several-conditions","Several conditions",[780,1216,1217],{},"Conditions on different fields combine with AND:",[805,1219,1222],{"className":1220,"code":1221,"language":810,"meta":811},[808],"where[status][_eq]=ASSIGNED&where[priority][_eq]=URGENT\n",[783,1223,1221],{"__ignoreMap":811},[780,1225,1226],{},"So do two operators on the same field:",[805,1228,1231],{"className":1229,"code":1230,"language":810,"meta":811},[808],"where[quantity][_gt]=0&where[quantity][_lte]=50\n",[783,1232,1230],{"__ignoreMap":811},[780,1234,1235,1236,1239,1240,799,1243,1206,1246,799,1248,1250],{},"For OR and NOT, use ",[783,1237,1238],{},"_or",", ",[783,1241,1242],{},"_and",[783,1244,1245],{},"_not",[783,1247,1238],{},[783,1249,1242],{}," take a list, written with indexes:",[805,1252,1255],{"className":1253,"code":1254,"language":810,"meta":811},[808],"where[_or][0][priority][_eq]=URGENT&where[_or][1][due_at][_lt]=$CURRENT_TIMESTAMP\n",[783,1256,1254],{"__ignoreMap":811},[780,1258,1259,1260,1262],{},"That reads \"urgent, or overdue\". ",[783,1261,1245],{}," takes one filter:",[805,1264,1267],{"className":1265,"code":1266,"language":810,"meta":811},[808],"where[_not][status][_in]=COMPLETED,CANCELLED\n",[783,1268,1266],{"__ignoreMap":811},[780,1270,1271,1272,1275,1276,1239,1279,1282,1283,1286],{},"Groups nest: ",[783,1273,1274],{},"where[_or][0][_and][0][...]",". A query string holds at most 1000 values and 64 bracket levels per key; past them the request is refused (",[783,1277,1278],{},"QUERY_PARAMETER_LIMIT_EXCEEDED",[783,1280,1281],{},"QUERY_DEPTH_LIMIT_EXCEEDED","). Filters can nest up to ",[783,1284,1285],{},"api.max_filter_depth"," levels (10).",[827,1288,1290],{"id":1289},"relation-paths","Relation paths",[780,1292,1293],{},"Any field can be a dotted path through foreign keys, up to three steps:",[805,1295,1298],{"className":1296,"code":1297,"language":810,"meta":811},[808],"where[site.branch.code][_eq]=SAL\nwhere[technician.user.email][_ilike]=%@acme-field.example\n",[783,1299,1297],{"__ignoreMap":811},[780,1301,1302,1303,1306],{},"You need ",[783,1304,1305],{},"READ"," on each path you filter by, as for the fields you read.",[827,1308,258],{"id":1309},"variables",[832,1311,1312,1321],{},[835,1313,1314],{},[838,1315,1316,1319],{},[841,1317,1318],{},"Variable",[841,1320,849],{},[854,1322,1323,1339,1355,1380,1394],{},[838,1324,1325,1330],{},[859,1326,1327],{},[783,1328,1329],{},"$USER.\u003Ccolumn>",[859,1331,1332,1333,1239,1336],{},"a column of your own user row: ",[783,1334,1335],{},"$USER.id",[783,1337,1338],{},"$USER.branch",[838,1340,1341,1352],{},[859,1342,1343,1239,1346,1239,1349],{},[783,1344,1345],{},"$CURRENT_TIMESTAMP",[783,1347,1348],{},"$CURRENT_DATE",[783,1350,1351],{},"$CURRENT_TIME",[859,1353,1354],{},"now, today, the current time (PostgreSQL's)",[838,1356,1357,1362],{},[859,1358,1359],{},[783,1360,1361],{},"$INTERVAL.\u003Cn>\u003Cunit>",[859,1363,1364,1365,1239,1368,1239,1371,1239,1374,1239,1377],{},"now minus a duration: ",[783,1366,1367],{},"$INTERVAL.15m",[783,1369,1370],{},"$INTERVAL.24h",[783,1372,1373],{},"$INTERVAL.7d",[783,1375,1376],{},"$INTERVAL.2w",[783,1378,1379],{},"$INTERVAL.1y",[838,1381,1382,1391],{},[859,1383,1384,1387,1388],{},[783,1385,1386],{},"$PERIOD.\u003Cperiod>.from"," \u002F ",[783,1389,1390],{},".to",[859,1392,1393],{},"the start (included) and end (excluded) of a calendar period",[838,1395,1396,1401],{},[859,1397,1398],{},[783,1399,1400],{},"$ROW.\u003Ccolumn>",[859,1402,1403],{},"another column of the same row",[780,1405,1406,1407,1239,1410,1239,1413,1239,1416,1239,1419,1239,1422,1239,1425,1239,1428,1239,1431,1239,1434,1437],{},"Periods: ",[783,1408,1409],{},"today",[783,1411,1412],{},"yesterday",[783,1414,1415],{},"this_week",[783,1417,1418],{},"last_week",[783,1420,1421],{},"this_month",[783,1423,1424],{},"last_month",[783,1426,1427],{},"this_quarter",[783,1429,1430],{},"last_quarter",[783,1432,1433],{},"this_year",[783,1435,1436],{},"last_year",". Weeks start on Monday. PostgreSQL calculates them in your time zone, so \"today\" starts at your midnight.",[805,1439,1442],{"className":1440,"code":1441,"language":810,"meta":811},[808],"# orders reported this month\nwhere[reported_at][_gte]=$PERIOD.this_month.from&where[reported_at][_lt]=$PERIOD.this_month.to\n\n# changed in the last 24 hours\nwhere[updated_at][_gte]=$INTERVAL.24h\n\n# my open orders\nwhere[technician.user][_eq]=$USER.id&where[status][_nin]=COMPLETED,CANCELLED\n\n# parts at or below their reorder point\nwhere[quantity][_lte]=$ROW.reorder_point\n",[783,1443,1441],{"__ignoreMap":811},[780,1445,1446,1448,1449,799,1451,1453,1454,1457],{},[783,1447,1373],{}," always means \"seven days ago from now\". It isn't an interval value you can add to a column. Inside ",[783,1450,1027],{},[783,1452,1045],{}," only literal values and ",[783,1455,1456],{},"$USER.*"," are accepted.",[827,1459,1461],{"id":1460},"limits","Limits",[780,1463,1464],{},"To protect the database, a query's size is bounded. Each limit is a setting:",[832,1466,1467,1480],{},[835,1468,1469],{},[838,1470,1471,1474,1477],{},[841,1472,1473],{},"Limit",[841,1475,1476],{},"Default",[841,1478,1479],{},"Error",[854,1481,1482,1495,1507,1519,1538],{},[838,1483,1484,1487,1490],{},[859,1485,1486],{},"query string length",[859,1488,1489],{},"32 KB",[859,1491,1492],{},[783,1493,1494],{},"QUERY_STRING_TOO_LARGE",[838,1496,1497,1500,1503],{},[859,1498,1499],{},"top-level parameters",[859,1501,1502],{},"200",[859,1504,1505],{},[783,1506,1278],{},[838,1508,1509,1512,1514],{},[859,1510,1511],{},"conditions, fields, sorts and relation steps, counted together",[859,1513,1502],{},[859,1515,1516],{},[783,1517,1518],{},"QUERY_COMPLEXITY_LIMIT_EXCEEDED",[838,1520,1521,1531,1534],{},[859,1522,1523,1524,1526,1527,1526,1529],{},"nesting of ",[783,1525,1242],{},"\u002F",[783,1528,1238],{},[783,1530,1245],{},[859,1532,1533],{},"10",[859,1535,1536],{},[783,1537,1281],{},[838,1539,1540,1543,1546],{},[859,1541,1542],{},"relation steps in a path",[859,1544,1545],{},"3",[859,1547,1548],{},[783,1549,1281],{},[780,1551,1552,1553,1555,1556,799,1559,1562,1563,1566,1567,1570],{},"An administrator can turn off ",[783,1554,1009],{},", the containment operators, ",[783,1557,1558],{},"having",[783,1560,1561],{},"count"," per instance (",[783,1564,1565],{},"query.allow_*","), for large tables without the right indexes. A request using one then gets ",[783,1568,1569],{},"400 QUERY_FEATURE_DISABLED",".",[827,1572,1574],{"id":1573},"the-sql-it-runs","The SQL it runs",[780,1576,1577,1578,1581,1582,1585],{},"This is the SQL TotalBase sent to PostgreSQL for the example above, as PostgreSQL's own log recorded it - ids shortened, long column lists cut with ",[783,1579,1580],{},"…",". Every value travels as a parameter (",[783,1583,1584],{},"$1","), never inside the SQL text. \"Urgent or overdue, in the Salta branch\":",[805,1587,1591],{"className":1588,"code":1589,"language":1590,"meta":811,"style":811},"language-http shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","GET \u002Fapi\u002Fpublic\u002Ftable\u002Fwork_orders?fields=number&where[_or][0][priority][_eq]=URGENT&where[_or][1][due_at][_lt]=$CURRENT_TIMESTAMP&where[site.branch.code][_eq]=SAL\n","http",[783,1592,1593],{"__ignoreMap":811},[1594,1595,1598],"span",{"class":1596,"line":1597},"line",1,[1594,1599,1589],{},[805,1601,1605],{"className":1602,"code":1603,"language":1604,"meta":811,"style":811},"language-sql shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","SELECT t0.\"number\" AS \"number\"\nFROM \"public\".\"work_orders\" AS t0\nLEFT JOIN \"public\".\"sites\" AS t1 ON t1.\"id\" = t0.\"site\"\nLEFT JOIN \"public\".\"branches\" AS t2 ON t2.\"id\" = t1.\"branch\"  -- site.branch.code, two steps\nWHERE ((t0.\"priority\" = $1 OR t0.\"due_at\" \u003C CURRENT_TIMESTAMP) AND t2.\"code\" = $2)\nORDER BY t0.\"id\" ASC\nLIMIT $3 OFFSET $4;                                           -- $1 = 'URGENT', $2 = 'SAL'\n","sql",[783,1606,1607,1612,1618,1624,1630,1636,1642],{"__ignoreMap":811},[1594,1608,1609],{"class":1596,"line":1597},[1594,1610,1611],{},"SELECT t0.\"number\" AS \"number\"\n",[1594,1613,1615],{"class":1596,"line":1614},2,[1594,1616,1617],{},"FROM \"public\".\"work_orders\" AS t0\n",[1594,1619,1621],{"class":1596,"line":1620},3,[1594,1622,1623],{},"LEFT JOIN \"public\".\"sites\" AS t1 ON t1.\"id\" = t0.\"site\"\n",[1594,1625,1627],{"class":1596,"line":1626},4,[1594,1628,1629],{},"LEFT JOIN \"public\".\"branches\" AS t2 ON t2.\"id\" = t1.\"branch\"  -- site.branch.code, two steps\n",[1594,1631,1633],{"class":1596,"line":1632},5,[1594,1634,1635],{},"WHERE ((t0.\"priority\" = $1 OR t0.\"due_at\" \u003C CURRENT_TIMESTAMP) AND t2.\"code\" = $2)\n",[1594,1637,1639],{"class":1596,"line":1638},6,[1594,1640,1641],{},"ORDER BY t0.\"id\" ASC\n",[1594,1643,1645],{"class":1596,"line":1644},7,[1594,1646,1647],{},"LIMIT $3 OFFSET $4;                                           -- $1 = 'URGENT', $2 = 'SAL'\n",[780,1649,1650,1652,1653,1656,1657,1660,1661,1664],{},[783,1651,1345],{}," becomes PostgreSQL's own ",[783,1654,1655],{},"CURRENT_TIMESTAMP",", and ",[783,1658,1659],{},"$PERIOD.this_month.from"," becomes ",[783,1662,1663],{},"date_trunc('month', CURRENT_TIMESTAMP)",": PostgreSQL computes them, in the session's time zone, never the client.",[827,1666,1668],{"id":1667},"next-steps","Next steps",[1670,1671,1672,1677],"ul",{},[1673,1674,1675,1570],"li",{},[796,1676,616],{"href":617},[1673,1678,1679,1682],{},[796,1680,1681],{"href":558},"Row filters",": the same syntax in permissions.",[1684,1685,1686],"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);}",{"title":811,"searchDepth":1597,"depth":1614,"links":1688},[1689,1690,1691,1692,1693,1694,1695],{"id":829,"depth":1614,"text":830},{"id":1213,"depth":1614,"text":1214},{"id":1289,"depth":1614,"text":1290},{"id":1309,"depth":1614,"text":258},{"id":1460,"depth":1614,"text":1461},{"id":1573,"depth":1614,"text":1574},{"id":1667,"depth":1614,"text":1668},"The where parameter: operators, relation paths, AND\u002FOR\u002FNOT in a query string, and the variables for users, dates and periods.","md",{},true,{"title":612,"description":1696},"XCh4bg-9-CxZT1-XND4gW4Fxcg3815nR6K-qWOL4Bhc",[1703,1705],{"title":608,"path":609,"stem":610,"description":1704,"children":-1},"Read rows: choose fields and aliases, follow relations, search, sort, paginate and count.",{"title":616,"path":617,"stem":618,"description":1706,"children":-1},"Totals, counts, averages and groups: _sum, _count, _avg, _min, _max, group_by and having.",1792339952599]