[{"data":1,"prerenderedAt":2789},["ShallowReactive",2],{"navigation":3,"\u002Fworkflows\u002Fsteps\u002Fintegration":773,"\u002Fworkflows\u002Fsteps\u002Fintegration-surround":2784},[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":409,"admin":775,"body":776,"description":2777,"extension":2778,"links":2779,"meta":2780,"navigation":2781,"path":410,"seo":2782,"stem":411,"__hash__":2783},"docs\u002F08.workflows\u002F05.steps\u002F04.integration.md","Workflows › a Workflow › a step",{"type":777,"value":778,"toc":2758},"minimark",[779,797,802,807,896,901,952,965,969,1083,1092,1107,1111,1161,1172,1183,1189,1193,1203,1248,1262,1276,1280,1285,1289,1405,1416,1425,1490,1493,1553,1556,1747,1759,1779,1783,1795,1803,1806,1811,1815,1818,1872,1890,1893,1896,1957,1960,2125,2135,2148,2152,2176,2315,2319,2522,2530,2710,2723,2727,2737,2741,2754],[780,781,782,786,787,791,792,796],"p",{},[783,784,785],"strong",{},"HTTP request"," calls another system's API. With a ",[788,789,790],"a",{"href":383},"Database event"," trigger, it's how TotalBase sends an outgoing webhook: Acme's ",[793,794,795],"em",{},"Accounting sync"," sends every new invoice to the accounting system.",[798,799],"screenshot",{"caption":800,"id":801},"The HTTP request step of Accounting sync: POST to the accounting API, with its key as a secret header.","workflow-step-http-request",[803,804,806],"h2",{"id":805},"fields","Fields",[808,809,810,822],"table",{},[811,812,813],"thead",{},[814,815,816,820],"tr",{},[817,818,819],"th",{},"Field",[817,821],{},[823,824,825,834,854,864,881],"tbody",{},[814,826,827,831],{},[828,829,830],"td",{},"Method",[828,832,833],{},"GET, POST, PUT, PATCH, DELETE, HEAD or OPTIONS",[814,835,836,839],{},[828,837,838],{},"URL",[828,840,841,842,846,847,850,851],{},"Required. An absolute ",[843,844,845],"code",{},"http"," or ",[843,848,849],{},"https"," URL, with ",[843,852,853],{},"{{…}}",[814,855,856,859],{},[828,857,858],{},"Headers",[828,860,861,862],{},"A JSON object: header names and their values, with ",[843,863,853],{},[814,865,866,869],{},[828,867,868],{},"Secret headers",[828,870,871,872,876,877,880],{},"Headers whose value is a secret from ",[788,873,875],{"href":874},"\u002Fsettings\u002Fsecurity#secrets","Settings › Secrets",". ",[783,878,879],{},"Add a secret header",", then its name and the secret",[814,882,883,886],{},[828,884,885],{},"Body",[828,887,888,889,891,892,895],{},"Any JSON value, with ",[843,890,853],{},". Sent as JSON, with ",[843,893,894],{},"content-type: application\u002Fjson"," unless a header sets another. Ignored for GET, DELETE, HEAD and OPTIONS",[780,897,898,900],{},[793,899,795],{},":",[808,902,903,912],{},[811,904,905],{},[814,906,907,909],{},[817,908,819],{},[817,910,911],{},"Value",[823,913,914,921,930,943],{},[814,915,916,918],{},[828,917,830],{},[828,919,920],{},"POST",[814,922,923,925],{},[828,924,838],{},[828,926,927],{},[843,928,929],{},"https:\u002F\u002Faccounting.example\u002Fapi\u002Finvoices",[814,931,932,934],{},[828,933,868],{},[828,935,936,939,940],{},[843,937,938],{},"Authorization"," ← the secret ",[843,941,942],{},"accounting_api_key",[814,944,945,947],{},[828,946,885],{},[828,948,949],{},[843,950,951],{},"{\"number\": \"{{start.data.number}}\", \"customer\": \"{{start.data.customer}}\", \"issuedOn\": \"{{start.data.issued_on}}\", \"dueOn\": \"{{start.data.due_on}}\"}",[953,954,955],"warning",{},[780,956,957,958,960,961,964],{},"Never put a credential in ",[783,959,858],{}," or the URL: they're stored in the workflow's design, its versions and its run history, where every administrator can read them. A ",[783,962,963],{},"secret header"," stores only the secret's name; its value is decrypted when the step runs and never stored in the workflow or its history.",[803,966,968],{"id":967},"the-result","The result",[970,971,976],"pre",{"className":972,"code":973,"language":974,"meta":975,"style":975},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{ \"status\": 201, \"headers\": { \"content-type\": \"application\u002Fjson\" }, \"body\": { \"id\": \"AC-55120\" }, \"durationMs\": 182 }\n","json","",[843,977,978],{"__ignoreMap":975},[979,980,983,987,990,994,997,999,1003,1006,1008,1011,1013,1015,1018,1020,1024,1026,1028,1030,1034,1036,1039,1041,1044,1046,1048,1050,1052,1055,1057,1059,1061,1064,1066,1068,1070,1073,1075,1077,1080],"span",{"class":981,"line":982},"line",1,[979,984,986],{"class":985},"sMK4o","{",[979,988,989],{"class":985}," \"",[979,991,993],{"class":992},"spNyl","status",[979,995,996],{"class":985},"\"",[979,998,900],{"class":985},[979,1000,1002],{"class":1001},"sbssI"," 201",[979,1004,1005],{"class":985},",",[979,1007,989],{"class":985},[979,1009,1010],{"class":992},"headers",[979,1012,996],{"class":985},[979,1014,900],{"class":985},[979,1016,1017],{"class":985}," {",[979,1019,989],{"class":985},[979,1021,1023],{"class":1022},"sBMFI","content-type",[979,1025,996],{"class":985},[979,1027,900],{"class":985},[979,1029,989],{"class":985},[979,1031,1033],{"class":1032},"sfazB","application\u002Fjson",[979,1035,996],{"class":985},[979,1037,1038],{"class":985}," },",[979,1040,989],{"class":985},[979,1042,1043],{"class":992},"body",[979,1045,996],{"class":985},[979,1047,900],{"class":985},[979,1049,1017],{"class":985},[979,1051,989],{"class":985},[979,1053,1054],{"class":1022},"id",[979,1056,996],{"class":985},[979,1058,900],{"class":985},[979,1060,989],{"class":985},[979,1062,1063],{"class":1032},"AC-55120",[979,1065,996],{"class":985},[979,1067,1038],{"class":985},[979,1069,989],{"class":985},[979,1071,1072],{"class":992},"durationMs",[979,1074,996],{"class":985},[979,1076,900],{"class":985},[979,1078,1079],{"class":1001}," 182",[979,1081,1082],{"class":985}," }\n",[780,1084,1085,1087,1088,1091],{},[843,1086,1043],{}," is parsed as JSON when the response says it's JSON, text otherwise. A later step reads ",[843,1089,1090],{},"{{sync.data.body.id}}",".",[780,1093,1094,1095,1098,1099,1102,1103,1106],{},"A response that isn't ",[843,1096,1097],{},"2xx"," ",[783,1100,1101],{},"fails the step",". So do a network error and a timeout. The error's detail says what happened: method, URL, duration and, for a response, its status, headers and body. It never includes your request's headers or body. Connect the ",[783,1104,1105],{},"Error"," output to react, for example by emailing someone.",[803,1108,1110],{"id":1109},"limits","Limits",[808,1112,1113,1121],{},[811,1114,1115],{},[814,1116,1117,1119],{},[817,1118],{},[817,1120],{},[823,1122,1123,1131,1139,1150],{},[814,1124,1125,1128],{},[828,1126,1127],{},"Timeout",[828,1129,1130],{},"30 seconds for the whole exchange, redirects included",[814,1132,1133,1136],{},[828,1134,1135],{},"Redirects",[828,1137,1138],{},"at most 5, each one checked like the first address",[814,1140,1141,1144],{},[828,1142,1143],{},"Request body",[828,1145,1146,1149],{},[843,1147,1148],{},"workflows.http_max_request_bytes",", 1 MB by default. A larger body fails the step before anything is sent",[814,1151,1152,1155],{},[828,1153,1154],{},"Response",[828,1156,1157,1160],{},[843,1158,1159],{},"workflows.http_max_response_bytes",", 5 MB by default. A larger response is cut off and fails the step",[780,1162,1163,1164,1167,1168,1091],{},"Both size limits fail with ",[843,1165,1166],{},"WORKFLOW_LIMIT_EXCEEDED",". They're set in ",[788,1169,1171],{"href":1170},"\u002Fsettings\u002Ffeatures#workflows","Settings › Features › Workflows",[780,1173,1174,1175,1178,1179,1182],{},"There are ",[783,1176,1177],{},"no retries",". A request that timed out may still have reached the other system: if it can take an idempotency key, send one, such as the invoice's ",[843,1180,1181],{},"number",". Cancelling a run aborts a request in progress.",[780,1184,1185,1186,1188],{},"Nothing of whoever started the run is forwarded: no cookie, no ",[843,1187,938],{},". The request carries only what the step configures.",[803,1190,1192],{"id":1191},"where-it-may-connect","Where it may connect",[780,1194,1195,1196,1199,1200,900],{},"A step can only reach ",[783,1197,1198],{},"public addresses",". It refuses, with ",[843,1201,1202],{},"WORKFLOW_HTTP_DESTINATION_BLOCKED",[1204,1205,1206,1218,1238,1245],"ul",{},[1207,1208,1209,1210,1213,1214,1217],"li",{},"loopback (",[843,1211,1212],{},"127.0.0.0\u002F8",", ",[843,1215,1216],{},"::1",") and the unspecified address;",[1207,1219,1220,1221,1213,1224,1213,1227,1213,1230,1233,1234,1237],{},"private networks (",[843,1222,1223],{},"10\u002F8",[843,1225,1226],{},"172.16\u002F12",[843,1228,1229],{},"192.168\u002F16",[843,1231,1232],{},"fc00::\u002F7",") and carrier-grade NAT (",[843,1235,1236],{},"100.64\u002F10",");",[1207,1239,1240,1241,1244],{},"link-local addresses, cloud metadata (",[843,1242,1243],{},"169.254.169.254",") included;",[1207,1246,1247],{},"multicast, reserved, broadcast and documentation ranges, and IPv6 forms that embed one of these.",[780,1249,1250,1251,1213,1254,1257,1258,1261],{},"The check is made on every address the name resolves to, at the moment of connecting, and again on every redirect, so a DNS answer that changes in between can't slip through. On a redirect to another origin, ",[843,1252,1253],{},"authorization",[843,1255,1256],{},"cookie"," and ",[843,1259,1260],{},"proxy-authorization"," headers are dropped.",[780,1263,1264,1265,1268,1269,1272,1273,1275],{},"To reach a system on your own network, such as an internal ERP, add it to ",[783,1266,1267],{},"HTTP request allowed hosts"," (",[843,1270,1271],{},"workflows.http_allowed_hosts",") in ",[788,1274,1171],{"href":1170},": a hostname (exact match), an IP address or a CIDR range. It applies to every workflow of the instance.",[803,1277,1279],{"id":1278},"soap-request","SOAP request",[780,1281,1282,1284],{},[783,1283,1279],{}," calls one operation of a SOAP web service - a government or bank web service, an older ERP. You describe the call; TotalBase writes the XML envelope, sends it and gives the answer back as JSON.",[1286,1287,806],"h3",{"id":1288},"fields-1",[808,1290,1291,1299],{},[811,1292,1293],{},[814,1294,1295,1297],{},[817,1296,819],{},[817,1298],{},[823,1300,1301,1316,1330,1341,1352,1360,1374,1385,1397],{},[814,1302,1303,1306],{},[828,1304,1305],{},"Endpoint URL",[828,1307,1308,1309,846,1311,850,1313,1315],{},"Required. The service's endpoint, an absolute ",[843,1310,845],{},[843,1312,849],{},[843,1314,853],{},". Not the WSDL's address",[814,1317,1318,1321],{},[828,1319,1320],{},"SOAP version",[828,1322,1323,1326,1327],{},[843,1324,1325],{},"1.1"," (most services, AFIP included) or ",[843,1328,1329],{},"1.2",[814,1331,1332,1335],{},[828,1333,1334],{},"Operation",[828,1336,1337,1338],{},"Required. The operation's element name, as its WSDL names it: ",[843,1339,1340],{},"getPersona",[814,1342,1343,1346],{},[828,1344,1345],{},"Namespace",[828,1347,1348,1349],{},"Required. The operation's XML namespace, the WSDL's ",[843,1350,1351],{},"targetNamespace",[814,1353,1354,1357],{},[828,1355,1356],{},"SOAPAction",[828,1358,1359],{},"The value the WSDL declares for the operation. Leave it empty when the WSDL declares an empty one",[814,1361,1362,1364],{},[828,1363,885],{},[828,1365,1366,1367,1369,1370,1373],{},"A JSON object: the operation's parameters, with ",[843,1368,853],{},". A key is an element name, an array repeats the element, ",[843,1371,1372],{},"null"," leaves it out",[814,1375,1376,1379],{},[828,1377,1378],{},"List elements",[828,1380,1381,1382,1384],{},"Element names of the response always read as a list, comma-separated - so ",[843,1383,853],{}," reads the same shape whether the service answered one or many",[814,1386,1387,1390],{},[828,1388,1389],{},"SOAP headers",[828,1391,1392,1393,1396],{},"A JSON object sent in the envelope's ",[843,1394,1395],{},"Header",", the same way as the body",[814,1398,1399,1402],{},[828,1400,1401],{},"HTTP headers, Secret headers",[828,1403,1404],{},"As HTTP request's",[780,1406,1407,1408,1411,1412,1415],{},"Where the values come from: the service's WSDL (",[843,1409,1410],{},"…?WSDL",") lists its endpoint, operations, each one's ",[843,1413,1414],{},"soapAction"," and namespace, and the parameters each takes. Read it once and fill the step; the step never reads it.",[780,1417,1418,1421,1422,900],{},[793,1419,1420],{},"Padrón lookup"," - the AFIP taxpayer registry, with the access ticket read from a table by an earlier step ",[843,1423,1424],{},"ticket",[808,1426,1427,1435],{},[811,1428,1429],{},[814,1430,1431,1433],{},[817,1432,819],{},[817,1434,911],{},[823,1436,1437,1446,1454,1463,1472,1481],{},[814,1438,1439,1441],{},[828,1440,1305],{},[828,1442,1443],{},[843,1444,1445],{},"https:\u002F\u002Faws.afip.gov.ar\u002Fsr-padron\u002Fwebservices\u002FpersonaServiceA13",[814,1447,1448,1450],{},[828,1449,1334],{},[828,1451,1452],{},[843,1453,1340],{},[814,1455,1456,1458],{},[828,1457,1345],{},[828,1459,1460],{},[843,1461,1462],{},"http:\u002F\u002Fa13.soap.ws.server.puc.sr\u002F",[814,1464,1465,1467],{},[828,1466,1356],{},[828,1468,1469],{},[793,1470,1471],{},"(empty)",[814,1473,1474,1476],{},[828,1475,885],{},[828,1477,1478],{},[843,1479,1480],{},"{\"token\": \"{{ticket.data.0.token}}\", \"sign\": \"{{ticket.data.0.sign}}\", \"cuitRepresentada\": \"20123456789\", \"idPersona\": \"{{start.data.cuit}}\"}",[814,1482,1483,1485],{},[828,1484,1378],{},[828,1486,1487],{},[843,1488,1489],{},"domicilio",[780,1491,1492],{},"What is sent, built by TotalBase:",[970,1494,1498],{"className":1495,"code":1496,"language":1497,"meta":975,"style":975},"language-xml shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u003Csoap:Envelope xmlns:soap=\"http:\u002F\u002Fschemas.xmlsoap.org\u002Fsoap\u002Fenvelope\u002F\" xmlns:ns=\"http:\u002F\u002Fa13.soap.ws.server.puc.sr\u002F\">\n  \u003Csoap:Body>\n    \u003Cns:getPersona>\n      \u003Ctoken>…\u003C\u002Ftoken>\u003Csign>…\u003C\u002Fsign>\n      \u003CcuitRepresentada>20123456789\u003C\u002FcuitRepresentada>\n      \u003CidPersona>20301234567\u003C\u002FidPersona>\n    \u003C\u002Fns:getPersona>\n  \u003C\u002Fsoap:Body>\n\u003C\u002Fsoap:Envelope>\n","xml",[843,1499,1500,1505,1511,1517,1523,1529,1535,1541,1547],{"__ignoreMap":975},[979,1501,1502],{"class":981,"line":982},[979,1503,1504],{},"\u003Csoap:Envelope xmlns:soap=\"http:\u002F\u002Fschemas.xmlsoap.org\u002Fsoap\u002Fenvelope\u002F\" xmlns:ns=\"http:\u002F\u002Fa13.soap.ws.server.puc.sr\u002F\">\n",[979,1506,1508],{"class":981,"line":1507},2,[979,1509,1510],{},"  \u003Csoap:Body>\n",[979,1512,1514],{"class":981,"line":1513},3,[979,1515,1516],{},"    \u003Cns:getPersona>\n",[979,1518,1520],{"class":981,"line":1519},4,[979,1521,1522],{},"      \u003Ctoken>…\u003C\u002Ftoken>\u003Csign>…\u003C\u002Fsign>\n",[979,1524,1526],{"class":981,"line":1525},5,[979,1527,1528],{},"      \u003CcuitRepresentada>20123456789\u003C\u002FcuitRepresentada>\n",[979,1530,1532],{"class":981,"line":1531},6,[979,1533,1534],{},"      \u003CidPersona>20301234567\u003C\u002FidPersona>\n",[979,1536,1538],{"class":981,"line":1537},7,[979,1539,1540],{},"    \u003C\u002Fns:getPersona>\n",[979,1542,1544],{"class":981,"line":1543},8,[979,1545,1546],{},"  \u003C\u002Fsoap:Body>\n",[979,1548,1550],{"class":981,"line":1549},9,[979,1551,1552],{},"\u003C\u002Fsoap:Envelope>\n",[1286,1554,968],{"id":1555},"the-result-1",[970,1557,1559],{"className":972,"code":1558,"language":974,"meta":975,"style":975},"{ \"status\": 200, \"headers\": { \"content-type\": \"text\u002Fxml;charset=utf-8\" }, \"body\": { \"personaReturn\": { \"persona\": { \"apellido\": \"PEREZ\", \"nombre\": \"JUAN\", \"domicilio\": [ { \"tipoDomicilio\": \"FISCAL\", \"direccion\": \"AV SIEMPRE VIVA 742\" } ] } } }, \"durationMs\": 940 }\n",[843,1560,1561],{"__ignoreMap":975},[979,1562,1563,1565,1567,1569,1571,1573,1576,1578,1580,1582,1584,1586,1588,1590,1592,1594,1596,1598,1601,1603,1605,1607,1609,1611,1613,1615,1617,1620,1622,1624,1626,1628,1631,1633,1635,1637,1639,1643,1645,1647,1649,1652,1654,1656,1658,1661,1663,1665,1667,1670,1672,1674,1676,1678,1680,1682,1685,1687,1689,1693,1695,1697,1699,1702,1704,1706,1708,1711,1713,1715,1717,1720,1722,1725,1728,1730,1732,1734,1736,1738,1740,1742,1745],{"class":981,"line":982},[979,1564,986],{"class":985},[979,1566,989],{"class":985},[979,1568,993],{"class":992},[979,1570,996],{"class":985},[979,1572,900],{"class":985},[979,1574,1575],{"class":1001}," 200",[979,1577,1005],{"class":985},[979,1579,989],{"class":985},[979,1581,1010],{"class":992},[979,1583,996],{"class":985},[979,1585,900],{"class":985},[979,1587,1017],{"class":985},[979,1589,989],{"class":985},[979,1591,1023],{"class":1022},[979,1593,996],{"class":985},[979,1595,900],{"class":985},[979,1597,989],{"class":985},[979,1599,1600],{"class":1032},"text\u002Fxml;charset=utf-8",[979,1602,996],{"class":985},[979,1604,1038],{"class":985},[979,1606,989],{"class":985},[979,1608,1043],{"class":992},[979,1610,996],{"class":985},[979,1612,900],{"class":985},[979,1614,1017],{"class":985},[979,1616,989],{"class":985},[979,1618,1619],{"class":1022},"personaReturn",[979,1621,996],{"class":985},[979,1623,900],{"class":985},[979,1625,1017],{"class":985},[979,1627,989],{"class":985},[979,1629,1630],{"class":1001},"persona",[979,1632,996],{"class":985},[979,1634,900],{"class":985},[979,1636,1017],{"class":985},[979,1638,989],{"class":985},[979,1640,1642],{"class":1641},"swJcz","apellido",[979,1644,996],{"class":985},[979,1646,900],{"class":985},[979,1648,989],{"class":985},[979,1650,1651],{"class":1032},"PEREZ",[979,1653,996],{"class":985},[979,1655,1005],{"class":985},[979,1657,989],{"class":985},[979,1659,1660],{"class":1641},"nombre",[979,1662,996],{"class":985},[979,1664,900],{"class":985},[979,1666,989],{"class":985},[979,1668,1669],{"class":1032},"JUAN",[979,1671,996],{"class":985},[979,1673,1005],{"class":985},[979,1675,989],{"class":985},[979,1677,1489],{"class":1641},[979,1679,996],{"class":985},[979,1681,900],{"class":985},[979,1683,1684],{"class":985}," [",[979,1686,1017],{"class":985},[979,1688,989],{"class":985},[979,1690,1692],{"class":1691},"su27w","tipoDomicilio",[979,1694,996],{"class":985},[979,1696,900],{"class":985},[979,1698,989],{"class":985},[979,1700,1701],{"class":1032},"FISCAL",[979,1703,996],{"class":985},[979,1705,1005],{"class":985},[979,1707,989],{"class":985},[979,1709,1710],{"class":1691},"direccion",[979,1712,996],{"class":985},[979,1714,900],{"class":985},[979,1716,989],{"class":985},[979,1718,1719],{"class":1032},"AV SIEMPRE VIVA 742",[979,1721,996],{"class":985},[979,1723,1724],{"class":985}," }",[979,1726,1727],{"class":985}," ]",[979,1729,1724],{"class":985},[979,1731,1724],{"class":985},[979,1733,1038],{"class":985},[979,1735,989],{"class":985},[979,1737,1072],{"class":992},[979,1739,996],{"class":985},[979,1741,900],{"class":985},[979,1743,1744],{"class":1001}," 940",[979,1746,1082],{"class":985},[780,1748,1749,1751,1752,1754,1755,1758],{},[843,1750,1043],{}," is the content of the envelope's ",[843,1753,885],{},", as JSON, namespace prefixes dropped: a later step reads ",[843,1756,1757],{},"{{padron.data.body.personaReturn.persona.apellido}}",". Numbers and booleans are typed; a value with a leading zero (a postal code) stays text.",[780,1760,1761,1762,1765,1766,1768,1769,1772,1773,1775,1776,1778],{},"A ",[783,1763,1764],{},"SOAP Fault"," - how a service reports an error, \"No existe persona con ese Id\" - ",[783,1767,1101],{}," with ",[843,1770,1771],{},"WORKFLOW_SOAP_FAULT","; the error's message carries the fault's text and its detail the fault's code and detail. A response that isn't a SOAP envelope, a non-",[843,1774,1097],{}," status, a network error and a timeout fail the step as HTTP request's do. Connect the ",[783,1777,1105],{}," output to react.",[1286,1780,1782],{"id":1781},"limits-and-where-it-may-connect","Limits and where it may connect",[780,1784,1785,1786,1788,1789,1791,1792,1794],{},"The same as HTTP request's: 30 seconds, 5 redirects, ",[843,1787,1148],{}," for the envelope, ",[843,1790,1159],{}," for the answer, public addresses only unless listed in ",[783,1793,1267],{},". No retries. Nothing of whoever started the run is forwarded.",[780,1796,1797,1798,1802],{},"Not covered: reading the WSDL for you, WS-Security signatures, attachments (MTOM), a raw XML body. A call that must be signed first - AFIP's WSAA login - signs in a ",[788,1799,1801],{"href":1800},"#sign","Sign"," step before this one.",[803,1804,1801],{"id":1805},"sign",[780,1807,1808,1810],{},[783,1809,1801],{}," signs a text with a certificate and its private key, for a service that wants proof of who is calling. AFIP's web services work this way: a login service (WSAA) takes a signed ticket request and answers an access ticket the other services take for 12 hours.",[1286,1812,1814],{"id":1813},"before-the-certificate-in-secrets","Before: the certificate in Secrets",[780,1816,1817],{},"The certificate is made outside TotalBase, once. With OpenSSL, you create a private key and a certificate request, the issuer (AFIP, in its web portal) signs it, and you get the certificate back:",[970,1819,1823],{"className":1820,"code":1821,"language":1822,"meta":975,"style":975},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","openssl genrsa -out private.key 2048\nopenssl req -new -key private.key -subj \"\u002FC=AR\u002FO=Empresa Ejemplo\u002FCN=totalbase\u002FserialNumber=CUIT 20123456789\" -out request.csr\n","bash",[843,1824,1825,1842],{"__ignoreMap":975},[979,1826,1827,1830,1833,1836,1839],{"class":981,"line":982},[979,1828,1829],{"class":1022},"openssl",[979,1831,1832],{"class":1032}," genrsa",[979,1834,1835],{"class":1032}," -out",[979,1837,1838],{"class":1032}," private.key",[979,1840,1841],{"class":1001}," 2048\n",[979,1843,1844,1846,1849,1852,1855,1857,1860,1862,1865,1867,1869],{"class":981,"line":1507},[979,1845,1829],{"class":1022},[979,1847,1848],{"class":1032}," req",[979,1850,1851],{"class":1032}," -new",[979,1853,1854],{"class":1032}," -key",[979,1856,1838],{"class":1032},[979,1858,1859],{"class":1032}," -subj",[979,1861,989],{"class":985},[979,1863,1864],{"class":1032},"\u002FC=AR\u002FO=Empresa Ejemplo\u002FCN=totalbase\u002FserialNumber=CUIT 20123456789",[979,1866,996],{"class":985},[979,1868,1835],{"class":1032},[979,1870,1871],{"class":1032}," request.csr\n",[780,1873,1874,1875,1877,1878,1881,1882,1885,1886,1889],{},"In ",[788,1876,875],{"href":874},", add two secrets and paste each file's whole text, ",[843,1879,1880],{},"-----BEGIN …-----"," lines included: the certificate (for example ",[843,1883,1884],{},"afip_cert",") and the private key (",[843,1887,1888],{},"afip_key","). If the key is encrypted, a third secret holds its passphrase. Don't keep them in Files: a file can be downloaded by anyone allowed on its folder, a secret is encrypted and never shown again.",[780,1891,1892],{},"When the certificate is renewed, replace the secret's value. The next run signs with the new one; there's nothing to change or republish.",[1286,1894,806],{"id":1895},"fields-2",[808,1897,1898,1906],{},[811,1899,1900],{},[814,1901,1902,1904],{},[817,1903,819],{},[817,1905],{},[823,1907,1908,1923,1933,1941,1949],{},[814,1909,1910,1913],{},[828,1911,1912],{},"Format",[828,1914,1915,1918,1919,1922],{},[783,1916,1917],{},"CMS \u002F PKCS#7",": the text attached, the certificate included, SHA-256, in base64 - what ",[843,1920,1921],{},"openssl cms -sign -nodetach -outform DER"," produces",[814,1924,1925,1927],{},[828,1926,193],{},[828,1928,1929,1930,1932],{},"Required. The text to sign, with ",[843,1931,853],{}," - usually built by an earlier step",[814,1934,1935,1938],{},[828,1936,1937],{},"Certificate",[828,1939,1940],{},"Required. The secret holding the certificate",[814,1942,1943,1946],{},[828,1944,1945],{},"Private key",[828,1947,1948],{},"Required. The secret holding its private key, an RSA key",[814,1950,1951,1954],{},[828,1952,1953],{},"Passphrase",[828,1955,1956],{},"Only for an encrypted key: the secret holding its passphrase",[1286,1958,968],{"id":1959},"the-result-2",[970,1961,1963],{"className":972,"code":1962,"language":974,"meta":975,"style":975},"{ \"format\": \"CMS\", \"signature\": \"MIIG…\", \"certificate\": { \"subject\": \"CN=totalbase\\nserialNumber=CUIT 20123456789\", \"issuer\": \"CN=Computadores\\nO=AFIP\\nC=AR\", \"serialNumber\": \"1A2B…\", \"validFrom\": \"2026-10-15T00:00:00.000Z\", \"validTo\": \"2028-10-14T00:00:00.000Z\" } }\n",[843,1964,1965],{"__ignoreMap":975},[979,1966,1967,1969,1971,1974,1976,1978,1980,1983,1985,1987,1989,1992,1994,1996,1998,2001,2003,2005,2007,2010,2012,2014,2016,2018,2021,2023,2025,2027,2030,2034,2037,2039,2041,2043,2046,2048,2050,2052,2055,2057,2060,2062,2065,2067,2069,2071,2074,2076,2078,2080,2083,2085,2087,2089,2092,2094,2096,2098,2101,2103,2105,2107,2110,2112,2114,2116,2119,2121,2123],{"class":981,"line":982},[979,1968,986],{"class":985},[979,1970,989],{"class":985},[979,1972,1973],{"class":992},"format",[979,1975,996],{"class":985},[979,1977,900],{"class":985},[979,1979,989],{"class":985},[979,1981,1982],{"class":1032},"CMS",[979,1984,996],{"class":985},[979,1986,1005],{"class":985},[979,1988,989],{"class":985},[979,1990,1991],{"class":992},"signature",[979,1993,996],{"class":985},[979,1995,900],{"class":985},[979,1997,989],{"class":985},[979,1999,2000],{"class":1032},"MIIG…",[979,2002,996],{"class":985},[979,2004,1005],{"class":985},[979,2006,989],{"class":985},[979,2008,2009],{"class":992},"certificate",[979,2011,996],{"class":985},[979,2013,900],{"class":985},[979,2015,1017],{"class":985},[979,2017,989],{"class":985},[979,2019,2020],{"class":1022},"subject",[979,2022,996],{"class":985},[979,2024,900],{"class":985},[979,2026,989],{"class":985},[979,2028,2029],{"class":1032},"CN=totalbase",[979,2031,2033],{"class":2032},"sTEyZ","\\n",[979,2035,2036],{"class":1032},"serialNumber=CUIT 20123456789",[979,2038,996],{"class":985},[979,2040,1005],{"class":985},[979,2042,989],{"class":985},[979,2044,2045],{"class":1022},"issuer",[979,2047,996],{"class":985},[979,2049,900],{"class":985},[979,2051,989],{"class":985},[979,2053,2054],{"class":1032},"CN=Computadores",[979,2056,2033],{"class":2032},[979,2058,2059],{"class":1032},"O=AFIP",[979,2061,2033],{"class":2032},[979,2063,2064],{"class":1032},"C=AR",[979,2066,996],{"class":985},[979,2068,1005],{"class":985},[979,2070,989],{"class":985},[979,2072,2073],{"class":1022},"serialNumber",[979,2075,996],{"class":985},[979,2077,900],{"class":985},[979,2079,989],{"class":985},[979,2081,2082],{"class":1032},"1A2B…",[979,2084,996],{"class":985},[979,2086,1005],{"class":985},[979,2088,989],{"class":985},[979,2090,2091],{"class":1022},"validFrom",[979,2093,996],{"class":985},[979,2095,900],{"class":985},[979,2097,989],{"class":985},[979,2099,2100],{"class":1032},"2026-10-15T00:00:00.000Z",[979,2102,996],{"class":985},[979,2104,1005],{"class":985},[979,2106,989],{"class":985},[979,2108,2109],{"class":1022},"validTo",[979,2111,996],{"class":985},[979,2113,900],{"class":985},[979,2115,989],{"class":985},[979,2117,2118],{"class":1032},"2028-10-14T00:00:00.000Z",[979,2120,996],{"class":985},[979,2122,1724],{"class":985},[979,2124,1082],{"class":985},[780,2126,2127,2128,876,2131,2134],{},"A later step sends ",[843,2129,2130],{},"{{sign.data.signature}}",[843,2132,2133],{},"certificate.validTo"," tells when to renew: a Condition on it can email someone a month before.",[780,2136,2137,2138,1768,2141,2144,2145,1091],{},"The step ",[783,2139,2140],{},"fails",[843,2142,2143],{},"WORKFLOW_SIGN_FAILED"," before signing anything when the certificate or the key can't be used: not PEM, a wrong passphrase, not an RSA key, a key that isn't the certificate's, or a certificate that expired or isn't valid yet. The message names the secret, never its content. A secret that doesn't exist fails with ",[843,2146,2147],{},"SECRET_NOT_FOUND",[1286,2149,2151],{"id":2150},"example-an-afip-access-ticket","Example: an AFIP access ticket",[780,2153,2154,2157,2158,2160,2161,1268,2164,1213,2167,1213,2170,1213,2172,2175],{},[793,2155,2156],{},"Renew WSAA ticket",", a ",[788,2159,386],{"href":387}," every 6 hours, keeps one ticket per service in a table ",[843,2162,2163],{},"afip_tickets",[843,2165,2166],{},"service",[843,2168,2169],{},"token",[843,2171,1805],{},[843,2173,2174],{},"expires_at","):",[808,2177,2178,2191],{},[811,2179,2180],{},[814,2181,2182,2185,2188],{},[817,2183,2184],{},"Step",[817,2186,2187],{},"Kind",[817,2189,2190],{},"What it does",[823,2192,2193,2216,2229,2242,2262,2288,2299],{},[814,2194,2195,2200,2203],{},[828,2196,2197],{},[843,2198,2199],{},"current",[828,2201,2202],{},"Read records",[828,2204,2205,2206,2208,2209,2212,2213,2215],{},"the ",[843,2207,2163],{}," row of ",[843,2210,2211],{},"ws_sr_padron_a13"," whose ",[843,2214,2174],{}," is still ahead",[814,2217,2218,2223,2226],{},[828,2219,2220],{},[843,2221,2222],{},"needed",[828,2224,2225],{},"Condition",[828,2227,2228],{},"no row: go on; otherwise finish - WSAA refuses a new ticket while one is valid",[814,2230,2231,2236,2239],{},[828,2232,2233],{},[843,2234,2235],{},"build_ticket",[828,2237,2238],{},"Execute JavaScript",[828,2240,2241],{},"the ticket request, below",[814,2243,2244,2248,2250],{},[828,2245,2246],{},[843,2247,1805],{},[828,2249,1801],{},[828,2251,2252,2253,2256,2257,2259,2260],{},"Data ",[843,2254,2255],{},"{{build_ticket.data}}",", Certificate ",[843,2258,1884],{},", Private key ",[843,2261,1888],{},[814,2263,2264,2269,2271],{},[828,2265,2266],{},[843,2267,2268],{},"login",[828,2270,1279],{},[828,2272,2273,2276,2277,2280,2281,2284,2285],{},[843,2274,2275],{},"https:\u002F\u002Fwsaa.afip.gov.ar\u002Fws\u002Fservices\u002FLoginCms",", operation ",[843,2278,2279],{},"loginCms",", namespace ",[843,2282,2283],{},"http:\u002F\u002Fwsaa.view.sua.dvadac.desein.afip.gov",", SOAPAction empty, Body ",[843,2286,2287],{},"{\"in0\": \"{{sign.data.signature}}\"}",[814,2289,2290,2294,2296],{},[828,2291,2292],{},[843,2293,1424],{},[828,2295,2238],{},[828,2297,2298],{},"reads token, sign and expiration from the answer",[814,2300,2301,2306,2309],{},[828,2302,2303],{},[843,2304,2305],{},"save",[828,2307,2308],{},"Create records",[828,2310,2311,2312,2314],{},"the new ",[843,2313,2163],{}," row",[780,2316,2317,900],{},[843,2318,2235],{},[970,2320,2324],{"className":2321,"code":2322,"language":2323,"meta":975,"style":975},"language-js shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","const now = new Date();\nconst iso = (d) => d.toISOString().replace(\u002F\\.\\d+Z$\u002F, \"Z\");\nreturn `\u003C?xml version=\"1.0\" encoding=\"UTF-8\"?>\u003CloginTicketRequest version=\"1.0\">\u003Cheader>\u003CuniqueId>${Math.floor(now \u002F 1000)}\u003C\u002FuniqueId>\u003CgenerationTime>${iso(new Date(now - 60000))}\u003C\u002FgenerationTime>\u003CexpirationTime>${iso(new Date(+now + 600000))}\u003C\u002FexpirationTime>\u003C\u002Fheader>\u003Cservice>ws_sr_padron_a13\u003C\u002Fservice>\u003C\u002FloginTicketRequest>`;\n","js",[843,2325,2326,2350,2422],{"__ignoreMap":975},[979,2327,2328,2331,2334,2337,2340,2344,2347],{"class":981,"line":982},[979,2329,2330],{"class":992},"const",[979,2332,2333],{"class":2032}," now ",[979,2335,2336],{"class":985},"=",[979,2338,2339],{"class":985}," new",[979,2341,2343],{"class":2342},"s2Zo4"," Date",[979,2345,2346],{"class":2032},"()",[979,2348,2349],{"class":985},";\n",[979,2351,2352,2354,2357,2359,2361,2365,2368,2371,2374,2376,2379,2381,2383,2386,2389,2392,2395,2398,2401,2404,2408,2410,2412,2414,2416,2418,2420],{"class":981,"line":1507},[979,2353,2330],{"class":992},[979,2355,2356],{"class":2032}," iso ",[979,2358,2336],{"class":985},[979,2360,1268],{"class":985},[979,2362,2364],{"class":2363},"sHdIc","d",[979,2366,2367],{"class":985},")",[979,2369,2370],{"class":992}," =>",[979,2372,2373],{"class":2032}," d",[979,2375,1091],{"class":985},[979,2377,2378],{"class":2342},"toISOString",[979,2380,2346],{"class":2032},[979,2382,1091],{"class":985},[979,2384,2385],{"class":2342},"replace",[979,2387,2388],{"class":2032},"(",[979,2390,2391],{"class":985},"\u002F",[979,2393,2394],{"class":2032},"\\.",[979,2396,2397],{"class":1032},"\\d",[979,2399,2400],{"class":985},"+",[979,2402,2403],{"class":1032},"Z",[979,2405,2407],{"class":2406},"s7zQu","$",[979,2409,2391],{"class":985},[979,2411,1005],{"class":985},[979,2413,989],{"class":985},[979,2415,2403],{"class":1032},[979,2417,996],{"class":985},[979,2419,2367],{"class":2032},[979,2421,2349],{"class":985},[979,2423,2424,2427,2430,2433,2436,2439,2441,2444,2447,2449,2452,2454,2457,2460,2462,2465,2467,2470,2472,2474,2477,2480,2483,2485,2488,2490,2492,2494,2496,2498,2500,2502,2505,2507,2510,2512,2514,2517,2520],{"class":981,"line":1513},[979,2425,2426],{"class":2406},"return",[979,2428,2429],{"class":985}," `",[979,2431,2432],{"class":1032},"\u003C?xml version=\"1.0\" encoding=\"UTF-8\"?>\u003CloginTicketRequest version=\"1.0\">\u003Cheader>\u003CuniqueId>",[979,2434,2435],{"class":985},"${",[979,2437,2438],{"class":2032},"Math",[979,2440,1091],{"class":985},[979,2442,2443],{"class":2342},"floor",[979,2445,2446],{"class":2032},"(now ",[979,2448,2391],{"class":985},[979,2450,2451],{"class":1001}," 1000",[979,2453,2367],{"class":2032},[979,2455,2456],{"class":985},"}",[979,2458,2459],{"class":1032},"\u003C\u002FuniqueId>\u003CgenerationTime>",[979,2461,2435],{"class":985},[979,2463,2464],{"class":2342},"iso",[979,2466,2388],{"class":2032},[979,2468,2469],{"class":985},"new",[979,2471,2343],{"class":2342},[979,2473,2446],{"class":2032},[979,2475,2476],{"class":985},"-",[979,2478,2479],{"class":1001}," 60000",[979,2481,2482],{"class":2032},"))",[979,2484,2456],{"class":985},[979,2486,2487],{"class":1032},"\u003C\u002FgenerationTime>\u003CexpirationTime>",[979,2489,2435],{"class":985},[979,2491,2464],{"class":2342},[979,2493,2388],{"class":2032},[979,2495,2469],{"class":985},[979,2497,2343],{"class":2342},[979,2499,2388],{"class":2032},[979,2501,2400],{"class":985},[979,2503,2504],{"class":2032},"now ",[979,2506,2400],{"class":985},[979,2508,2509],{"class":1001}," 600000",[979,2511,2482],{"class":2032},[979,2513,2456],{"class":985},[979,2515,2516],{"class":1032},"\u003C\u002FexpirationTime>\u003C\u002Fheader>\u003Cservice>ws_sr_padron_a13\u003C\u002Fservice>\u003C\u002FloginTicketRequest>",[979,2518,2519],{"class":985},"`",[979,2521,2349],{"class":985},[780,2523,2524,2526,2527,900],{},[843,2525,1424],{}," - WSAA answers the ticket as XML text, inside ",[843,2528,2529],{},"loginCmsResponse.loginCmsReturn",[970,2531,2533],{"className":2321,"code":2532,"language":2323,"meta":975,"style":975},"const xml = results.login.data.body.loginCmsResponse.loginCmsReturn;\nconst tag = (name) => xml.match(new RegExp(`\u003C${name}>([^\u003C]*)\u003C\u002F${name}>`))[1];\nreturn { token: tag(\"token\"), sign: tag(\"sign\"), expires_at: tag(\"expirationTime\") };\n",[843,2534,2535,2572,2643],{"__ignoreMap":975},[979,2536,2537,2539,2542,2544,2547,2549,2551,2553,2556,2558,2560,2562,2565,2567,2570],{"class":981,"line":982},[979,2538,2330],{"class":992},[979,2540,2541],{"class":2032}," xml ",[979,2543,2336],{"class":985},[979,2545,2546],{"class":2032}," results",[979,2548,1091],{"class":985},[979,2550,2268],{"class":2032},[979,2552,1091],{"class":985},[979,2554,2555],{"class":2032},"data",[979,2557,1091],{"class":985},[979,2559,1043],{"class":2032},[979,2561,1091],{"class":985},[979,2563,2564],{"class":2032},"loginCmsResponse",[979,2566,1091],{"class":985},[979,2568,2569],{"class":2032},"loginCmsReturn",[979,2571,2349],{"class":985},[979,2573,2574,2576,2579,2581,2583,2586,2588,2590,2593,2595,2598,2600,2602,2605,2607,2609,2612,2614,2616,2618,2621,2623,2625,2627,2630,2632,2635,2638,2641],{"class":981,"line":1507},[979,2575,2330],{"class":992},[979,2577,2578],{"class":2032}," tag ",[979,2580,2336],{"class":985},[979,2582,1268],{"class":985},[979,2584,2585],{"class":2363},"name",[979,2587,2367],{"class":985},[979,2589,2370],{"class":992},[979,2591,2592],{"class":2032}," xml",[979,2594,1091],{"class":985},[979,2596,2597],{"class":2342},"match",[979,2599,2388],{"class":2032},[979,2601,2469],{"class":985},[979,2603,2604],{"class":2342}," RegExp",[979,2606,2388],{"class":2032},[979,2608,2519],{"class":985},[979,2610,2611],{"class":1032},"\u003C",[979,2613,2435],{"class":985},[979,2615,2585],{"class":2032},[979,2617,2456],{"class":985},[979,2619,2620],{"class":1032},">([^\u003C]*)\u003C\u002F",[979,2622,2435],{"class":985},[979,2624,2585],{"class":2032},[979,2626,2456],{"class":985},[979,2628,2629],{"class":1032},">",[979,2631,2519],{"class":985},[979,2633,2634],{"class":2032},"))[",[979,2636,2637],{"class":1001},"1",[979,2639,2640],{"class":2032},"]",[979,2642,2349],{"class":985},[979,2644,2645,2647,2649,2652,2654,2657,2659,2661,2663,2665,2667,2669,2672,2674,2676,2678,2680,2682,2684,2686,2688,2691,2693,2695,2697,2699,2702,2704,2707],{"class":981,"line":1513},[979,2646,2426],{"class":2406},[979,2648,1017],{"class":985},[979,2650,2651],{"class":1641}," token",[979,2653,900],{"class":985},[979,2655,2656],{"class":2342}," tag",[979,2658,2388],{"class":2032},[979,2660,996],{"class":985},[979,2662,2169],{"class":1032},[979,2664,996],{"class":985},[979,2666,2367],{"class":2032},[979,2668,1005],{"class":985},[979,2670,2671],{"class":1641}," sign",[979,2673,900],{"class":985},[979,2675,2656],{"class":2342},[979,2677,2388],{"class":2032},[979,2679,996],{"class":985},[979,2681,1805],{"class":1032},[979,2683,996],{"class":985},[979,2685,2367],{"class":2032},[979,2687,1005],{"class":985},[979,2689,2690],{"class":1641}," expires_at",[979,2692,900],{"class":985},[979,2694,2656],{"class":2342},[979,2696,2388],{"class":2032},[979,2698,996],{"class":985},[979,2700,2701],{"class":1032},"expirationTime",[979,2703,996],{"class":985},[979,2705,2706],{"class":2032},") ",[979,2708,2709],{"class":985},"};\n",[780,2711,2712,2713,2715,2716,2718,2719,2722],{},"Any other workflow then reads the ticket from ",[843,2714,2163],{}," and calls the service with a SOAP request, as in ",[793,2717,1420],{}," above. Homologation (testing) uses ",[843,2720,2721],{},"wsaahomo.afip.gov.ar"," and its own certificate: two more secrets and the other URL.",[803,2724,2726],{"id":2725},"calling-another-workflow","Calling another workflow",[780,2728,2729,2730,2733,2734,1091],{},"Don't call a TotalBase workflow's URL with an HTTP request. Use ",[788,2731,2732],{"href":426},"Execute another workflow",": it keeps the chain of workflows, so loops are refused, and shows in the called workflow's ",[783,2735,2736],{},"Called by",[803,2738,2740],{"id":2739},"next-steps","Next steps",[1204,2742,2743,2748],{},[1207,2744,2745,2747],{},[788,2746,790],{"href":383},": the trigger behind an outgoing webhook.",[1207,2749,2750,2753],{},[788,2751,2752],{"href":874},"Secrets",": storing an API key, a certificate and its key.",[2755,2756,2757],"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 .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}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 .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 .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .su27w, html code.shiki .su27w{--shiki-light:#916B53;--shiki-default:#916B53;--shiki-dark:#916B53}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}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 .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}",{"title":975,"searchDepth":982,"depth":1507,"links":2759},[2760,2761,2762,2763,2764,2769,2775,2776],{"id":805,"depth":1507,"text":806},{"id":967,"depth":1507,"text":968},{"id":1109,"depth":1507,"text":1110},{"id":1191,"depth":1507,"text":1192},{"id":1278,"depth":1507,"text":1279,"children":2765},[2766,2767,2768],{"id":1288,"depth":1513,"text":806},{"id":1555,"depth":1513,"text":968},{"id":1781,"depth":1513,"text":1782},{"id":1805,"depth":1507,"text":1801,"children":2770},[2771,2772,2773,2774],{"id":1813,"depth":1513,"text":1814},{"id":1895,"depth":1513,"text":806},{"id":1959,"depth":1513,"text":968},{"id":2150,"depth":1513,"text":2151},{"id":2725,"depth":1507,"text":2726},{"id":2739,"depth":1507,"text":2740},"HTTP request, SOAP request and Sign: call another system.","md",null,{},true,{"title":409,"description":2777},"grx324fGvP23JB8UvtU_RhhcGxgyEzSkoWpvF6e3GK4",[2785,2787],{"title":262,"path":406,"stem":407,"description":2786,"children":-1},"Execute function, Execute JavaScript and Execute SQL.",{"title":413,"path":414,"stem":415,"description":2788,"children":-1},"Send email.",1792339967652]