[{"data":1,"prerenderedAt":608},["ShallowReactive",2],{"doc:\u002Fdocs\u002Fcapabilities":3,"docs-nav":416},{"id":4,"title":5,"body":6,"description":16,"extension":408,"meta":409,"navigation":411,"path":412,"seo":413,"stem":414,"__hash__":415},"docs\u002Fdocs\u002Fcapabilities\u002FREADME.md","Capabilities",{"type":7,"value":8,"toc":396},"minimark",[9,13,17,24,30,35,40,136,140,208,212,284,288,328,332,335],[10,11,5],"h1",{"id":12},"capabilities",[14,15,16],"p",{},"What Tabularia does, one capability per page: preparing data on a canvas, analysing it,\nasking it questions, printing it as reports, showing it on dashboards, running Python, R, SQL and container images\non it, chaining and scheduling the work, and choosing where it is computed. Each page\nsays where the feature is in the interface, how it works, who may use it and what it\ndoes not do, with an example on the sample data of the Docker Compose stack.",[14,18,19],{},[20,21],"img",{"alt":22,"src":23},"The flow editor with the sample flow Margin by Category and Month","\u002Fmedia\u002Fguide\u002Fflows\u002Fflow-editor-margin.png",[14,25,26],{},[27,28,29],"em",{},"The flow editor, where most of the work starts: the sample flow «Margin by Category and Month» with the selected step's rows below.",[31,32,34],"h2",{"id":33},"the-map","The map",[36,37,39],"h3",{"id":38},"prepare-and-analyse","Prepare and analyse",[41,42,43,59],"table",{},[44,45,46],"thead",{},[47,48,49,53,56],"tr",{},[50,51,52],"th",{},"Capability",[50,54,55],{},"What it gives you",[50,57,58],{},"Page",[60,61,62,78,91,104,123],"tbody",{},[47,63,64,68,71],{},[65,66,67],"td",{},"Low-code flows",[65,69,70],{},"A pipeline drawn on a canvas: sources, 19 transformations and a loop, outputs, each step previewed on the whole table",[65,72,73],{},[74,75,77],"a",{"href":76},"\u002Fdocs\u002Fcapabilities\u002Fflows","Flows",[47,79,80,83,86],{},[65,81,82],{},"Preview and analysis",[65,84,85],{},"The data of every step as a table or a chart, the Viewer with filters, computed fields and pivots, saved views, CSV and Excel downloads",[65,87,88],{},[74,89,82],{"href":90},"\u002Fdocs\u002Fcapabilities\u002Fpreview-and-analysis",[47,92,93,96,99],{},[65,94,95],{},"Ask your data",[65,97,98],{},"Questions in plain language over the datasources you may read, answered with the query and the table behind the numbers",[65,100,101],{},[74,102,95],{"href":103},"\u002Fdocs\u002Fcapabilities\u002Fask-your-data",[47,105,106,109,112],{},[65,107,108],{},"Pixel-perfect reports",[65,110,111],{},"Paginated reports designed in the browser: bands in millimetres, tables grouped with subtotals over many pages, 14 kinds of chart and KPI cards, parameters; read on screen, downloaded as PDF or Excel, sent by email",[65,113,114,118,119],{},[74,115,117],{"href":116},"\u002Fdocs\u002Fcapabilities\u002Freports","Reports",", ",[74,120,122],{"href":121},"\u002Fdocs\u002Fcapabilities\u002Freport-functions","functions",[47,124,125,128,131],{},[65,126,127],{},"Dashboards",[65,129,130],{},"A screen of live tiles on an adaptive grid: KPIs, 14 kinds of chart, tables, matrices; parameters, a click on a chart that filters the others, a refresh shared by everyone; a PDF or an image, an email from a flow group",[65,132,133],{},[74,134,127],{"href":135},"\u002Fdocs\u002Fcapabilities\u002Fdashboards",[36,137,139],{"id":138},"code-and-containers","Code and containers",[41,141,142,152],{},[44,143,144],{},[47,145,146,148,150],{},[50,147,52],{},[50,149,55],{},[50,151,58],{},[60,153,154,167,180,194],{},[47,155,156,159,162],{},[65,157,158],{},"Python and R",[65,160,161],{},"Code in environments an administrator defines, run as Kubernetes Jobs, as a step of a flow or as a saved script",[65,163,164],{},[74,165,158],{"href":166},"\u002Fdocs\u002Fscripting",[47,168,169,172,175],{},[65,170,171],{},"SQL scripts",[65,173,174],{},"SQL kept in a folder with its versions, run on the catalogue or on a database connection, exported or written into a datasource",[65,176,177],{},[74,178,171],{"href":179},"\u002Fdocs\u002Fsql-scripts",[47,181,182,185,188],{},[65,183,184],{},"marimo notebooks",[65,186,187],{},"Notebooks written in marimo's editor, kept in a folder and opened as web apps that read the datasources with their author's rights",[65,189,190],{},[74,191,193],{"href":192},"\u002Fdocs\u002Fcapabilities\u002Fnotebooks","marimo notebooks as apps",[47,195,196,199,202],{},[65,197,198],{},"Docker images in flows",[65,200,201],{},"Your own images, from the registries an administrator grants, run as a step of a flow with its input and output",[65,203,204],{},[74,205,207],{"href":206},"\u002Fdocs\u002Fcontainer-node","The Container node",[36,209,211],{"id":210},"orchestrate","Orchestrate",[41,213,214,224],{},[44,215,216],{},[47,217,218,220,222],{},[50,219,52],{},[50,221,55],{},[50,223,58],{},[60,225,226,239,252,271],{},[47,227,228,231,234],{},[65,229,230],{},"Flow groups",[65,232,233],{},"Flows, refreshes, scripts, images and emails in steps: the cells of a step in parallel, the steps in order",[65,235,236],{},[74,237,230],{"href":238},"\u002Fdocs\u002Fcapabilities\u002Fflow-groups",[47,240,241,244,247],{},[65,242,243],{},"Scheduling",[65,245,246],{},"Flows, datasource refreshes, scripts and flow groups on a cron, in the installation's time zone, with an email when a scheduled flow fails",[65,248,249],{},[74,250,243],{"href":251},"\u002Fdocs\u002Fcapabilities\u002Fscheduling",[47,253,254,257,265],{},[65,255,256],{},"Dynamic dates",[65,258,259,260,264],{},"File names, folders, API calls and outputs with dates that move by themselves (",[261,262,263],"code",{},"{yesterday:yyyyMMdd}",") and ranges of days",[65,266,267],{},[74,268,270],{"href":269},"\u002Fdocs\u002Fplaceholders","Placeholders",[47,272,273,276,279],{},[65,274,275],{},"Pushmail",[65,277,278],{},"Datasources sent by email as Excel files, reports as PDF or Excel with their summary in the message, dashboards as PDF or image, as a step of a flow group",[65,280,281],{},[74,282,275],{"href":283},"\u002Fdocs\u002Fpushmail",[36,285,287],{"id":286},"where-it-runs-and-where-it-goes","Where it runs, and where it goes",[41,289,290,300],{},[44,291,292],{},[47,293,294,296,298],{},[50,295,52],{},[50,297,55],{},[50,299,58],{},[60,301,302,315],{},[47,303,304,307,310],{},[65,305,306],{},"Engines",[65,308,309],{},"The same flow on Polars, DuckDB, chDB, an external ClickHouse or BigQuery, one engine for design and another for production",[65,311,312],{},[74,313,306],{"href":314},"\u002Fdocs\u002Fcapabilities\u002Fengines",[47,316,317,320,323],{},[65,318,319],{},"Export to dbt",[65,321,322],{},"A flow as a dbt project: models, sources, tests from the data contract, ready for your repository",[65,324,325],{},[74,326,319],{"href":327},"\u002Fdocs\u002Fdbt-export",[31,329,331],{"id":330},"common-ground","Common ground",[14,333,334],{},"A few things hold for every capability above.",[336,337,338,351,367,373,379,385],"ul",{},[339,340,341,345,346,350],"li",{},[342,343,344],"strong",{},"Everything lives in folders."," Flows, datasources, saved views, scripts, SQL\nscripts, notebooks, reports, dashboards, flow groups and connections are objects in a folder, and the folder's\npermissions decide who sees, runs, edits or connects: VIEW, RUN, EDIT, MANAGE and\nCONNECT (",[74,347,349],{"href":348},"\u002Fdocs\u002Fgovernance\u002Fpermissions","Permissions",").",[339,352,353,356,357,361,362,366],{},[342,354,355],{},"Datasources are the shared currency."," Flows read datasources and publish new ones;\nthe Viewer, the assistant, SQL scripts and flow groups read the same catalogue. Where\ndata comes from is in ",[74,358,360],{"href":359},"\u002Fdocs\u002Fsources","Sources",", where it can go in\n",[74,363,365],{"href":364},"\u002Fdocs\u002Fconnections\u002Fdestinations","Destinations",".",[339,368,369,372],{},[342,370,371],{},"The whole table, unless you ask otherwise."," Previews, charts and runs read every\nrow. A development sample, per source node, is the explicit exception, and it never\nreaches a scheduled run.",[339,374,375,378],{},[342,376,377],{},"Everything is recorded."," Runs keep their history, objects keep their versions, and\nsaves, runs, exports and permission changes go to the audit log.",[339,380,381,384],{},[342,382,383],{},"Kubernetes for code."," Python, R, notebooks and container images run as Kubernetes\nJobs: on a Docker Compose installation those features are shown greyed out with the\nreason.",[339,386,387,390,391,395],{},[342,388,389],{},"AI is optional."," The assistants need a model configured by an administrator\n(",[74,392,394],{"href":393},"\u002Fdocs\u002Fintegrations\u002Fai","AI in Tabularia","); without one, nothing else changes.",{"title":397,"searchDepth":398,"depth":399,"links":400},"",2,3,[401,407],{"id":33,"depth":398,"text":34,"children":402},[403,404,405,406],{"id":38,"depth":399,"text":39},{"id":138,"depth":399,"text":139},{"id":210,"depth":399,"text":211},{"id":286,"depth":399,"text":287},{"id":330,"depth":398,"text":331},"md",{"source":410},"docs\u002Fcapabilities\u002FREADME.md",true,"\u002Fdocs\u002Fcapabilities",{"title":5,"description":16},"docs\u002Fcapabilities\u002FREADME","uU_YS12iMAppGqow93pguFuNWgaYUApcacos9B9CZyE",[417,436,463,493,524,550,574,600],{"title":418,"icon":419,"intro":420,"items":421},"Getting started","start","Install it on one machine, learn the few ideas everything else is built on, and run a first flow.",[422,424,427,430,433],{"path":423,"title":418},"\u002Fdocs\u002Fgetting-started",{"path":425,"title":426},"\u002Fdocs\u002Fgetting-started-docker-compose","Walkthrough with Docker Compose",{"path":428,"title":429},"\u002Fdocs\u002Fdeploy\u002Fminikube","Try it on your computer (minikube)",{"path":431,"title":432},"\u002Fdocs\u002Fconcepts","Concepts",{"path":434,"title":435},"\u002Fdocs\u002Foverview","Overview (README)",{"title":5,"icon":12,"intro":437,"items":438},"What you can build: visual flows, analysis on any step, AI questions, pixel-perfect reports, dashboards, Python, R and SQL scripts, containers and the orchestration that ties them together.",[439,441,442,443,445,446,448,449,450,451,452,453,455,456,458,459,460],{"path":412,"title":440},"All capabilities",{"path":76,"title":67},{"path":90,"title":82},{"path":103,"title":444},"Ask your data with AI",{"path":116,"title":108},{"path":121,"title":447},"Report functions",{"path":135,"title":127},{"path":166,"title":158},{"path":179,"title":171},{"path":192,"title":193},{"path":206,"title":198},{"path":238,"title":454},"Flow groups: orchestration",{"path":251,"title":243},{"path":283,"title":457},"Pushmail: datasources, reports and dashboards by email",{"path":269,"title":256},{"path":314,"title":306},{"path":461,"title":462},"\u002Fdocs\u002Fengines\u002Fengine-differences","Engine differences",{"title":360,"icon":464,"intro":465,"items":466},"sources","Every way data comes in: files, databases, buckets, SFTP folders, HTTP APIs, SharePoint, Google Sheets, and the results of your own flows.",[467,469,472,475,478,481,484,487,490],{"path":359,"title":468},"All sources",{"path":470,"title":471},"\u002Fdocs\u002Fsources\u002Ffiles","Uploaded files",{"path":473,"title":474},"\u002Fdocs\u002Fsources\u002Fdatabases","Database tables and queries",{"path":476,"title":477},"\u002Fdocs\u002Fs3-datasource","S3 buckets",{"path":479,"title":480},"\u002Fdocs\u002Fsftp","SFTP folders",{"path":482,"title":483},"\u002Fdocs\u002Fapi-datasource","HTTP APIs",{"path":485,"title":486},"\u002Fdocs\u002Fsources\u002Fsharepoint","Excel on SharePoint",{"path":488,"title":489},"\u002Fdocs\u002Fsources\u002Fgoogle-sheets","Google Sheets",{"path":491,"title":492},"\u002Fdocs\u002Fsources\u002Fflow-outputs","Results of flows and scripts",{"title":494,"icon":495,"intro":496,"items":497},"Connections","connections","The systems Tabularia reads from and writes to, how each connection is set up, and who may use it.",[498,501,504,507,510,512,513,515,516,519,522],{"path":499,"title":500},"\u002Fdocs\u002Fconnections","All connections",{"path":502,"title":503},"\u002Fdocs\u002Fconnections\u002Fdatabases","Databases",{"path":505,"title":506},"\u002Fdocs\u002Fsqlserver","Microsoft SQL Server driver",{"path":508,"title":509},"\u002Fdocs\u002Fconnections\u002Fs3","S3 and compatible storage",{"path":479,"title":511},"SFTP servers",{"path":482,"title":483},{"path":485,"title":514},"SharePoint",{"path":488,"title":489},{"path":517,"title":518},"\u002Fdocs\u002Fconnections\u002Fsmtp","SMTP email",{"path":520,"title":521},"\u002Fdocs\u002Fcontainer-registries","Container registries",{"path":364,"title":523},"Writing data out",{"title":525,"icon":526,"intro":527,"items":528},"Integrations","integrations","How Tabularia fits your stack: AI providers, the REST API and webhooks, dbt, OpenLineage, single sign-on, SIEM and monitoring.",[529,532,534,537,538,541,544,547],{"path":530,"title":531},"\u002Fdocs\u002Fintegrations","All integrations",{"path":393,"title":533},"AI: where it is used",{"path":535,"title":536},"\u002Fdocs\u002Fapi","API, tokens and webhooks",{"path":327,"title":319},{"path":539,"title":540},"\u002Fdocs\u002Fopenlineage","OpenLineage",{"path":542,"title":543},"\u002Fdocs\u002Fsso-keycloak","Single sign-on with Keycloak",{"path":545,"title":546},"\u002Fdocs\u002Fsiem-splunk","Audit log to Splunk",{"path":548,"title":549},"\u002Fdocs\u002Fintegrations\u002Fmonitoring","Monitoring",{"title":551,"icon":552,"intro":553,"items":554},"Security & governance","governance","Who may see and do what, what is recorded, and how data quality and personal data are kept in check.",[555,558,559,562,565,568,571],{"path":556,"title":557},"\u002Fdocs\u002Fgovernance","Overview",{"path":348,"title":349},{"path":560,"title":561},"\u002Fdocs\u002Fgovernance\u002Faudit-log","Audit log",{"path":563,"title":564},"\u002Fdocs\u002Fgovernance\u002Fdata-contracts","Data contracts",{"path":566,"title":567},"\u002Fdocs\u002Fdesign\u002Fsso-group-mapping","SSO and group mapping",{"path":569,"title":570},"\u002Fdocs\u002Fexamples\u002Fkeycloak","Keycloak example on a laptop",{"path":572,"title":573},"\u002Fdocs\u002Fengines\u002Fclickhouse-ai-user","A ClickHouse user for the AI assistant",{"title":575,"icon":576,"intro":577,"items":578},"Install & operate","operate","Run it in production on Kubernetes, configure it, upgrade it and keep it healthy.",[579,582,585,588,591,594,597],{"path":580,"title":581},"\u002Fdocs\u002Fdeploy\u002Fkubernetes","Kubernetes and Helm",{"path":583,"title":584},"\u002Fdocs\u002Fdeploy\u002Fkind","A company-like cluster on one computer (kind)",{"path":586,"title":587},"\u002Fdocs\u002Fdeploy\u002Fupgrading","Upgrading, backups and restore",{"path":589,"title":590},"\u002Fdocs\u002Fdeploy\u002Frelease-checklist","Install and upgrade checklist",{"path":592,"title":593},"\u002Fdocs\u002Fconfiguration","Configuration reference",{"path":595,"title":596},"\u002Fdocs\u002Fengine-settings","Settings from the panel",{"path":598,"title":599},"\u002Fdocs\u002Fdatabase-migrations","Database migrations",{"title":601,"icon":602,"intro":603,"items":604},"Reference","reference","Release process and the remaining reference pages.",[605],{"path":606,"title":607},"\u002Fdocs\u002Frelease-process","Release process",1793656371461]