diff --git a/search-index.json b/search-index.json
index 44b459e946..fc0393da46 100644
--- a/search-index.json
+++ b/search-index.json
@@ -1 +1 @@
-[{"documents":[{"i":1,"t":"","u":"/blog/archive","b":[]},{"i":2,"t":"Set Up and Maintain Your Steedos Organization","u":"/admin","b":[]},{"i":4,"t":"Setup Your Organization","u":"/admin/organization/","b":["Platform","Setup Your Organization"]},{"i":19,"t":"Audit logs","u":"/admin/organization/audit-logs","b":["Platform","Setup Your Organization"]},{"i":21,"t":"Company Info","u":"/admin/organization/company-info","b":["Platform","Setup Your Organization"]},{"i":23,"t":"Import Data Into Steedos","u":"/admin/organization/import","b":["Platform","Setup Your Organization"]},{"i":25,"t":"Manage Users","u":"/admin/organization/users","b":["Platform","Setup Your Organization"]},{"i":29,"t":"Manage Departments","u":"/admin/organization/organizations","b":["Platform","Setup Your Organization"]},{"i":31,"t":"Installed Packages","u":"/admin/organization/installed-packages","b":["Platform","Setup Your Organization"]},{"i":33,"t":"White Label","u":"/admin/organization/white-label","b":["Platform","Setup Your Organization"]},{"i":37,"t":"Manage Data Access","u":"/admin/permissions/","b":["Platform","Manage Data Access"]},{"i":59,"t":"Application Permissions","u":"/admin/permissions/app-permissions","b":["Platform","Manage Data Access"]},{"i":61,"t":"Organize Data with Divisions","u":"/admin/permissions/division","b":["Platform","Manage Data Access"]},{"i":65,"t":"Field Permissions","u":"/admin/permissions/field-permissions","b":["Platform","Manage Data Access"]},{"i":71,"t":"Control Who Sees What","u":"/admin/permissions/overview","b":["Platform","Manage Data Access"]},{"i":79,"t":"Permission Sets","u":"/admin/permissions/permission-set","b":["Platform","Manage Data Access"]},{"i":81,"t":"Trigger managed permissions","u":"/admin/permissions/before-find","b":["Platform","Manage Data Access"]},{"i":83,"t":"Object Permissions","u":"/admin/permissions/object-permissions","b":["Platform","Manage Data Access"]},{"i":85,"t":"Profiles","u":"/admin/permissions/profile","b":["Platform","Manage Data Access"]},{"i":87,"t":"Restriction Rules","u":"/admin/permissions/restriction-rules","b":["Platform","Manage Data Access"]},{"i":91,"t":"Collaboration Tools","u":"/apps/collaboration/","b":["Apps","Collaboration Tools"]},{"i":97,"t":"Sharing Rules","u":"/admin/permissions/sharing-rules","b":["Platform","Manage Data Access"]},{"i":99,"t":"Approval King: Streamlining Your Approval Processes","u":"/apps/collaboration/approval-king/","b":["Apps","Collaboration Tools"]},{"i":116,"t":"Steedos Milestone: Project Task Management System","u":"/apps/collaboration/milestone/","b":["Apps","Collaboration Tools"]},{"i":135,"t":"Customer Relationship Management","u":"/apps/customer-relationship-management/","b":["Apps","Customer Relationship Management"]},{"i":139,"t":"Steedos Service Management System","u":"/apps/customer-relationship-management/service/","b":["Apps","Customer Relationship Management"]},{"i":145,"t":"Self Hosting","u":"/apps/getting-started/deploy","b":["Apps","Getting Started"]},{"i":153,"t":"What is Low-code App?","u":"/apps/getting-started/overview","b":["Apps","Getting Started"]},{"i":157,"t":"Steedos Sales Management System","u":"/apps/customer-relationship-management/sales/","b":["Apps","Customer Relationship Management"]},{"i":163,"t":"HCM (Human Capital Management)","u":"/apps/human-capital-management/","b":["Apps","Human Capital Management"]},{"i":173,"t":"Employee Lifecycle Management System","u":"/apps/human-capital-management/employee/","b":["Apps","Human Capital Management"]},{"i":179,"t":"Attendance Management","u":"/apps/human-capital-management/attendance/","b":["Apps","Human Capital Management"]},{"i":205,"t":"Spend Management","u":"/apps/spend-management/","b":["Apps","Spend Management"]},{"i":219,"t":"Steedos Contract Lifecycle Management System","u":"/apps/spend-management/contract/","b":["Apps","Spend Management"]},{"i":225,"t":"Steedos Performance Evaluation System","u":"/apps/human-capital-management/performance/","b":["Apps","Human Capital Management"]},{"i":231,"t":"Steedos Invoice Management System","u":"/apps/spend-management/invoice/","b":["Apps","Spend Management"]},{"i":237,"t":"Steedos Supplier Management System","u":"/apps/spend-management/supplier/","b":["Apps","Spend Management"]},{"i":243,"t":"Project Cost Management System","u":"/apps/spend-management/project/","b":["Apps","Spend Management"]},{"i":251,"t":"Steedos Tender Management System","u":"/apps/spend-management/tender/","b":["Apps","Spend Management"]},{"i":270,"t":"Approval King","u":"/automation/approval-king/","b":["Platform","Automate Your Processes","Approval King"]},{"i":272,"t":"Admin Guide","u":"/automation/approval-king/admin-guide","b":["Platform","Automate Your Processes","Approval King"]},{"i":277,"t":"Users Started","u":"/automation/approval-king/getting-started","b":["Platform","Automate Your Processes","Approval King"]},{"i":279,"t":"Steedos Expense: Smart, Efficient, One-stop Reimbursement Experience","u":"/apps/spend-management/expense/","b":["Apps","Spend Management"]},{"i":321,"t":"Automate Your Business Processes","u":"/automation","b":["Platform","Automate Your Processes"]},{"i":331,"t":"Approval Processes","u":"/automation/approval-process","b":["Platform","Automate Your Processes"]},{"i":333,"t":"Self Hosting","u":"/deploy","b":["Platform","Getting Started","Self Hosting"]},{"i":342,"t":"Workflow Rules","u":"/automation/workflow-rules","b":["Platform","Automate Your Processes"]},{"i":344,"t":"Steedos Docker Deployment Guide","u":"/deploy/deploy-docker","b":["Platform","Getting Started","Self Hosting"]},{"i":363,"t":"Automated Actions","u":"/automation/automated-actions","b":["Platform","Automate Your Processes"]},{"i":365,"t":"Try with Gitpod","u":"/deploy/gitpod","b":["Platform","Getting Started","Self Hosting"]},{"i":367,"t":"How Steedos Developer Experience Changes Your Way of Working","u":"/developer","b":["Developer","Getting Started"]},{"i":402,"t":"Instance Configuration","u":"/deploy/steedos-config","b":["Platform","Getting Started","Self Hosting"]},{"i":432,"t":"API Guide","u":"/developer/api/","b":["Developer","Steedos API"]},{"i":446,"t":"Intranet","u":"/deploy/intranet","b":["Platform","Getting Started","Self Hosting"]},{"i":454,"t":"Process API","u":"/developer/api/api-process","b":["Developer","Steedos API"]},{"i":470,"t":"API Authentication","u":"/developer/api/api-validate","b":["Developer","Steedos API"]},{"i":478,"t":"OpenAPI","u":"/developer/api/openapi","b":["Developer","Steedos API"]},{"i":480,"t":"Extend the Reach of Your Organization","u":"/developer/integration/","b":["Developer","Integration"]},{"i":486,"t":"Introduction to Steedos API","u":"/developer/api/overview","b":["Developer","Steedos API"]},{"i":502,"t":"SSO API","u":"/developer/integration/api-jwt-sso","b":["Developer","Integration"]},{"i":515,"t":"GraphQL API","u":"/developer/api/graphql-api","b":["Developer","Steedos API"]},{"i":544,"t":"ๆฅ่กจ API","u":"/developer/api/analytics-api","b":["Developer","Steedos API"]},{"i":555,"t":"AMIS Frontend Low-Code Framework","u":"/developer/micro-page/amis/","b":["Developer","Micro Page Builder","AMIS Low-Code Framework"]},{"i":566,"t":"Data Scope and Data Chain","u":"/developer/micro-page/amis/data","b":["Developer","Micro Page Builder","AMIS Low-Code Framework"]},{"i":584,"t":"Data Mapping","u":"/developer/micro-page/amis/data_mapping","b":["Developer","Micro Page Builder","AMIS Low-Code Framework"]},{"i":594,"t":"Configuration and Components","u":"/developer/micro-page/amis/base_config","b":["Developer","Micro Page Builder","AMIS Low-Code Framework"]},{"i":604,"t":"Event Actions","u":"/developer/micro-page/amis/event","b":["Developer","Micro Page Builder","AMIS Low-Code Framework"]},{"i":626,"t":"Node-Red","u":"/developer/integration/node-red","b":["Developer","Integration"]},{"i":665,"t":"Linkage Mechanism","u":"/developer/micro-page/amis/linkage","b":["Developer","Micro Page Builder","AMIS Low-Code Framework"]},{"i":671,"t":"Custom Styles","u":"/developer/micro-page/amis/styles","b":["Developer","Micro Page Builder","AMIS Low-Code Framework"]},{"i":677,"t":"Micro Page Builder","u":"/developer/micro-page/","b":["Developer","Micro Page Builder"]},{"i":689,"t":"Expressions","u":"/developer/micro-page/amis/expression","b":["Developer","Micro Page Builder","AMIS Low-Code Framework"]},{"i":707,"t":"Components Reference","u":"/developer/micro-page/components/","b":["Developer","Micro Page Builder","Components Reference"]},{"i":714,"t":"ObjectForm","u":"/developer/micro-page/components/object_form","b":["Developer","Micro Page Builder","Components Reference"]},{"i":718,"t":"ObjectListView","u":"/developer/micro-page/components/object_listview","b":["Developer","Micro Page Builder","Components Reference"]},{"i":722,"t":"ObjectTable","u":"/developer/micro-page/components/object_table","b":["Developer","Micro Page Builder","Components Reference"]},{"i":726,"t":"RecordDetailRelatedList","u":"/developer/micro-page/components/record_detail_related_list","b":["Developer","Micro Page Builder","Components Reference"]},{"i":730,"t":"Custom Components","u":"/developer/micro-page/custom_components","b":["Developer","Micro Page Builder"]},{"i":735,"t":"Template Rendering","u":"/developer/micro-page/amis/tpl","b":["Developer","Micro Page Builder","AMIS Low-Code Framework"]},{"i":753,"t":"Quick Start","u":"/developer/micro-page/getting_start","b":["Developer","Micro Page Builder"]},{"i":767,"t":"RecordDetailHeader","u":"/developer/micro-page/components/record_detail_header","b":["Developer","Micro Page Builder","Components Reference"]},{"i":771,"t":"Steedos Micro Page Builder: Reshaping Web Development Experience","u":"/developer/micro-page/overview","b":["Developer","Micro Page Builder"]},{"i":783,"t":"What is Metadata?","u":"/developer/package/metadata/","b":["Developer","Package Development","Metadata"]},{"i":797,"t":"Package Development","u":"/developer/package/","b":["Developer","Package Development"]},{"i":809,"t":"Object Metadata","u":"/developer/package/metadata/metadata-object","b":["Developer","Package Development","Metadata"]},{"i":820,"t":"Automation Metadata","u":"/developer/package/metadata/metadata-automation","b":["Developer","Package Development","Metadata"]},{"i":833,"t":"What is Steedos Package?","u":"/developer/package/overview","b":["Developer","Package Development"]},{"i":849,"t":"Package Installation","u":"/developer/package/package-install","b":["Developer","Package Development"]},{"i":872,"t":"Package Publishing","u":"/developer/package/package-publish","b":["Developer","Package Development"]},{"i":900,"t":"Permission Metadata","u":"/developer/package/metadata/metadata-permissions","b":["Developer","Package Development","Metadata"]},{"i":914,"t":"Synchronize Metadata","u":"/developer/package/sync-metadata","b":["Developer","Package Development"]},{"i":932,"t":"Plugins","u":"/developer/plugins/","b":["Developer","Plugins"]},{"i":934,"t":"UI Metadata","u":"/developer/package/metadata/metadata-ui","b":["Developer","Package Development","Metadata"]},{"i":947,"t":"Triggers","u":"/developer/plugins/trigger","b":["Developer","Plugins"]},{"i":965,"t":"REST API","u":"/developer/service/action-api","b":["Developer","Service Development"]},{"i":969,"t":"What is a Plugin?","u":"/developer/plugins/overview","b":["Developer","Plugins"]},{"i":971,"t":"Microservice Package","u":"/developer/service/","b":["Developer","Service Development"]},{"i":989,"t":"Triggers","u":"/developer/service/action-trigger","b":["Developer","Service Development"]},{"i":1003,"t":"Moleculer Microservices Framework","u":"/developer/service/moleculer/","b":["Developer","Service Development","Moleculer Microservices Framework"]},{"i":1011,"t":"Actions","u":"/developer/service/moleculer/actions","b":["Developer","Service Development","Moleculer Microservices Framework"]},{"i":1025,"t":"Events","u":"/developer/service/moleculer/events","b":["Developer","Service Development","Moleculer Microservices Framework"]},{"i":1044,"t":"ObjectQL","u":"/developer/plugins/objectql","b":["Developer","Plugins"]},{"i":1092,"t":"Overview of Steedos Microservices Architecture","u":"/developer/service/overview","b":["Developer","Service Development"]},{"i":1096,"t":"What is Package Service?","u":"/developer/service/package-service","b":["Developer","Service Development"]},{"i":1120,"t":"Internationalization","u":"/developer/service/locale","b":["Developer","Service Development"]},{"i":1158,"t":"Platform Service Reference","u":"/developer/service/service-api/","b":["Developer","Service Development","Platform Service Reference"]},{"i":1159,"t":"GraphQL","u":"/developer/service/service-api/service-graphql","b":["Developer","Service Development","Platform Service Reference"]},{"i":1161,"t":"Push Notification","u":"/developer/service/service-api/service-push","b":["Developer","Service Development","Platform Service Reference"]},{"i":1165,"t":"ObjectQL","u":"/developer/service/objectql","b":["Developer","Service Development"]},{"i":1199,"t":"REPL Console","u":"/developer/service/moleculer/repl","b":["Developer","Service Development","Moleculer Microservices Framework"]},{"i":1239,"t":"Setup Project","u":"/developer/setup/","b":["Developer","Setup Project"]},{"i":1253,"t":"Create a Steedos DX Project","u":"/developer/setup/create-steedos-app","b":["Developer","Setup Project"]},{"i":1259,"t":"What is Steedos DX Project?","u":"/developer/setup/overview","b":["Developer","Setup Project"]},{"i":1271,"t":"SMS Notification","u":"/developer/service/service-api/service-sms","b":["Developer","Service Development","Platform Service Reference"]},{"i":1276,"t":"Sample Project on GitHub","u":"/developer/setup/sample-repository","b":["Developer","Setup Project"]},{"i":1282,"t":"Install Steedos Cli","u":"/developer/setup/steedos-cli","b":["Developer","Setup Project"]},{"i":1307,"t":"Steedos: Redefining Enterprise Application Development","u":"/getting-started/","b":["Platform","Getting Started"]},{"i":1313,"t":"Environment Setup","u":"/developer/setup/setup-env","b":["Developer","Setup Project"]},{"i":1322,"t":"Steedos Tutorials","u":"/getting-started/tutorials/","b":["Platform","Getting Started","Tutorials"]},{"i":1325,"t":"How to run Steedos DX Project?","u":"/developer/setup/project-start","b":["Developer","Setup Project"]},{"i":1343,"t":"Lesson 3: Creating Application","u":"/getting-started/tutorials/the-basics/app","b":["Platform","Getting Started","Tutorials","The Basics"]},{"i":1371,"t":"Lesson 1: Creating Objects","u":"/getting-started/tutorials/the-basics/object","b":["Platform","Getting Started","Tutorials","The Basics"]},{"i":1413,"t":"The Basics","u":"/getting-started/tutorials/the-basics/","b":["Platform","Getting Started","Tutorials","The Basics"]},{"i":1423,"t":"Lesson 2: Defining Relationships","u":"/getting-started/tutorials/the-basics/relationship","b":["Platform","Getting Started","Tutorials","The Basics"]},{"i":1447,"t":"User Guide","u":"/getting-started/user/","b":["Platform","Getting Started","User Guide"]},{"i":1453,"t":"Extend Steedos with Clicks, Not Code","u":"/no-code","b":[]},{"i":1455,"t":"Download Apps","u":"/getting-started/user/download-apps","b":["Platform","Getting Started","User Guide"]},{"i":1457,"t":"Overview of the Steedos Interface","u":"/getting-started/user/overview","b":["Platform","Getting Started","User Guide"]},{"i":1509,"t":"Lesson 4: Workflow Rules","u":"/getting-started/tutorials/the-basics/workflow-rules","b":["Platform","Getting Started","Tutorials","The Basics"]},{"i":1531,"t":"Creating Your First Application","u":"/no-code/application/app","b":["Platform","Building Applications"]},{"i":1551,"t":"What is a Steedos Application?","u":"/no-code/application/overview","b":["Platform","Building Applications"]},{"i":1559,"t":"Micro Page Builder","u":"/no-code/application/pages","b":["Platform","Building Applications"]},{"i":1581,"t":"Building Applications","u":"/no-code/application/","b":["Platform","Building Applications"]},{"i":1591,"t":"Set Up Your Data Your Way","u":"/no-code/customize/","b":["Platform","Data Model and Management"]},{"i":1617,"t":"Tabs","u":"/no-code/application/tab","b":["Platform","Building Applications"]},{"i":1630,"t":"External Data Sources","u":"/no-code/customize/external-datasources","b":["Platform","Data Model and Management"]},{"i":1634,"t":"Field Types","u":"/no-code/customize/fields/","b":["Platform","Data Model and Management","Field Types"]},{"i":1646,"t":"Field Attributes","u":"/no-code/customize/fields/field-attributes","b":["Platform","Data Model and Management","Field Types"]},{"i":1648,"t":"Auto Number Field","u":"/no-code/customize/fields/field-type-autonumber","b":["Platform","Data Model and Management","Field Types"]},{"i":1652,"t":"Custom Button","u":"/no-code/customize/button","b":["Platform","Data Model and Management"]},{"i":1660,"t":"Roll-Up Summary Field","u":"/no-code/customize/fields/field-type-summary","b":["Platform","Data Model and Management","Field Types"]},{"i":1662,"t":"Basic Field Types","u":"/no-code/customize/fields/field-types","b":["Platform","Data Model and Management","Field Types"]},{"i":1664,"t":"What Is a Cross-Object Formula?","u":"/no-code/customize/formula/cross-object","b":["Platform","Data Model and Management","Calculate Field Values with Formulas"]},{"i":1666,"t":"Calculate Field Values with Formulas","u":"/no-code/customize/formula/","b":["Platform","Data Model and Management","Calculate Field Values with Formulas"]},{"i":1678,"t":"Using Date, Date/Time, and Time Values in Formulas","u":"/no-code/customize/formula/datetime","b":["Platform","Data Model and Management","Calculate Field Values with Formulas"]},{"i":1696,"t":"Object Relationship Fields","u":"/no-code/customize/fields/relationship","b":["Platform","Data Model and Management","Field Types"]},{"i":1702,"t":"Formula Field Types","u":"/no-code/customize/formula/formula-field","b":["Platform","Data Model and Management","Calculate Field Values with Formulas"]},{"i":1704,"t":"List Views","u":"/no-code/customize/listview","b":["Platform","Data Model and Management"]},{"i":1706,"t":"Custom Objects","u":"/no-code/customize/object","b":["Platform","Data Model and Management"]},{"i":1714,"t":"Page Layouts","u":"/no-code/customize/page-layout","b":["Platform","Data Model and Management"]},{"i":1724,"t":"Formula Overview","u":"/no-code/customize/formula/overview","b":["Platform","Data Model and Management","Calculate Field Values with Formulas"]},{"i":1741,"t":"Object Relationships","u":"/no-code/customize/object-relationship","b":["Platform","Data Model and Management"]},{"i":1747,"t":"Steedos Plugins","u":"/plugins","b":["Platform","Plugins"]},{"i":1753,"t":"DingTalk","u":"/plugins/integration-ding","b":["Platform","Plugins"]},{"i":1755,"t":"WeChat Work","u":"/plugins/integration-qywx","b":["Platform","Plugins"]},{"i":1757,"t":"Validation Rules","u":"/no-code/customize/validation-rules","b":["Platform","Data Model and Management"]},{"i":1759,"t":"Welcome to Steedos Platform","u":"/blog/welcome","b":[]},{"i":1765,"t":"Formula Functions","u":"/no-code/customize/formula/functions","b":["Platform","Data Model and Management","Calculate Field Values with Formulas"]}],"index":{"version":"2.3.9","fields":["t"],"fieldVectors":[["t/1",[]],["t/2",[0,2.728,1,2.728,2,3.334,3,1.229,4,2.548]],["t/4",[4,3.9,5,4.175]],["t/19",[6,5.102,7,5.102]],["t/21",[8,5.102,9,5.102]],["t/23",[3,1.598,10,4.335,11,2.839]],["t/25",[12,2.414,13,4.175]],["t/29",[12,2.414,14,5.102]],["t/31",[15,4.175,16,3.341]],["t/33",[17,5.102,18,5.102]],["t/37",[11,2.839,12,2.051,19,4.335]],["t/59",[20,3.498,21,3.498]],["t/61",[4,3.314,11,2.839,22,4.335]],["t/65",[21,3.498,23,3.082]],["t/71",[24,5.102,25,5.102]],["t/79",[0,4.175,21,3.498]],["t/81",[12,2.051,21,2.972,26,3.548]],["t/83",[21,3.498,27,3.341]],["t/85",[28,6.197]],["t/87",[29,5.102,30,3.68]],["t/91",[31,5.102,32,5.102]],["t/97",[30,3.68,33,5.102]],["t/99",[34,4.118,35,2.969,36,3.334,37,2.548]],["t/116",[3,1.102,12,1.414,38,2.989,39,1.957,40,2.989,41,1.741]],["t/135",[12,2.051,42,3.127,43,3.314]],["t/139",[3,1.389,12,1.784,41,2.196,44,3.084]],["t/145",[45,4.543,46,4.543]],["t/153",[47,3.86,48,3.548,49,3.86]],["t/157",[3,1.389,12,1.784,41,2.196,50,3.769]],["t/163",[12,1.784,51,3.769,52,3.769,53,3.769]],["t/173",[12,1.784,41,2.196,54,3.769,55,3.356]],["t/179",[12,2.414,56,5.102]],["t/205",[12,2.414,57,5.102]],["t/219",[3,1.229,12,1.577,41,1.943,55,2.969,58,3.334]],["t/225",[3,1.389,41,2.196,59,3.769,60,3.769]],["t/231",[3,1.389,12,1.784,41,2.196,61,3.769]],["t/237",[3,1.389,12,1.784,41,2.196,62,3.769]],["t/243",[12,1.784,39,2.468,41,2.196,63,3.769]],["t/251",[3,1.389,12,1.784,41,2.196,64,3.769]],["t/270",[34,4.175,35,4.543]],["t/272",[65,5.102,66,3.9]],["t/277",[13,4.175,67,4.543]],["t/279",[3,0.913,68,2.476,69,2.476,70,2.476,71,2.476,72,2.476,73,2.476,74,2.026]],["t/321",[37,3.314,75,3.548,76,4.335]],["t/331",[34,4.175,37,3.9]],["t/333",[45,4.543,46,4.543]],["t/342",[30,3.68,77,4.543]],["t/344",[3,1.389,66,2.881,78,3.769,79,3.769]],["t/363",[75,4.175,80,4.175]],["t/365",[81,5.102,82,5.102]],["t/367",[3,1.102,74,2.446,83,2.284,84,2.989,85,2.661,86,2.661]],["t/402",[87,5.102,88,4.543]],["t/432",[66,3.9,89,3.204]],["t/446",[90,6.197]],["t/454",[37,3.9,89,3.204]],["t/470",[89,3.204,91,5.102]],["t/478",[92,6.197]],["t/480",[4,3.314,93,3.86,94,4.335]],["t/486",[3,1.598,89,2.723,95,4.335]],["t/502",[89,3.204,96,5.102]],["t/515",[89,3.204,97,4.543]],["t/544",[89,3.204,98,5.102]],["t/555",[47,2.969,48,2.728,99,3.334,100,3.334,101,2.969]],["t/566",[11,3.61,102,3.769,103,3.769]],["t/584",[11,3.341,104,5.102]],["t/594",[88,4.543,105,4.175]],["t/604",[80,4.175,106,4.543]],["t/626",[107,5.102,108,5.102]],["t/665",[109,5.102,110,5.102]],["t/671",[42,3.68,111,5.102]],["t/677",[112,3.548,113,3.314,114,3.548]],["t/689",[115,6.197]],["t/707",[105,4.175,116,4.543]],["t/714",[117,6.197]],["t/718",[118,6.197]],["t/722",[119,6.197]],["t/726",[120,6.197]],["t/730",[42,3.68,105,4.175]],["t/735",[121,5.102,122,5.102]],["t/753",[67,4.543,123,5.102]],["t/767",[124,6.197]],["t/771",[3,0.913,74,2.026,83,1.893,112,2.026,113,1.893,114,2.026,125,2.476,126,2.476]],["t/783",[127,4.249]],["t/797",[16,3.341,83,3.9]],["t/809",[27,3.341,127,3.498]],["t/820",[75,4.175,127,3.498]],["t/833",[3,1.881,16,3.341]],["t/849",[15,4.175,16,3.341]],["t/872",[16,3.341,128,5.102]],["t/900",[21,3.498,127,3.498]],["t/914",[127,3.498,129,5.102]],["t/932",[130,5.071]],["t/934",[127,3.498,131,5.102]],["t/947",[26,5.071]],["t/965",[89,3.204,132,5.102]],["t/969",[130,5.071]],["t/971",[16,3.341,133,4.175]],["t/989",[26,5.071]],["t/1003",[101,3.86,133,3.548,134,4.335]],["t/1011",[80,5.071]],["t/1025",[106,5.518]],["t/1044",[135,5.518]],["t/1092",[3,1.389,133,3.084,136,3.084,137,3.769]],["t/1096",[16,3.341,44,4.175]],["t/1120",[138,6.197]],["t/1158",[44,3.548,116,3.86,139,3.86]],["t/1159",[97,5.518]],["t/1161",[140,5.102,141,4.543]],["t/1165",[135,5.518]],["t/1199",[142,5.102,143,5.102]],["t/1239",[5,4.175,39,3.341]],["t/1253",[3,1.389,39,2.468,144,2.881,145,3.084]],["t/1259",[3,1.598,39,2.839,145,3.548]],["t/1271",[141,4.543,146,5.102]],["t/1276",[39,2.839,147,4.335,148,4.335]],["t/1282",[3,1.598,15,3.548,149,4.335]],["t/1307",[3,1.229,20,2.285,83,2.548,150,3.334,151,3.334]],["t/1313",[5,4.175,152,5.102]],["t/1322",[3,1.881,153,5.102]],["t/1325",[3,1.389,39,2.468,145,3.084,154,3.769]],["t/1343",[20,2.584,144,2.881,155,2.881,156,3.769]],["t/1371",[27,2.468,144,2.881,155,2.881,157,3.769]],["t/1413",[158,5.518]],["t/1423",[43,2.881,155,2.881,159,3.769,160,3.769]],["t/1447",[13,4.175,66,3.9]],["t/1453",[3,1.389,48,3.084,93,3.356,161,3.769]],["t/1455",[49,4.543,162,5.102]],["t/1457",[3,1.598,136,3.548,163,4.335]],["t/1509",[30,2.719,77,3.356,155,2.881,164,3.769]],["t/1531",[20,2.972,144,3.314,165,4.335]],["t/1551",[3,1.881,20,3.498]],["t/1559",[112,3.548,113,3.314,114,3.548]],["t/1581",[20,3.498,166,5.102]],["t/1591",[0,3.084,1,3.084,11,2.468,85,3.356]],["t/1617",[167,6.197]],["t/1630",[11,2.839,168,4.335,169,4.335]],["t/1634",[23,3.082,170,4.175]],["t/1646",[23,3.082,171,5.102]],["t/1648",[23,2.619,172,4.335,173,4.335]],["t/1652",[42,3.68,174,5.102]],["t/1660",[1,3.084,23,2.277,175,3.769,176,3.769]],["t/1662",[23,2.619,158,3.86,170,3.548]],["t/1664",[27,2.839,177,4.335,178,2.972]],["t/1666",[23,2.277,178,2.584,179,3.769,180,3.356]],["t/1678",[178,1.857,180,2.411,181,2.708,182,4.285,183,4.285]],["t/1696",[23,2.619,27,2.839,43,3.314]],["t/1702",[23,2.619,170,3.548,178,2.972]],["t/1704",[184,5.102,185,5.102]],["t/1706",[27,3.341,42,3.68]],["t/1714",[113,3.9,186,5.102]],["t/1724",[136,4.175,178,3.498]],["t/1741",[27,3.341,43,3.9]],["t/1747",[3,1.881,130,4.175]],["t/1753",[187,6.197]],["t/1755",[86,4.543,188,5.102]],["t/1757",[30,3.68,189,5.102]],["t/1759",[3,1.598,139,3.86,190,4.335]],["t/1765",[178,3.498,191,5.102]]],"invertedIndex":[["1",{"_index":157,"t":{"1371":{"position":[[7,1]]}}}],["2",{"_index":159,"t":{"1423":{"position":[[7,1]]}}}],["3",{"_index":156,"t":{"1343":{"position":[[7,1]]}}}],["4",{"_index":164,"t":{"1509":{"position":[[7,1]]}}}],["access",{"_index":19,"t":{"37":{"position":[[12,6]]}}}],["action",{"_index":80,"t":{"363":{"position":[[10,7]]},"604":{"position":[[6,7]]},"1011":{"position":[[0,7]]}}}],["admin",{"_index":65,"t":{"272":{"position":[[0,5]]}}}],["ami",{"_index":99,"t":{"555":{"position":[[0,4]]}}}],["api",{"_index":89,"t":{"432":{"position":[[0,3]]},"454":{"position":[[8,3]]},"470":{"position":[[0,3]]},"486":{"position":[[24,3]]},"502":{"position":[[4,3]]},"515":{"position":[[8,3]]},"544":{"position":[[3,3]]},"965":{"position":[[5,3]]}}}],["app",{"_index":49,"t":{"153":{"position":[[17,3]]},"1455":{"position":[[9,4]]}}}],["applic",{"_index":20,"t":{"59":{"position":[[0,11]]},"1307":{"position":[[31,11]]},"1343":{"position":[[19,11]]},"1531":{"position":[[20,11]]},"1551":{"position":[[18,11]]},"1581":{"position":[[9,12]]}}}],["approv",{"_index":34,"t":{"99":{"position":[[0,8],[33,8]]},"270":{"position":[[0,8]]},"331":{"position":[[0,8]]}}}],["architectur",{"_index":137,"t":{"1092":{"position":[[34,12]]}}}],["attend",{"_index":56,"t":{"179":{"position":[[0,10]]}}}],["attribut",{"_index":171,"t":{"1646":{"position":[[6,10]]}}}],["audit",{"_index":6,"t":{"19":{"position":[[0,5]]}}}],["authent",{"_index":91,"t":{"470":{"position":[[4,14]]}}}],["auto",{"_index":172,"t":{"1648":{"position":[[0,4]]}}}],["autom",{"_index":75,"t":{"321":{"position":[[0,8]]},"363":{"position":[[0,9]]},"820":{"position":[[0,10]]}}}],["basic",{"_index":158,"t":{"1413":{"position":[[4,6]]},"1662":{"position":[[0,5]]}}}],["build",{"_index":166,"t":{"1581":{"position":[[0,8]]}}}],["builder",{"_index":114,"t":{"677":{"position":[[11,7]]},"771":{"position":[[19,7]]},"1559":{"position":[[11,7]]}}}],["busi",{"_index":76,"t":{"321":{"position":[[14,8]]}}}],["button",{"_index":174,"t":{"1652":{"position":[[7,6]]}}}],["calcul",{"_index":179,"t":{"1666":{"position":[[0,9]]}}}],["capit",{"_index":53,"t":{"163":{"position":[[11,7]]}}}],["chain",{"_index":103,"t":{"566":{"position":[[20,5]]}}}],["chang",{"_index":84,"t":{"367":{"position":[[33,7]]}}}],["cli",{"_index":149,"t":{"1282":{"position":[[16,3]]}}}],["click",{"_index":161,"t":{"1453":{"position":[[20,6]]}}}],["code",{"_index":48,"t":{"153":{"position":[[12,4]]},"555":{"position":[[18,4]]},"1453":{"position":[[32,4]]}}}],["collabor",{"_index":31,"t":{"91":{"position":[[0,13]]}}}],["compani",{"_index":8,"t":{"21":{"position":[[0,7]]}}}],["compon",{"_index":105,"t":{"594":{"position":[[18,10]]},"707":{"position":[[0,10]]},"730":{"position":[[7,10]]}}}],["configur",{"_index":88,"t":{"402":{"position":[[9,13]]},"594":{"position":[[0,13]]}}}],["consol",{"_index":143,"t":{"1199":{"position":[[5,7]]}}}],["contract",{"_index":58,"t":{"219":{"position":[[8,8]]}}}],["control",{"_index":24,"t":{"71":{"position":[[0,7]]}}}],["cost",{"_index":63,"t":{"243":{"position":[[8,4]]}}}],["creat",{"_index":144,"t":{"1253":{"position":[[0,6]]},"1343":{"position":[[10,8]]},"1371":{"position":[[10,8]]},"1531":{"position":[[0,8]]}}}],["cross",{"_index":177,"t":{"1664":{"position":[[10,5]]}}}],["custom",{"_index":42,"t":{"135":{"position":[[0,8]]},"671":{"position":[[0,6]]},"730":{"position":[[0,6]]},"1652":{"position":[[0,6]]},"1706":{"position":[[0,6]]}}}],["data",{"_index":11,"t":{"23":{"position":[[7,4]]},"37":{"position":[[7,4]]},"61":{"position":[[9,4]]},"566":{"position":[[0,4],[15,4]]},"584":{"position":[[0,4]]},"1591":{"position":[[12,4]]},"1630":{"position":[[9,4]]}}}],["date",{"_index":182,"t":{"1678":{"position":[[6,4],[12,4]]}}}],["defin",{"_index":160,"t":{"1423":{"position":[[10,8]]}}}],["depart",{"_index":14,"t":{"29":{"position":[[7,11]]}}}],["deploy",{"_index":79,"t":{"344":{"position":[[15,10]]}}}],["develop",{"_index":83,"t":{"367":{"position":[[12,9]]},"771":{"position":[[42,11]]},"797":{"position":[[8,11]]},"1307":{"position":[[43,11]]}}}],["dingtalk",{"_index":187,"t":{"1753":{"position":[[0,8]]}}}],["divis",{"_index":22,"t":{"61":{"position":[[19,9]]}}}],["docker",{"_index":78,"t":{"344":{"position":[[8,6]]}}}],["download",{"_index":162,"t":{"1455":{"position":[[0,8]]}}}],["dx",{"_index":145,"t":{"1253":{"position":[[17,2]]},"1259":{"position":[[16,2]]},"1325":{"position":[[19,2]]}}}],["effici",{"_index":70,"t":{"279":{"position":[[24,9]]}}}],["employe",{"_index":54,"t":{"173":{"position":[[0,8]]}}}],["enterpris",{"_index":151,"t":{"1307":{"position":[[20,10]]}}}],["environ",{"_index":152,"t":{"1313":{"position":[[0,11]]}}}],["evalu",{"_index":60,"t":{"225":{"position":[[20,10]]}}}],["event",{"_index":106,"t":{"604":{"position":[[0,5]]},"1025":{"position":[[0,6]]}}}],["expens",{"_index":68,"t":{"279":{"position":[[8,7]]}}}],["experi",{"_index":74,"t":{"279":{"position":[[58,10]]},"367":{"position":[[22,10]]},"771":{"position":[[54,10]]}}}],["express",{"_index":115,"t":{"689":{"position":[[0,11]]}}}],["extend",{"_index":93,"t":{"480":{"position":[[0,6]]},"1453":{"position":[[0,6]]}}}],["extern",{"_index":168,"t":{"1630":{"position":[[0,8]]}}}],["field",{"_index":23,"t":{"65":{"position":[[0,5]]},"1634":{"position":[[0,5]]},"1646":{"position":[[0,5]]},"1648":{"position":[[12,5]]},"1660":{"position":[[16,5]]},"1662":{"position":[[6,5]]},"1666":{"position":[[10,5]]},"1696":{"position":[[20,6]]},"1702":{"position":[[8,5]]}}}],["first",{"_index":165,"t":{"1531":{"position":[[14,5]]}}}],["formula",{"_index":178,"t":{"1664":{"position":[[23,7]]},"1666":{"position":[[28,8]]},"1678":{"position":[[42,8]]},"1702":{"position":[[0,7]]},"1724":{"position":[[0,7]]},"1765":{"position":[[0,7]]}}}],["framework",{"_index":101,"t":{"555":{"position":[[23,9]]},"1003":{"position":[[24,9]]}}}],["frontend",{"_index":100,"t":{"555":{"position":[[5,8]]}}}],["function",{"_index":191,"t":{"1765":{"position":[[8,9]]}}}],["github",{"_index":148,"t":{"1276":{"position":[[18,6]]}}}],["gitpod",{"_index":82,"t":{"365":{"position":[[9,6]]}}}],["graphql",{"_index":97,"t":{"515":{"position":[[0,7]]},"1159":{"position":[[0,7]]}}}],["guid",{"_index":66,"t":{"272":{"position":[[6,5]]},"344":{"position":[[26,5]]},"432":{"position":[[4,5]]},"1447":{"position":[[5,5]]}}}],["hcm",{"_index":51,"t":{"163":{"position":[[0,3]]}}}],["host",{"_index":46,"t":{"145":{"position":[[5,7]]},"333":{"position":[[5,7]]}}}],["human",{"_index":52,"t":{"163":{"position":[[5,5]]}}}],["import",{"_index":10,"t":{"23":{"position":[[0,6]]}}}],["info",{"_index":9,"t":{"21":{"position":[[8,4]]}}}],["instal",{"_index":15,"t":{"31":{"position":[[0,9]]},"849":{"position":[[8,12]]},"1282":{"position":[[0,7]]}}}],["instanc",{"_index":87,"t":{"402":{"position":[[0,8]]}}}],["interfac",{"_index":163,"t":{"1457":{"position":[[24,9]]}}}],["internation",{"_index":138,"t":{"1120":{"position":[[0,20]]}}}],["intranet",{"_index":90,"t":{"446":{"position":[[0,8]]}}}],["introduct",{"_index":95,"t":{"486":{"position":[[0,12]]}}}],["invoic",{"_index":61,"t":{"231":{"position":[[8,7]]}}}],["king",{"_index":35,"t":{"99":{"position":[[9,4]]},"270":{"position":[[9,4]]}}}],["label",{"_index":18,"t":{"33":{"position":[[6,5]]}}}],["layout",{"_index":186,"t":{"1714":{"position":[[5,7]]}}}],["lesson",{"_index":155,"t":{"1343":{"position":[[0,6]]},"1371":{"position":[[0,6]]},"1423":{"position":[[0,6]]},"1509":{"position":[[0,6]]}}}],["lifecycl",{"_index":55,"t":{"173":{"position":[[9,9]]},"219":{"position":[[17,9]]}}}],["linkag",{"_index":109,"t":{"665":{"position":[[0,7]]}}}],["list",{"_index":184,"t":{"1704":{"position":[[0,4]]}}}],["log",{"_index":7,"t":{"19":{"position":[[6,4]]}}}],["low",{"_index":47,"t":{"153":{"position":[[8,3]]},"555":{"position":[[14,3]]}}}],["maintain",{"_index":2,"t":{"2":{"position":[[11,8]]}}}],["manag",{"_index":12,"t":{"25":{"position":[[0,6]]},"29":{"position":[[0,6]]},"37":{"position":[[0,6]]},"81":{"position":[[8,7]]},"116":{"position":[[32,10]]},"135":{"position":[[22,10]]},"139":{"position":[[16,10]]},"157":{"position":[[14,10]]},"163":{"position":[[19,10]]},"173":{"position":[[19,10]]},"179":{"position":[[11,10]]},"205":{"position":[[6,10]]},"219":{"position":[[27,10]]},"231":{"position":[[16,10]]},"237":{"position":[[17,10]]},"243":{"position":[[13,10]]},"251":{"position":[[15,10]]}}}],["map",{"_index":104,"t":{"584":{"position":[[5,7]]}}}],["mechan",{"_index":110,"t":{"665":{"position":[[8,9]]}}}],["metadata",{"_index":127,"t":{"783":{"position":[[8,8]]},"809":{"position":[[7,8]]},"820":{"position":[[11,8]]},"900":{"position":[[11,8]]},"914":{"position":[[12,8]]},"934":{"position":[[3,8]]}}}],["micro",{"_index":112,"t":{"677":{"position":[[0,5]]},"771":{"position":[[8,5]]},"1559":{"position":[[0,5]]}}}],["microservic",{"_index":133,"t":{"971":{"position":[[0,12]]},"1003":{"position":[[10,13]]},"1092":{"position":[[20,13]]}}}],["mileston",{"_index":38,"t":{"116":{"position":[[8,9]]}}}],["molecul",{"_index":134,"t":{"1003":{"position":[[0,9]]}}}],["node",{"_index":107,"t":{"626":{"position":[[0,4]]}}}],["notif",{"_index":141,"t":{"1161":{"position":[[5,12]]},"1271":{"position":[[4,12]]}}}],["number",{"_index":173,"t":{"1648":{"position":[[5,6]]}}}],["object",{"_index":27,"t":{"83":{"position":[[0,6]]},"809":{"position":[[0,6]]},"1371":{"position":[[19,7]]},"1664":{"position":[[16,6]]},"1696":{"position":[[0,6]]},"1706":{"position":[[7,7]]},"1741":{"position":[[0,6]]}}}],["objectform",{"_index":117,"t":{"714":{"position":[[0,10]]}}}],["objectlistview",{"_index":118,"t":{"718":{"position":[[0,14]]}}}],["objectql",{"_index":135,"t":{"1044":{"position":[[0,8]]},"1165":{"position":[[0,8]]}}}],["objectt",{"_index":119,"t":{"722":{"position":[[0,11]]}}}],["on",{"_index":71,"t":{"279":{"position":[[35,3]]}}}],["openapi",{"_index":92,"t":{"478":{"position":[[0,7]]}}}],["organ",{"_index":4,"t":{"2":{"position":[[33,12]]},"4":{"position":[[11,12]]},"61":{"position":[[0,8]]},"480":{"position":[[25,12]]}}}],["overview",{"_index":136,"t":{"1092":{"position":[[0,8]]},"1457":{"position":[[0,8]]},"1724":{"position":[[8,8]]}}}],["packag",{"_index":16,"t":{"31":{"position":[[10,8]]},"797":{"position":[[0,7]]},"833":{"position":[[16,7]]},"849":{"position":[[0,7]]},"872":{"position":[[0,7]]},"971":{"position":[[13,7]]},"1096":{"position":[[8,7]]}}}],["page",{"_index":113,"t":{"677":{"position":[[6,4]]},"771":{"position":[[14,4]]},"1559":{"position":[[6,4]]},"1714":{"position":[[0,4]]}}}],["perform",{"_index":59,"t":{"225":{"position":[[8,11]]}}}],["permiss",{"_index":21,"t":{"59":{"position":[[12,11]]},"65":{"position":[[6,11]]},"79":{"position":[[0,10]]},"81":{"position":[[16,11]]},"83":{"position":[[7,11]]},"900":{"position":[[0,10]]}}}],["platform",{"_index":139,"t":{"1158":{"position":[[0,8]]},"1759":{"position":[[19,8]]}}}],["plugin",{"_index":130,"t":{"932":{"position":[[0,7]]},"969":{"position":[[10,6]]},"1747":{"position":[[8,7]]}}}],["process",{"_index":37,"t":{"99":{"position":[[42,9]]},"321":{"position":[[23,9]]},"331":{"position":[[9,9]]},"454":{"position":[[0,7]]}}}],["profil",{"_index":28,"t":{"85":{"position":[[0,8]]}}}],["project",{"_index":39,"t":{"116":{"position":[[19,7]]},"243":{"position":[[0,7]]},"1239":{"position":[[6,7]]},"1253":{"position":[[20,7]]},"1259":{"position":[[19,7]]},"1276":{"position":[[7,7]]},"1325":{"position":[[22,7]]}}}],["publish",{"_index":128,"t":{"872":{"position":[[8,10]]}}}],["push",{"_index":140,"t":{"1161":{"position":[[0,4]]}}}],["quick",{"_index":123,"t":{"753":{"position":[[0,5]]}}}],["reach",{"_index":94,"t":{"480":{"position":[[11,5]]}}}],["recorddetailhead",{"_index":124,"t":{"767":{"position":[[0,18]]}}}],["recorddetailrelatedlist",{"_index":120,"t":{"726":{"position":[[0,23]]}}}],["red",{"_index":108,"t":{"626":{"position":[[5,3]]}}}],["redefin",{"_index":150,"t":{"1307":{"position":[[9,10]]}}}],["refer",{"_index":116,"t":{"707":{"position":[[11,9]]},"1158":{"position":[[17,9]]}}}],["reimburs",{"_index":73,"t":{"279":{"position":[[44,13]]}}}],["relationship",{"_index":43,"t":{"135":{"position":[[9,12]]},"1423":{"position":[[19,13]]},"1696":{"position":[[7,12]]},"1741":{"position":[[7,13]]}}}],["render",{"_index":122,"t":{"735":{"position":[[9,9]]}}}],["repl",{"_index":142,"t":{"1199":{"position":[[0,4]]}}}],["reshap",{"_index":125,"t":{"771":{"position":[[28,9]]}}}],["rest",{"_index":132,"t":{"965":{"position":[[0,4]]}}}],["restrict",{"_index":29,"t":{"87":{"position":[[0,11]]}}}],["roll",{"_index":175,"t":{"1660":{"position":[[0,4]]}}}],["rule",{"_index":30,"t":{"87":{"position":[[12,5]]},"97":{"position":[[8,5]]},"342":{"position":[[9,5]]},"1509":{"position":[[19,5]]},"1757":{"position":[[11,5]]}}}],["run",{"_index":154,"t":{"1325":{"position":[[7,3]]}}}],["sale",{"_index":50,"t":{"157":{"position":[[8,5]]}}}],["sampl",{"_index":147,"t":{"1276":{"position":[[0,6]]}}}],["scope",{"_index":102,"t":{"566":{"position":[[5,5]]}}}],["see",{"_index":25,"t":{"71":{"position":[[12,4]]}}}],["self",{"_index":45,"t":{"145":{"position":[[0,4]]},"333":{"position":[[0,4]]}}}],["servic",{"_index":44,"t":{"139":{"position":[[8,7]]},"1096":{"position":[[16,7]]},"1158":{"position":[[9,7]]}}}],["set",{"_index":0,"t":{"2":{"position":[[0,3]]},"79":{"position":[[11,4]]},"1591":{"position":[[0,3]]}}}],["setup",{"_index":5,"t":{"4":{"position":[[0,5]]},"1239":{"position":[[0,5]]},"1313":{"position":[[12,5]]}}}],["share",{"_index":33,"t":{"97":{"position":[[0,7]]}}}],["sm",{"_index":146,"t":{"1271":{"position":[[0,3]]}}}],["smart",{"_index":69,"t":{"279":{"position":[[17,5]]}}}],["sourc",{"_index":169,"t":{"1630":{"position":[[14,7]]}}}],["spend",{"_index":57,"t":{"205":{"position":[[0,5]]}}}],["sso",{"_index":96,"t":{"502":{"position":[[0,3]]}}}],["start",{"_index":67,"t":{"277":{"position":[[6,7]]},"753":{"position":[[6,5]]}}}],["steedo",{"_index":3,"t":{"2":{"position":[[25,7]]},"23":{"position":[[17,7]]},"116":{"position":[[0,7]]},"139":{"position":[[0,7]]},"157":{"position":[[0,7]]},"219":{"position":[[0,7]]},"225":{"position":[[0,7]]},"231":{"position":[[0,7]]},"237":{"position":[[0,7]]},"251":{"position":[[0,7]]},"279":{"position":[[0,7]]},"344":{"position":[[0,7]]},"367":{"position":[[4,7]]},"486":{"position":[[16,7]]},"771":{"position":[[0,7]]},"833":{"position":[[8,7]]},"1092":{"position":[[12,7]]},"1253":{"position":[[9,7]]},"1259":{"position":[[8,7]]},"1282":{"position":[[8,7]]},"1307":{"position":[[0,7]]},"1322":{"position":[[0,7]]},"1325":{"position":[[11,7]]},"1453":{"position":[[7,7]]},"1457":{"position":[[16,7]]},"1551":{"position":[[10,7]]},"1747":{"position":[[0,7]]},"1759":{"position":[[11,7]]}}}],["stop",{"_index":72,"t":{"279":{"position":[[39,4]]}}}],["streamlin",{"_index":36,"t":{"99":{"position":[[15,12]]}}}],["style",{"_index":111,"t":{"671":{"position":[[7,6]]}}}],["summari",{"_index":176,"t":{"1660":{"position":[[8,7]]}}}],["supplier",{"_index":62,"t":{"237":{"position":[[8,8]]}}}],["synchron",{"_index":129,"t":{"914":{"position":[[0,11]]}}}],["system",{"_index":41,"t":{"116":{"position":[[43,6]]},"139":{"position":[[27,6]]},"157":{"position":[[25,6]]},"173":{"position":[[30,6]]},"219":{"position":[[38,6]]},"225":{"position":[[31,6]]},"231":{"position":[[27,6]]},"237":{"position":[[28,6]]},"243":{"position":[[24,6]]},"251":{"position":[[26,6]]}}}],["tab",{"_index":167,"t":{"1617":{"position":[[0,4]]}}}],["task",{"_index":40,"t":{"116":{"position":[[27,4]]}}}],["templat",{"_index":121,"t":{"735":{"position":[[0,8]]}}}],["tender",{"_index":64,"t":{"251":{"position":[[8,6]]}}}],["time",{"_index":183,"t":{"1678":{"position":[[17,4],[27,4]]}}}],["tool",{"_index":32,"t":{"91":{"position":[[14,5]]}}}],["tri",{"_index":81,"t":{"365":{"position":[[0,3]]}}}],["trigger",{"_index":26,"t":{"81":{"position":[[0,7]]},"947":{"position":[[0,8]]},"989":{"position":[[0,8]]}}}],["tutori",{"_index":153,"t":{"1322":{"position":[[8,9]]}}}],["type",{"_index":170,"t":{"1634":{"position":[[6,5]]},"1662":{"position":[[12,5]]},"1702":{"position":[[14,5]]}}}],["ui",{"_index":131,"t":{"934":{"position":[[0,2]]}}}],["up",{"_index":1,"t":{"2":{"position":[[4,2]]},"1591":{"position":[[4,2]]},"1660":{"position":[[5,2]]}}}],["us",{"_index":181,"t":{"1678":{"position":[[0,5]]}}}],["user",{"_index":13,"t":{"25":{"position":[[7,5]]},"277":{"position":[[0,5]]},"1447":{"position":[[0,4]]}}}],["valid",{"_index":189,"t":{"1757":{"position":[[0,10]]}}}],["valu",{"_index":180,"t":{"1666":{"position":[[16,6]]},"1678":{"position":[[32,6]]}}}],["view",{"_index":185,"t":{"1704":{"position":[[5,5]]}}}],["way",{"_index":85,"t":{"367":{"position":[[46,3]]},"1591":{"position":[[22,3]]}}}],["web",{"_index":126,"t":{"771":{"position":[[38,3]]}}}],["wechat",{"_index":188,"t":{"1755":{"position":[[0,6]]}}}],["welcom",{"_index":190,"t":{"1759":{"position":[[0,7]]}}}],["white",{"_index":17,"t":{"33":{"position":[[0,5]]}}}],["work",{"_index":86,"t":{"367":{"position":[[53,7]]},"1755":{"position":[[7,4]]}}}],["workflow",{"_index":77,"t":{"342":{"position":[[0,8]]},"1509":{"position":[[10,8]]}}}],["ๆฅ่กจ",{"_index":98,"t":{"544":{"position":[[0,2]]}}}]],"pipeline":["stemmer"]}},{"documents":[{"i":5,"t":"๐๏ธ Company Info","u":"/admin/organization/","h":"","p":4},{"i":7,"t":"๐๏ธ Manage Users","u":"/admin/organization/","h":"","p":4},{"i":9,"t":"๐๏ธ Manage Departments","u":"/admin/organization/","h":"","p":4},{"i":11,"t":"๐๏ธ Installed Packages","u":"/admin/organization/","h":"","p":4},{"i":13,"t":"๐๏ธ Import Data","u":"/admin/organization/","h":"","p":4},{"i":15,"t":"๐๏ธ Audit logs","u":"/admin/organization/","h":"","p":4},{"i":17,"t":"๐๏ธ White Label","u":"/admin/organization/","h":"","p":4},{"i":27,"t":"View and Manage Users","u":"/admin/organization/users","h":"#view-and-manage-users","p":25},{"i":35,"t":"App Logo","u":"/admin/organization/white-label","h":"#app-logo","p":33},{"i":39,"t":"๐๏ธ Control Who Sees What","u":"/admin/permissions/","h":"","p":37},{"i":41,"t":"๐๏ธ Profiles","u":"/admin/permissions/","h":"","p":37},{"i":43,"t":"๐๏ธ Permission Sets","u":"/admin/permissions/","h":"","p":37},{"i":45,"t":"๐๏ธ Object Permissions","u":"/admin/permissions/","h":"","p":37},{"i":47,"t":"๐๏ธ Field Permissions","u":"/admin/permissions/","h":"","p":37},{"i":49,"t":"๐๏ธ Application Permissions","u":"/admin/permissions/","h":"","p":37},{"i":51,"t":"๐๏ธ Divisions","u":"/admin/permissions/","h":"","p":37},{"i":53,"t":"๐๏ธ Restriction Rules","u":"/admin/permissions/","h":"","p":37},{"i":55,"t":"๐๏ธ Sharing Rules","u":"/admin/permissions/","h":"","p":37},{"i":57,"t":"๐๏ธ Trigger managed permissions","u":"/admin/permissions/","h":"","p":37},{"i":63,"t":"How Divisions Work","u":"/admin/permissions/division","h":"#how-divisions-work","p":61},{"i":67,"t":"What Determines Field Access?","u":"/admin/permissions/field-permissions","h":"#what-determines-field-access","p":65},{"i":69,"t":"Field-Level Security","u":"/admin/permissions/field-permissions","h":"#field-level-security","p":65},{"i":73,"t":"Object-Level Security (Permission Sets and Profiles)","u":"/admin/permissions/overview","h":"#object-level-security-permission-sets-and-profiles","p":71},{"i":75,"t":"Field-Level Security (Permission Sets and Profiles)","u":"/admin/permissions/overview","h":"#field-level-security-permission-sets-and-profiles","p":71},{"i":77,"t":"Record-Level Security (Sharing)","u":"/admin/permissions/overview","h":"#record-level-security-sharing","p":71},{"i":89,"t":"When Do I Use Restriction Rules?","u":"/admin/permissions/restriction-rules","h":"#when-do-i-use-restriction-rules","p":87},{"i":93,"t":"๐๏ธ Approval King","u":"/apps/collaboration/","h":"","p":91},{"i":95,"t":"๐๏ธ Milestone","u":"/apps/collaboration/","h":"","p":91},{"i":101,"t":"Key Features","u":"/apps/collaboration/approval-king/","h":"#key-features","p":99},{"i":102,"t":"Intuitive Workflow Designer","u":"/apps/collaboration/approval-king/","h":"#intuitive-workflow-designer","p":99},{"i":104,"t":"Multi-Level Approval Chains","u":"/apps/collaboration/approval-king/","h":"#multi-level-approval-chains","p":99},{"i":106,"t":"Real-Time Tracking and Notifications","u":"/apps/collaboration/approval-king/","h":"#real-time-tracking-and-notifications","p":99},{"i":108,"t":"Mobile Accessibility","u":"/apps/collaboration/approval-king/","h":"#mobile-accessibility","p":99},{"i":110,"t":"Integration and Compatibility","u":"/apps/collaboration/approval-king/","h":"#integration-and-compatibility","p":99},{"i":112,"t":"Security and Compliance","u":"/apps/collaboration/approval-king/","h":"#security-and-compliance","p":99},{"i":114,"t":"Reporting and Analytics","u":"/apps/collaboration/approval-king/","h":"#reporting-and-analytics","p":99},{"i":118,"t":"Core Features","u":"/apps/collaboration/milestone/","h":"#core-features","p":116},{"i":119,"t":"Project Organization","u":"/apps/collaboration/milestone/","h":"#project-organization","p":116},{"i":121,"t":"Task Management","u":"/apps/collaboration/milestone/","h":"#task-management","p":116},{"i":123,"t":"Issue Tracking","u":"/apps/collaboration/milestone/","h":"#issue-tracking","p":116},{"i":125,"t":"Time Management","u":"/apps/collaboration/milestone/","h":"#time-management","p":116},{"i":127,"t":"Team Collaboration","u":"/apps/collaboration/milestone/","h":"#team-collaboration","p":116},{"i":129,"t":"Reporting and Analysis","u":"/apps/collaboration/milestone/","h":"#reporting-and-analysis","p":116},{"i":131,"t":"Customization and Integration","u":"/apps/collaboration/milestone/","h":"#customization-and-integration","p":116},{"i":133,"t":"Product Advantages","u":"/apps/collaboration/milestone/","h":"#product-advantages","p":116},{"i":137,"t":"Key Features:","u":"/apps/customer-relationship-management/","h":"#key-features","p":135},{"i":141,"t":"Key Features:","u":"/apps/customer-relationship-management/service/","h":"#key-features","p":139},{"i":143,"t":"Product Highlights:","u":"/apps/customer-relationship-management/service/","h":"#product-highlights","p":139},{"i":147,"t":"Prerequisites","u":"/apps/getting-started/deploy","h":"#prerequisites","p":145},{"i":149,"t":"Install Steedos Apps","u":"/apps/getting-started/deploy","h":"#install-steedos-apps","p":145},{"i":151,"t":"Further reading","u":"/apps/getting-started/deploy","h":"#further-reading","p":145},{"i":155,"t":"Low-code driven, easily customizable.","u":"/apps/getting-started/overview","h":"#low-code-driven-easily-customizable","p":153},{"i":159,"t":"Key Features","u":"/apps/customer-relationship-management/sales/","h":"#key-features","p":157},{"i":161,"t":"Product Highlights","u":"/apps/customer-relationship-management/sales/","h":"#product-highlights","p":157},{"i":165,"t":"Key components of HCM include:","u":"/apps/human-capital-management/","h":"#key-components-of-hcm-include","p":163},{"i":167,"t":"๐๏ธ Employee Management","u":"/apps/human-capital-management/","h":"","p":163},{"i":169,"t":"๐๏ธ Attendance","u":"/apps/human-capital-management/","h":"","p":163},{"i":171,"t":"๐๏ธ Performance Evaluation","u":"/apps/human-capital-management/","h":"","p":163},{"i":175,"t":"System Features","u":"/apps/human-capital-management/employee/","h":"#system-features","p":173},{"i":177,"t":"Product Advantages","u":"/apps/human-capital-management/employee/","h":"#product-advantages","p":173},{"i":181,"t":"Overview","u":"/apps/human-capital-management/attendance/","h":"#overview","p":179},{"i":182,"t":"Core Features","u":"/apps/human-capital-management/attendance/","h":"#core-features","p":179},{"i":184,"t":"Key Highlights","u":"/apps/human-capital-management/attendance/","h":"#key-highlights","p":179},{"i":186,"t":"Attendance Configuration","u":"/apps/human-capital-management/attendance/","h":"#attendance-configuration","p":179},{"i":187,"t":"Setting Attendance Rules","u":"/apps/human-capital-management/attendance/","h":"#setting-attendance-rules","p":179},{"i":189,"t":"Configuring Attendance Intervals","u":"/apps/human-capital-management/attendance/","h":"#configuring-attendance-intervals","p":179},{"i":191,"t":"Holidays and Special Dates","u":"/apps/human-capital-management/attendance/","h":"#holidays-and-special-dates","p":179},{"i":193,"t":"Clock-in Management","u":"/apps/human-capital-management/attendance/","h":"#clock-in-management","p":179},{"i":194,"t":"Configuring Clock-in Methods and Locations","u":"/apps/human-capital-management/attendance/","h":"#configuring-clock-in-methods-and-locations","p":179},{"i":196,"t":"Leave, Outing, and Business Trip Management","u":"/apps/human-capital-management/attendance/","h":"#leave-outing-and-business-trip-management","p":179},{"i":197,"t":"Setting Leave Procedures","u":"/apps/human-capital-management/attendance/","h":"#setting-leave-procedures","p":179},{"i":199,"t":"Applying for Outings and Business Trips","u":"/apps/human-capital-management/attendance/","h":"#applying-for-outings-and-business-trips","p":179},{"i":201,"t":"Approval and Status Tracking","u":"/apps/human-capital-management/attendance/","h":"#approval-and-status-tracking","p":179},{"i":203,"t":"Summary","u":"/apps/human-capital-management/attendance/","h":"#summary","p":179},{"i":207,"t":"๐๏ธ Project Cost Management","u":"/apps/spend-management/","h":"","p":205},{"i":209,"t":"๐๏ธ Contract","u":"/apps/spend-management/","h":"","p":205},{"i":211,"t":"๐๏ธ Expense","u":"/apps/spend-management/","h":"","p":205},{"i":213,"t":"๐๏ธ Invoice Management","u":"/apps/spend-management/","h":"","p":205},{"i":215,"t":"๐๏ธ Supplier","u":"/apps/spend-management/","h":"","p":205},{"i":217,"t":"๐๏ธ Tender Management","u":"/apps/spend-management/","h":"","p":205},{"i":221,"t":"Key Features","u":"/apps/spend-management/contract/","h":"#key-features","p":219},{"i":223,"t":"Why Choose the Steedos Contract Lifecycle Management System?","u":"/apps/spend-management/contract/","h":"#why-choose-the-steedos-contract-lifecycle-management-system","p":219},{"i":227,"t":"Key Features:","u":"/apps/human-capital-management/performance/","h":"#key-features","p":225},{"i":229,"t":"Why Choose the Steedos Performance Evaluation System?","u":"/apps/human-capital-management/performance/","h":"#why-choose-the-steedos-performance-evaluation-system","p":225},{"i":233,"t":"Core Features","u":"/apps/spend-management/invoice/","h":"#core-features","p":231},{"i":235,"t":"Advantages","u":"/apps/spend-management/invoice/","h":"#advantages","p":231},{"i":239,"t":"Key Features:","u":"/apps/spend-management/supplier/","h":"#key-features","p":237},{"i":241,"t":"Product Highlights:","u":"/apps/spend-management/supplier/","h":"#product-highlights","p":237},{"i":245,"t":"Overview","u":"/apps/spend-management/project/","h":"#overview","p":243},{"i":247,"t":"Core Features","u":"/apps/spend-management/project/","h":"#core-features","p":243},{"i":249,"t":"Application Scenarios","u":"/apps/spend-management/project/","h":"#application-scenarios","p":243},{"i":253,"t":"Key Features","u":"/apps/spend-management/tender/","h":"#key-features","p":251},{"i":254,"t":"1. Tender Project Management","u":"/apps/spend-management/tender/","h":"#1-tender-project-management","p":251},{"i":256,"t":"2. Tender Announcement Publication","u":"/apps/spend-management/tender/","h":"#2-tender-announcement-publication","p":251},{"i":258,"t":"3. Bid Document Management","u":"/apps/spend-management/tender/","h":"#3-bid-document-management","p":251},{"i":260,"t":"4. Supplier Management","u":"/apps/spend-management/tender/","h":"#4-supplier-management","p":251},{"i":262,"t":"5. Bid Evaluation & Decision Support","u":"/apps/spend-management/tender/","h":"#5-bid-evaluation--decision-support","p":251},{"i":264,"t":"6. Contract Award & Management","u":"/apps/spend-management/tender/","h":"#6-contract-award--management","p":251},{"i":266,"t":"7. System Security & Audit","u":"/apps/spend-management/tender/","h":"#7-system-security--audit","p":251},{"i":268,"t":"System Benefits","u":"/apps/spend-management/tender/","h":"#system-benefits","p":251},{"i":273,"t":"Form design","u":"/automation/approval-king/admin-guide","h":"#form-design","p":272},{"i":275,"t":"Flow design","u":"/automation/approval-king/admin-guide","h":"#flow-design","p":272},{"i":281,"t":"Introduction","u":"/apps/spend-management/expense/","h":"#introduction","p":279},{"i":283,"t":"Target Users","u":"/apps/spend-management/expense/","h":"#target-users","p":279},{"i":285,"t":"Core Features","u":"/apps/spend-management/expense/","h":"#core-features","p":279},{"i":287,"t":"Key Highlights","u":"/apps/spend-management/expense/","h":"#key-highlights","p":279},{"i":289,"t":"Create a Reimbursement","u":"/apps/spend-management/expense/","h":"#create-a-reimbursement","p":279},{"i":290,"t":"Preparation","u":"/apps/spend-management/expense/","h":"#preparation","p":279},{"i":292,"t":"Fill in Reimbursement Information","u":"/apps/spend-management/expense/","h":"#fill-in-reimbursement-information","p":279},{"i":294,"t":"Invoice Upload & Scan","u":"/apps/spend-management/expense/","h":"#invoice-upload--scan","p":279},{"i":296,"t":"Submit Reimbursement Application","u":"/apps/spend-management/expense/","h":"#submit-reimbursement-application","p":279},{"i":298,"t":"Invoice Management","u":"/apps/spend-management/expense/","h":"#invoice-management","p":279},{"i":299,"t":"Invoice Scanning & Auto Recognition","u":"/apps/spend-management/expense/","h":"#invoice-scanning--auto-recognition","p":279},{"i":301,"t":"Manual Invoice Entry","u":"/apps/spend-management/expense/","h":"#manual-invoice-entry","p":279},{"i":303,"t":"Invoice Authenticity Verification","u":"/apps/spend-management/expense/","h":"#invoice-authenticity-verification","p":279},{"i":305,"t":"Reimbursement Approval Process","u":"/apps/spend-management/expense/","h":"#reimbursement-approval-process","p":279},{"i":306,"t":"Reimbursement Routing & Notification","u":"/apps/spend-management/expense/","h":"#reimbursement-routing--notification","p":279},{"i":308,"t":"Approval Actions & Responses","u":"/apps/spend-management/expense/","h":"#approval-actions--responses","p":279},{"i":310,"t":"Reimbursement Modification & Resubmission","u":"/apps/spend-management/expense/","h":"#reimbursement-modification--resubmission","p":279},{"i":312,"t":"Reimbursement Status & Inquiry","u":"/apps/spend-management/expense/","h":"#reimbursement-status--inquiry","p":279},{"i":313,"t":"Check Reimbursement Status","u":"/apps/spend-management/expense/","h":"#check-reimbursement-status","p":279},{"i":315,"t":"Reimbursement Details & History","u":"/apps/spend-management/expense/","h":"#reimbursement-details--history","p":279},{"i":317,"t":"Export Reimbursement Records","u":"/apps/spend-management/expense/","h":"#export-reimbursement-records","p":279},{"i":319,"t":"Conclusion","u":"/apps/spend-management/expense/","h":"#conclusion","p":279},{"i":323,"t":"๐๏ธ Automated Actions","u":"/automation","h":"","p":321},{"i":325,"t":"๐๏ธ Workflow Rules","u":"/automation","h":"","p":321},{"i":327,"t":"๐๏ธ Approval Processes","u":"/automation","h":"","p":321},{"i":329,"t":"๐๏ธ Approval King","u":"/automation","h":"","p":321},{"i":334,"t":"๐๏ธ Docker","u":"/deploy","h":"","p":333},{"i":336,"t":"๐๏ธ Intranet","u":"/deploy","h":"","p":333},{"i":338,"t":"๐๏ธ Try with Gitpod","u":"/deploy","h":"","p":333},{"i":340,"t":"๐๏ธ Instance Configuration","u":"/deploy","h":"","p":333},{"i":346,"t":"Prerequisites","u":"/deploy/deploy-docker","h":"#prerequisites","p":344},{"i":348,"t":"Deployment Steps","u":"/deploy/deploy-docker","h":"#deployment-steps","p":344},{"i":349,"t":"1. Prepare Configuration File","u":"/deploy/deploy-docker","h":"#1-prepare-configuration-file","p":344},{"i":351,"t":"2. Start Containers","u":"/deploy/deploy-docker","h":"#2-start-containers","p":344},{"i":353,"t":"3. Verify Deployment","u":"/deploy/deploy-docker","h":"#3-verify-deployment","p":344},{"i":355,"t":"Configuration and Optimization","u":"/deploy/deploy-docker","h":"#configuration-and-optimization","p":344},{"i":357,"t":"Troubleshooting","u":"/deploy/deploy-docker","h":"#troubleshooting","p":344},{"i":359,"t":"Updates and Maintenance","u":"/deploy/deploy-docker","h":"#updates-and-maintenance","p":344},{"i":361,"t":"Further Reading","u":"/deploy/deploy-docker","h":"#further-reading","p":344},{"i":369,"t":"Highlights of Steedos DX","u":"/developer","h":"#highlights-of-steedos-dx","p":367},{"i":370,"t":"1. Source-driven development","u":"/developer","h":"#1-source-driven-development","p":367},{"i":372,"t":"2. Team Collaboration","u":"/developer","h":"#2-team-collaboration","p":367},{"i":374,"t":"3. Continuous Integration and Deployment (CI/CD)","u":"/developer","h":"#3-continuous-integration-and-deployment-cicd","p":367},{"i":376,"t":"4. Environment Management","u":"/developer","h":"#4-environment-management","p":367},{"i":378,"t":"5. Package and Dependency Management","u":"/developer","h":"#5-package-and-dependency-management","p":367},{"i":380,"t":"6. Modular Deployment","u":"/developer","h":"#6-modular-deployment","p":367},{"i":382,"t":"No-Code Development","u":"/developer","h":"#no-code-development","p":367},{"i":384,"t":"Custom Objects","u":"/developer","h":"#custom-objects","p":367},{"i":386,"t":"Custom User Interface","u":"/developer","h":"#custom-user-interface","p":367},{"i":388,"t":"Automated Workflows","u":"/developer","h":"#automated-workflows","p":367},{"i":390,"t":"Source-Driven Development with Steedos DX","u":"/developer","h":"#source-driven-development-with-steedos-dx","p":367},{"i":392,"t":"Project Setup","u":"/developer","h":"#project-setup","p":367},{"i":394,"t":"Package Development","u":"/developer","h":"#package-development","p":367},{"i":396,"t":"Package Microservice Development","u":"/developer","h":"#package-microservice-development","p":367},{"i":398,"t":"Micro Page Builder","u":"/developer","h":"#micro-page-builder","p":367},{"i":400,"t":"API Integration","u":"/developer","h":"#api-integration","p":367},{"i":404,"t":"Required Configuration","u":"/deploy/steedos-config","h":"#required-configuration","p":402},{"i":406,"t":"Login Screen","u":"/deploy/steedos-config","h":"#login-screen","p":402},{"i":408,"t":"Metadata Synchronization","u":"/deploy/steedos-config","h":"","p":402},{"i":410,"t":"Attachment Storage","u":"/deploy/steedos-config","h":"#attachment-storage","p":402},{"i":412,"t":"Local File System","u":"/deploy/steedos-config","h":"#local-file-system","p":402},{"i":414,"t":"S3","u":"/deploy/steedos-config","h":"#s3","p":402},{"i":416,"t":"Attachment Anonymous Download","u":"/deploy/steedos-config","h":"#attachment-anonymous-download","p":402},{"i":418,"t":"Push Notifications","u":"/deploy/steedos-config","h":"#push-notifications","p":402},{"i":420,"t":"Email Configuration","u":"/deploy/steedos-config","h":"#email-configuration","p":402},{"i":422,"t":"OIDC Authentication","u":"/deploy/steedos-config","h":"#oidc-authentication","p":402},{"i":424,"t":"Scheduled Tasks","u":"/deploy/steedos-config","h":"#scheduled-tasks","p":402},{"i":426,"t":"Developer Options","u":"/deploy/steedos-config","h":"#developer-options","p":402},{"i":428,"t":"Account-related","u":"/deploy/steedos-config","h":"#account-related","p":402},{"i":430,"t":"Password Policy Configuration","u":"/deploy/steedos-config","h":"#password-policy-configuration","p":402},{"i":434,"t":"๐๏ธ Overview","u":"/developer/api/","h":"","p":432},{"i":436,"t":"๐๏ธ API Authentication","u":"/developer/api/","h":"","p":432},{"i":438,"t":"๐๏ธ GraphQL API","u":"/developer/api/","h":"","p":432},{"i":440,"t":"๐๏ธ OpenAPI","u":"/developer/api/","h":"","p":432},{"i":442,"t":"๐๏ธ ๆฅ่กจ API","u":"/developer/api/","h":"","p":432},{"i":444,"t":"๐๏ธ Process API","u":"/developer/api/","h":"","p":432},{"i":448,"t":"Prerequisites","u":"/deploy/intranet","h":"#prerequisites","p":446},{"i":450,"t":"Installing Docker","u":"/deploy/intranet","h":"#installing-docker","p":446},{"i":452,"t":"Installing Steedos","u":"/deploy/intranet","h":"#installing-steedos","p":446},{"i":456,"t":"Interface Validation","u":"/developer/api/api-process","h":"#interface-validation","p":454},{"i":458,"t":"API List","u":"/developer/api/api-process","h":"#api-list","p":454},{"i":460,"t":"API Specifications","u":"/developer/api/api-process","h":"#api-specifications","p":454},{"i":462,"t":"Start Approval","u":"/developer/api/api-process","h":"#start-approval","p":454},{"i":464,"t":"Save Draft Approval Form","u":"/developer/api/api-process","h":"#save-draft-approval-form","p":454},{"i":466,"t":"Submitting a Draft Application","u":"/developer/api/api-process","h":"#submitting-a-draft-application","p":454},{"i":468,"t":"Submitting an Approval Application","u":"/developer/api/api-process","h":"#submitting-an-approval-application","p":454},{"i":472,"t":"Call the login api to obtain user identity","u":"/developer/api/api-validate","h":"#call-the-login-api-to-obtain-user-identity","p":470},{"i":474,"t":"Use current browser user identity verification","u":"/developer/api/api-validate","h":"#use-current-browser-user-identity-verification","p":470},{"i":476,"t":"Use administrator API key verification","u":"/developer/api/api-validate","h":"#use-administrator-api-key-verification","p":470},{"i":482,"t":"๐๏ธ SSO API","u":"/developer/integration/","h":"","p":480},{"i":484,"t":"๐๏ธ Node-Red","u":"/developer/integration/","h":"","p":480},{"i":488,"t":"Overview","u":"/developer/api/overview","h":"#overview","p":486},{"i":490,"t":"Types of Steedos APIs","u":"/developer/api/overview","h":"#types-of-steedos-apis","p":486},{"i":492,"t":"REST API","u":"/developer/api/overview","h":"#rest-api","p":486},{"i":494,"t":"GraphQL API","u":"/developer/api/overview","h":"#graphql-api","p":486},{"i":496,"t":"Metadata API","u":"/developer/api/overview","h":"#metadata-api","p":486},{"i":498,"t":"Benefits of Steedos APIs","u":"/developer/api/overview","h":"#benefits-of-steedos-apis","p":486},{"i":500,"t":"Conclusion","u":"/developer/api/overview","h":"#conclusion","p":486},{"i":503,"t":"Logging into the Steedos from external applications.","u":"/developer/integration/api-jwt-sso","h":"#logging-into-the-steedos-from-external-applications","p":502},{"i":504,"t":"Preparation","u":"/developer/integration/api-jwt-sso","h":"#preparation","p":502},{"i":506,"t":"Next","u":"/developer/integration/api-jwt-sso","h":"#next","p":502},{"i":508,"t":"Example","u":"/developer/integration/api-jwt-sso","h":"#example","p":502},{"i":510,"t":"Login to External Applications via Steedos","u":"/developer/integration/api-jwt-sso","h":"#login-to-external-applications-via-steedos","p":502},{"i":511,"t":"Process Description","u":"/developer/integration/api-jwt-sso","h":"#process-description","p":502},{"i":513,"t":"Example","u":"/developer/integration/api-jwt-sso","h":"#example-1","p":502},{"i":516,"t":"GraphQL Console","u":"/developer/api/graphql-api","h":"#graphql-console","p":515},{"i":518,"t":"ๆฅๅฃ้ช่ฏ","u":"/developer/api/graphql-api","h":"#ๆฅๅฃ้ช่ฏ","p":515},{"i":520,"t":"Querying Data","u":"/developer/api/graphql-api","h":"#querying-data","p":515},{"i":522,"t":"Querying Objects and Fields","u":"/developer/api/graphql-api","h":"#querying-objects-and-fields","p":515},{"i":524,"t":"Query parameter: Pagination","u":"/developer/api/graphql-api","h":"#query-parameter-pagination","p":515},{"i":526,"t":"Query parameter: Sorting","u":"/developer/api/graphql-api","h":"#query-parameter-sorting","p":515},{"i":528,"t":"Query parameter: Filtering","u":"/developer/api/graphql-api","h":"#query-parameter-filtering","p":515},{"i":530,"t":"Expanding Related Tables in Query","u":"/developer/api/graphql-api","h":"#expanding-related-tables-in-query","p":515},{"i":532,"t":"Returning formatted data","u":"/developer/api/graphql-api","h":"#returning-formatted-data","p":515},{"i":534,"t":"Querying Related Subtables","u":"/developer/api/graphql-api","h":"#querying-related-subtables","p":515},{"i":536,"t":"Working with Data","u":"/developer/api/graphql-api","h":"#working-with-data","p":515},{"i":538,"t":"Creating Data","u":"/developer/api/graphql-api","h":"#creating-data","p":515},{"i":540,"t":"Modifying record","u":"/developer/api/graphql-api","h":"#modifying-record","p":515},{"i":542,"t":"Deleting record","u":"/developer/api/graphql-api","h":"#deleting-record","p":515},{"i":545,"t":"่ทๅAPI","u":"/developer/api/analytics-api","h":"#่ทๅapi","p":544},{"i":547,"t":"่ทๅ็ปๆ","u":"/developer/api/analytics-api","h":"#่ทๅ็ปๆ","p":544},{"i":549,"t":"ๆฅ่กจๆฐๆฎ็ปๆ","u":"/developer/api/analytics-api","h":"#ๆฅ่กจๆฐๆฎ็ปๆ","p":544},{"i":551,"t":"ๆฅ่กจๆฐๆฎ็คบไพ","u":"/developer/api/analytics-api","h":"#ๆฅ่กจๆฐๆฎ็คบไพ","p":544},{"i":553,"t":"APIๅบ็จ็คบไพ","u":"/developer/api/analytics-api","h":"#apiๅบ็จ็คบไพ","p":544},{"i":556,"t":"Introduction to AMIS","u":"/developer/micro-page/amis/","h":"#introduction-to-amis","p":555},{"i":558,"t":"Design Philosophy of AMIS","u":"/developer/micro-page/amis/","h":"#design-philosophy-of-amis","p":555},{"i":560,"t":"Core Features of AMIS","u":"/developer/micro-page/amis/","h":"#core-features-of-amis","p":555},{"i":562,"t":"Application Scenarios of AMIS","u":"/developer/micro-page/amis/","h":"#application-scenarios-of-amis","p":555},{"i":564,"t":"Hands-on Practice","u":"/developer/micro-page/amis/","h":"#hands-on-practice","p":555},{"i":567,"t":"Basic Concepts: Data Scope and Data Chain","u":"/developer/micro-page/amis/data","h":"#basic-concepts-data-scope-and-data-chain","p":566},{"i":569,"t":"Components with Data Scope","u":"/developer/micro-page/amis/data","h":"#components-with-data-scope","p":566},{"i":571,"t":"1. Initializing the Data Scope","u":"/developer/micro-page/amis/data","h":"#1-initializing-the-data-scope","p":566},{"i":573,"t":"Component Initialization Interface","u":"/developer/micro-page/amis/data","h":"#component-initialization-interface","p":566},{"i":575,"t":"Explicit Data Property Configuration","u":"/developer/micro-page/amis/data","h":"#explicit-data-property-configuration","p":566},{"i":577,"t":"2. Updating the Data Scope","u":"/developer/micro-page/amis/data","h":"#2-updating-the-data-scope","p":566},{"i":579,"t":"3. Updating the Data Chain","u":"/developer/micro-page/amis/data","h":"#3-updating-the-data-chain","p":566},{"i":581,"t":"4. Others","u":"/developer/micro-page/amis/data","h":"#4-others","p":566},{"i":582,"t":"URL Parameters","u":"/developer/micro-page/amis/data","h":"#url-parameters","p":566},{"i":586,"t":"Customizing API Request Body Data Format","u":"/developer/micro-page/amis/data_mapping","h":"#customizing-api-request-body-data-format","p":584},{"i":588,"t":"Complex Configuration","u":"/developer/micro-page/amis/data_mapping","h":"#complex-configuration","p":584},{"i":590,"t":"Extracting Values from Arrays","u":"/developer/micro-page/amis/data_mapping","h":"#extracting-values-from-arrays","p":584},{"i":592,"t":"Namespace","u":"/developer/micro-page/amis/data_mapping","h":"#namespace","p":584},{"i":596,"t":"The Simplest AMIS Configuration","u":"/developer/micro-page/amis/base_config","h":"#the-simplest-amis-configuration","p":594},{"i":598,"t":"The Core of Components: Type and Properties","u":"/developer/micro-page/amis/base_config","h":"#the-core-of-components-type-and-properties","p":594},{"i":600,"t":"Component Tree: The Foundation for Building Complex Interfaces","u":"/developer/micro-page/amis/base_config","h":"#component-tree-the-foundation-for-building-complex-interfaces","p":594},{"i":602,"t":"Tree Layout: The Key to Implementing Complex Pages","u":"/developer/micro-page/amis/base_config","h":"#tree-layout-the-key-to-implementing-complex-pages","p":594},{"i":606,"t":"Basic Usage","u":"/developer/micro-page/amis/event","h":"#basic-usage","p":604},{"i":608,"t":"Context","u":"/developer/micro-page/amis/event","h":"#context","p":604},{"i":610,"t":"Runtime Log","u":"/developer/micro-page/amis/event","h":"#runtime-log","p":604},{"i":612,"t":"Classification of Events and Actions","u":"/developer/micro-page/amis/event","h":"#classification-of-events-and-actions","p":604},{"i":614,"t":"Triggering General Actions","u":"/developer/micro-page/amis/event","h":"#triggering-general-actions","p":604},{"i":616,"t":"Triggering Component's Actions","u":"/developer/micro-page/amis/event","h":"#triggering-components-actions","p":604},{"i":618,"t":"Triggering Broadcast Actions","u":"/developer/micro-page/amis/event","h":"#triggering-broadcast-actions","p":604},{"i":620,"t":"Orchestration of Actions","u":"/developer/micro-page/amis/event","h":"#orchestration-of-actions","p":604},{"i":622,"t":"More Events","u":"/developer/micro-page/amis/event","h":"#more-events","p":604},{"i":624,"t":"More Actions","u":"/developer/micro-page/amis/event","h":"#more-actions","p":604},{"i":628,"t":"Integrating a Node-RED project","u":"/developer/integration/node-red","h":"#integrating-a-node-red-project","p":626},{"i":629,"t":"Developing an application","u":"/developer/integration/node-red","h":"#developing-an-application","p":626},{"i":631,"t":"Executing","u":"/developer/integration/node-red","h":"#executing","p":626},{"i":633,"t":"Static Resource Storage","u":"/developer/integration/node-red","h":"#static-resource-storage","p":626},{"i":635,"t":"Initialization Configuration","u":"/developer/integration/node-red","h":"#initialization-configuration","p":626},{"i":637,"t":"Flow Designer","u":"/developer/integration/node-red","h":"#flow-designer","p":626},{"i":639,"t":"Steedos Node","u":"/developer/integration/node-red","h":"#steedos-node","p":626},{"i":641,"t":"steedos-event","u":"/developer/integration/node-red","h":"#steedos-event","p":626},{"i":643,"t":"steedos-emit","u":"/developer/integration/node-red","h":"#steedos-emit","p":626},{"i":645,"t":"steedos-call","u":"/developer/integration/node-red","h":"#steedos-call","p":626},{"i":647,"t":"steedos-request","u":"/developer/integration/node-red","h":"#steedos-request","p":626},{"i":649,"t":"steedos-response","u":"/developer/integration/node-red","h":"#steedos-response","p":626},{"i":651,"t":"steedos-api-gw","u":"/developer/integration/node-red","h":"#steedos-api-gw","p":626},{"i":653,"t":"steedos-instance","u":"/developer/integration/node-red","h":"#steedos-instance","p":626},{"i":655,"t":"To invoke GraphQL","u":"/developer/integration/node-red","h":"#to-invoke-graphql","p":626},{"i":657,"t":"To invoke ObjectQL","u":"/developer/integration/node-red","h":"#to-invoke-objectql","p":626},{"i":659,"t":"Invoke using msg.call","u":"/developer/integration/node-red","h":"#invoke-using-msgcall","p":626},{"i":661,"t":"Invoke using a broker","u":"/developer/integration/node-red","h":"#invoke-using-a-broker","p":626},{"i":663,"t":"Trigger","u":"/developer/integration/node-red","h":"#trigger","p":626},{"i":667,"t":"Basic Linkage","u":"/developer/micro-page/amis/linkage","h":"#basic-linkage","p":665},{"i":669,"t":"Interface Linkage","u":"/developer/micro-page/amis/linkage","h":"#interface-linkage","p":665},{"i":673,"t":"1. Specifying TailwindCSS Class Names","u":"/developer/micro-page/amis/styles","h":"#1-specifying-tailwindcss-class-names","p":671},{"i":675,"t":"2. Defining Styles with the Page Component's CSS","u":"/developer/micro-page/amis/styles","h":"#2-defining-styles-with-the-page-components-css","p":671},{"i":679,"t":"๐๏ธ Overview","u":"/developer/micro-page/","h":"","p":677},{"i":681,"t":"๐๏ธ Quick Start","u":"/developer/micro-page/","h":"","p":677},{"i":683,"t":"๐๏ธ AMIS Low-Code Framework","u":"/developer/micro-page/","h":"","p":677},{"i":685,"t":"๐๏ธ Custom Components","u":"/developer/micro-page/","h":"","p":677},{"i":687,"t":"๐๏ธ Components Reference","u":"/developer/micro-page/","h":"","p":677},{"i":691,"t":"Expression Syntax","u":"/developer/micro-page/amis/expression","h":"#expression-syntax","p":689},{"i":693,"t":"Variables and Property Access","u":"/developer/micro-page/amis/expression","h":"#variables-and-property-access","p":689},{"i":695,"t":"Basic Data Types","u":"/developer/micro-page/amis/expression","h":"#basic-data-types","p":689},{"i":697,"t":"Expression Operations","u":"/developer/micro-page/amis/expression","h":"#expression-operations","p":689},{"i":699,"t":"Functions and Arrow Functions","u":"/developer/micro-page/amis/expression","h":"#functions-and-arrow-functions","p":689},{"i":701,"t":"Parentheses and Operator Precedence","u":"/developer/micro-page/amis/expression","h":"#parentheses-and-operator-precedence","p":689},{"i":703,"t":"Special Variable Names","u":"/developer/micro-page/amis/expression","h":"#special-variable-names","p":689},{"i":705,"t":"Example: Text Processing","u":"/developer/micro-page/amis/expression","h":"#example-text-processing","p":689},{"i":708,"t":"Amis native components","u":"/developer/micro-page/components/","h":"#amis-native-components","p":707},{"i":710,"t":"steedos components","u":"/developer/micro-page/components/","h":"#steedos-components","p":707},{"i":712,"t":"Custom components","u":"/developer/micro-page/components/","h":"#custom-components","p":707},{"i":716,"t":"Basic Usage","u":"/developer/micro-page/components/object_form","h":"#basic-usage","p":714},{"i":720,"t":"Basic Usage","u":"/developer/micro-page/components/object_listview","h":"#basic-usage","p":718},{"i":724,"t":"Basic Usage","u":"/developer/micro-page/components/object_table","h":"#basic-usage","p":722},{"i":728,"t":"Basic Usage","u":"/developer/micro-page/components/record_detail_related_list","h":"#basic-usage","p":726},{"i":731,"t":"Introduction","u":"/developer/micro-page/custom_components","h":"#introduction","p":730},{"i":733,"t":"Configuring Custom Asset Packages","u":"/developer/micro-page/custom_components","h":"#configuring-custom-asset-packages","p":730},{"i":737,"t":"Template Strings: A Combination of Simplicity and Power","u":"/developer/micro-page/amis/tpl","h":"#template-strings-a-combination-of-simplicity-and-power","p":735},{"i":739,"t":"Template Strings","u":"/developer/micro-page/amis/tpl","h":"#template-strings","p":735},{"i":741,"t":"Rendering HTML with Template Strings","u":"/developer/micro-page/amis/tpl","h":"#rendering-html-with-template-strings","p":735},{"i":743,"t":"Expressions","u":"/developer/micro-page/amis/tpl","h":"#expressions","p":735},{"i":745,"t":"JavaScript Template Engine","u":"/developer/micro-page/amis/tpl","h":"#javascript-template-engine","p":735},{"i":747,"t":"Filters","u":"/developer/micro-page/amis/tpl","h":"#filters","p":735},{"i":749,"t":"Filter Parameters","u":"/developer/micro-page/amis/tpl","h":"#filter-parameters","p":735},{"i":751,"t":"Filter List Documentation","u":"/developer/micro-page/amis/tpl","h":"#filter-list-documentation","p":735},{"i":755,"t":"Create a Micro Page","u":"/developer/micro-page/getting_start","h":"#create-a-micro-page","p":753},{"i":757,"t":"Designing the Micro Page","u":"/developer/micro-page/getting_start","h":"#designing-the-micro-page","p":753},{"i":759,"t":"Enable Debugging","u":"/developer/micro-page/getting_start","h":"#enable-debugging","p":753},{"i":761,"t":"Display in the Application","u":"/developer/micro-page/getting_start","h":"#display-in-the-application","p":753},{"i":763,"t":"Creating Tabs","u":"/developer/micro-page/getting_start","h":"#creating-tabs","p":753},{"i":765,"t":"Configuring Permissions","u":"/developer/micro-page/getting_start","h":"#configuring-permissions","p":753},{"i":769,"t":"Basic Usage","u":"/developer/micro-page/components/record_detail_header","h":"#basic-usage","p":767},{"i":773,"t":"Supported Custom Micro Page Types","u":"/developer/micro-page/overview","h":"#supported-custom-micro-page-types","p":771},{"i":775,"t":"Application Pages","u":"/developer/micro-page/overview","h":"#application-pages","p":771},{"i":777,"t":"Record Pages","u":"/developer/micro-page/overview","h":"#record-pages","p":771},{"i":779,"t":"List Pages","u":"/developer/micro-page/overview","h":"#list-pages","p":771},{"i":781,"t":"Form Pages","u":"/developer/micro-page/overview","h":"#form-pages","p":771},{"i":784,"t":"Introduction","u":"/developer/package/metadata/","h":"#introduction","p":783},{"i":786,"t":"Understanding Metadata in Steedos","u":"/developer/package/metadata/","h":"#understanding-metadata-in-steedos","p":783},{"i":788,"t":"Why is Metadata Important?","u":"/developer/package/metadata/","h":"#why-is-metadata-important","p":783},{"i":790,"t":"Working with Metadata in Steedos DX","u":"/developer/package/metadata/","h":"#working-with-metadata-in-steedos-dx","p":783},{"i":791,"t":"Metadata Structure","u":"/developer/package/metadata/","h":"#metadata-structure","p":783},{"i":793,"t":"Best Practices for Handling Metadata","u":"/developer/package/metadata/","h":"#best-practices-for-handling-metadata","p":783},{"i":795,"t":"Deploying Metadata","u":"/developer/package/metadata/","h":"#deploying-metadata","p":783},{"i":799,"t":"๐๏ธ Overview","u":"/developer/package/","h":"","p":797},{"i":801,"t":"๐๏ธ Metadata","u":"/developer/package/","h":"","p":797},{"i":803,"t":"๐๏ธ Synchronize Metadata","u":"/developer/package/","h":"","p":797},{"i":805,"t":"๐๏ธ Package Installation","u":"/developer/package/","h":"","p":797},{"i":807,"t":"๐๏ธ Package Publishing","u":"/developer/package/","h":"","p":797},{"i":810,"t":"Object .object.yml","u":"/developer/package/metadata/metadata-object","h":"#object-objectyml","p":809},{"i":812,"t":"Field .field.yml","u":"/developer/package/metadata/metadata-object","h":"#field-fieldyml","p":809},{"i":814,"t":"Common Attributes","u":"/developer/package/metadata/metadata-object","h":"#common-attributes","p":809},{"i":816,"t":"External Data Source Related","u":"/developer/package/metadata/metadata-object","h":"#external-data-source-related","p":809},{"i":818,"t":"Field Type Related","u":"/developer/package/metadata/metadata-object","h":"#field-type-related","p":809},{"i":821,"t":"Overview","u":"/developer/package/metadata/metadata-automation","h":"#overview","p":820},{"i":823,"t":"Object Validation Rules object_validation_rules","u":"/developer/package/metadata/metadata-automation","h":"#object-validation-rules-object_validation_rules","p":820},{"i":825,"t":"Workflow Rules workflow_rule","u":"/developer/package/metadata/metadata-automation","h":"#workflow-rules-workflow_rule","p":820},{"i":827,"t":"Field Updates action_field_updates","u":"/developer/package/metadata/metadata-automation","h":"#field-updates-action_field_updates","p":820},{"i":829,"t":"Workflow Notifications workflow_notifications","u":"/developer/package/metadata/metadata-automation","h":"#workflow-notifications-workflow_notifications","p":820},{"i":831,"t":"Approval Processes process_definition","u":"/developer/package/metadata/metadata-automation","h":"#approval-processes-process_definition","p":820},{"i":835,"t":"Package Structure","u":"/developer/package/overview","h":"#package-structure","p":833},{"i":837,"t":"Deploy Packages","u":"/developer/package/overview","h":"#deploy-packages","p":833},{"i":839,"t":"Package Version","u":"/developer/package/overview","h":"#package-version","p":833},{"i":841,"t":"Package Types: Managed vs. Unlocked","u":"/developer/package/overview","h":"#package-types-managed-vs-unlocked","p":833},{"i":843,"t":"Managed Packages","u":"/developer/package/overview","h":"#managed-packages","p":833},{"i":845,"t":"Unlocked Packages","u":"/developer/package/overview","h":"#unlocked-packages","p":833},{"i":847,"t":"Comparing Managed and Unlocked Packages","u":"/developer/package/overview","h":"#comparing-managed-and-unlocked-packages","p":833},{"i":851,"t":"Installation Steps","u":"/developer/package/package-install","h":"#installation-steps","p":849},{"i":852,"t":"Step 1: Obtain the Package Name and Version","u":"/developer/package/package-install","h":"#step-1-obtain-the-package-name-and-version","p":849},{"i":854,"t":"Step 2: Log in to the Steedos Platform","u":"/developer/package/package-install","h":"#step-2-log-in-to-the-steedos-platform","p":849},{"i":856,"t":"Step 3: Package Installation","u":"/developer/package/package-install","h":"#step-3-package-installation","p":849},{"i":858,"t":"Step 7: Enable the Package","u":"/developer/package/package-install","h":"#step-7-enable-the-package","p":849},{"i":860,"t":"Step 8: Verify the Installation","u":"/developer/package/package-install","h":"#step-8-verify-the-installation","p":849},{"i":862,"t":"Step 9: Notify Team Members","u":"/developer/package/package-install","h":"#step-9-notify-team-members","p":849},{"i":864,"t":"Step 10: Get Support (if needed)","u":"/developer/package/package-install","h":"#step-10-get-support-if-needed","p":849},{"i":866,"t":"Private Packages","u":"/developer/package/package-install","h":"#private-packages","p":849},{"i":868,"t":"Configuring npm Private Packages","u":"/developer/package/package-install","h":"#configuring-npm-private-packages","p":849},{"i":870,"t":"Configuration for Installation from Github Repositories","u":"/developer/package/package-install","h":"#configuration-for-installation-from-github-repositories","p":849},{"i":873,"t":"Overview","u":"/developer/package/package-publish","h":"#overview","p":872},{"i":875,"t":"Basic Concepts","u":"/developer/package/package-publish","h":"#basic-concepts","p":872},{"i":876,"t":"1. Steedos Package","u":"/developer/package/package-publish","h":"#1-steedos-package","p":872},{"i":878,"t":"2. npm","u":"/developer/package/package-publish","h":"#2-npm","p":872},{"i":880,"t":"Preparations","u":"/developer/package/package-publish","h":"#preparations","p":872},{"i":882,"t":"Publishing Process","u":"/developer/package/package-publish","h":"#publishing-process","p":872},{"i":884,"t":"1. Configure the package.json file","u":"/developer/package/package-publish","h":"#1-configure-the-packagejson-file","p":872},{"i":886,"t":"2. Log in to your npm account","u":"/developer/package/package-publish","h":"#2-log-in-to-your-npm-account","p":872},{"i":888,"t":"3. Publish your package","u":"/developer/package/package-publish","h":"#3-publish-your-package","p":872},{"i":890,"t":"4. Version Management","u":"/developer/package/package-publish","h":"#4-version-management","p":872},{"i":892,"t":"Publishing a Private Package","u":"/developer/package/package-publish","h":"#publishing-a-private-package","p":872},{"i":894,"t":"Setting a Private Package","u":"/developer/package/package-publish","h":"#setting-a-private-package","p":872},{"i":896,"t":"Publishing to npm's Private Repository","u":"/developer/package/package-publish","h":"#publishing-to-npms-private-repository","p":872},{"i":898,"t":"Permission Management","u":"/developer/package/package-publish","h":"#permission-management","p":872},{"i":902,"t":"Profile .profile.yml","u":"/developer/package/metadata/metadata-permissions","h":"#profile-profileyml","p":900},{"i":904,"t":"Permission Set .permissionset.yml","u":"/developer/package/metadata/metadata-permissions","h":"#permission-set-permissionsetyml","p":900},{"i":906,"t":"Object Permissions .permission.yml","u":"/developer/package/metadata/metadata-permissions","h":"#object-permissions-permissionyml","p":900},{"i":908,"t":"Field Permissions .permission.yml","u":"/developer/package/metadata/metadata-permissions","h":"#field-permissions-permissionyml","p":900},{"i":910,"t":"Restriction Rules .restrictionRule.yml","u":"/developer/package/metadata/metadata-permissions","h":"#restriction-rules-restrictionruleyml","p":900},{"i":912,"t":"Sharing Rules .shareRule.yml","u":"/developer/package/metadata/metadata-permissions","h":"#sharing-rules-shareruleyml","p":900},{"i":916,"t":"Prepare Metadata Synchronize","u":"/developer/package/sync-metadata","h":"#prepare-metadata-synchronize","p":914},{"i":918,"t":"Installing the Steedos Command","u":"/developer/package/sync-metadata","h":"#installing-the-steedos-command","p":914},{"i":920,"t":"Installing VS Code and Plugins","u":"/developer/package/sync-metadata","h":"#installing-vs-code-and-plugins","p":914},{"i":922,"t":"Setup Metadata Server","u":"/developer/package/sync-metadata","h":"#setup-metadata-server","p":914},{"i":924,"t":"Browse and Rectrive Metadata","u":"/developer/package/sync-metadata","h":"#browse-and-rectrive-metadata","p":914},{"i":926,"t":"Deploy Metadata","u":"/developer/package/sync-metadata","h":"#deploy-metadata","p":914},{"i":928,"t":"Synchronize specific files or folders","u":"/developer/package/sync-metadata","h":"#synchronize-specific-files-or-folders","p":914},{"i":930,"t":"Set the default synchronization path","u":"/developer/package/sync-metadata","h":"#set-the-default-synchronization-path","p":914},{"i":935,"t":"Overview","u":"/developer/package/metadata/metadata-ui","h":"#overview","p":934},{"i":937,"t":"Applications","u":"/developer/package/metadata/metadata-ui","h":"#applications","p":934},{"i":939,"t":"Tabs","u":"/developer/package/metadata/metadata-ui","h":"#tabs","p":934},{"i":941,"t":"List Views","u":"/developer/package/metadata/metadata-ui","h":"#list-views","p":934},{"i":943,"t":"Page Layouts","u":"/developer/package/metadata/metadata-ui","h":"#page-layouts","p":934},{"i":945,"t":"Custom Buttons","u":"/developer/package/metadata/metadata-ui","h":"#custom-buttons","p":934},{"i":949,"t":"Trigger Definition","u":"/developer/plugins/trigger","h":"#trigger-definition","p":947},{"i":951,"t":"listenTo","u":"/developer/plugins/trigger","h":"#listento","p":947},{"i":953,"t":"Before Event Triggers","u":"/developer/plugins/trigger","h":"#before-event-triggers","p":947},{"i":955,"t":"After Event Triggers","u":"/developer/plugins/trigger","h":"#after-event-triggers","p":947},{"i":957,"t":"Parameter Explanation","u":"/developer/plugins/trigger","h":"#parameter-explanation","p":947},{"i":959,"t":"Return Value of Trigger Functions","u":"/developer/plugins/trigger","h":"#return-value-of-trigger-functions","p":947},{"i":961,"t":"Trigger Example","u":"/developer/plugins/trigger","h":"#trigger-example","p":947},{"i":963,"t":"Notes","u":"/developer/plugins/trigger","h":"#notes","p":947},{"i":967,"t":"API Definition","u":"/developer/service/action-api","h":"#api-definition","p":965},{"i":973,"t":"๐๏ธ Overview","u":"/developer/service/","h":"","p":971},{"i":975,"t":"๐๏ธ Package Service","u":"/developer/service/","h":"","p":971},{"i":977,"t":"๐๏ธ REST API","u":"/developer/service/","h":"","p":971},{"i":979,"t":"๐๏ธ Triggers","u":"/developer/service/","h":"","p":971},{"i":981,"t":"๐๏ธ ObjectQL","u":"/developer/service/","h":"","p":971},{"i":983,"t":"๐๏ธ Internationalization","u":"/developer/service/","h":"","p":971},{"i":985,"t":"๐๏ธ Moleculer Microservices Framework","u":"/developer/service/","h":"","p":971},{"i":987,"t":"๐๏ธ Platform Service Reference","u":"/developer/service/","h":"","p":971},{"i":991,"t":"Defining Triggers","u":"/developer/service/action-trigger","h":"#defining-triggers","p":989},{"i":993,"t":"Trigger Parameter","u":"/developer/service/action-trigger","h":"#trigger-parameter","p":989},{"i":995,"t":"Listening Objects","u":"/developer/service/action-trigger","h":"#listening-objects","p":989},{"i":997,"t":"Trigger Before Event","u":"/developer/service/action-trigger","h":"#trigger-before-event","p":989},{"i":999,"t":"Trigger After Event","u":"/developer/service/action-trigger","h":"#trigger-after-event","p":989},{"i":1001,"t":"Trigger Execution","u":"/developer/service/action-trigger","h":"#trigger-execution","p":989},{"i":1005,"t":"Basic Architecture","u":"/developer/service/moleculer/","h":"#basic-architecture","p":1003},{"i":1007,"t":"Service Lifecycle","u":"/developer/service/moleculer/","h":"#service-lifecycle","p":1003},{"i":1009,"t":"Nodes and Service Discovery","u":"/developer/service/moleculer/","h":"#nodes-and-service-discovery","p":1003},{"i":1013,"t":"Call services","u":"/developer/service/moleculer/actions","h":"#call-services","p":1011},{"i":1015,"t":"Syntax","u":"/developer/service/moleculer/actions","h":"#syntax","p":1011},{"i":1017,"t":"Usages","u":"/developer/service/moleculer/actions","h":"#usages","p":1011},{"i":1019,"t":"Metadata","u":"/developer/service/moleculer/actions","h":"#metadata","p":1011},{"i":1021,"t":"Streaming","u":"/developer/service/moleculer/actions","h":"#streaming","p":1011},{"i":1023,"t":"Examples","u":"/developer/service/moleculer/actions","h":"#examples","p":1011},{"i":1027,"t":"Balanced events","u":"/developer/service/moleculer/events","h":"#balanced-events","p":1025},{"i":1029,"t":"Emit balanced events","u":"/developer/service/moleculer/events","h":"#emit-balanced-events","p":1025},{"i":1031,"t":"Broadcast event","u":"/developer/service/moleculer/events","h":"#broadcast-event","p":1025},{"i":1033,"t":"Subscribe to events","u":"/developer/service/moleculer/events","h":"#subscribe-to-events","p":1025},{"i":1035,"t":"Event parameter validation","u":"/developer/service/moleculer/events","h":"#event-parameter-validation","p":1025},{"i":1037,"t":"Steedos events","u":"/developer/service/moleculer/events","h":"#steedos-events","p":1025},{"i":1038,"t":"Record CRUD events","u":"/developer/service/moleculer/events","h":"#record-crud-events","p":1025},{"i":1040,"t":"System events","u":"/developer/service/moleculer/events","h":"#system-events","p":1025},{"i":1042,"t":"$services.changed","u":"/developer/service/moleculer/events","h":"#serviceschanged","p":1025},{"i":1046,"t":"Adding Data","u":"/developer/plugins/objectql","h":"#adding-data","p":1044},{"i":1048,"t":"insert","u":"/developer/plugins/objectql","h":"#insert","p":1044},{"i":1050,"t":"directInsert","u":"/developer/plugins/objectql","h":"#directinsert","p":1044},{"i":1052,"t":"Modifying Data","u":"/developer/plugins/objectql","h":"#modifying-data","p":1044},{"i":1054,"t":"update","u":"/developer/plugins/objectql","h":"#update","p":1044},{"i":1056,"t":"directUpdate","u":"/developer/plugins/objectql","h":"#directupdate","p":1044},{"i":1058,"t":"Deleting Data","u":"/developer/plugins/objectql","h":"#deleting-data","p":1044},{"i":1060,"t":"delete","u":"/developer/plugins/objectql","h":"#delete","p":1044},{"i":1062,"t":"directDelete","u":"/developer/plugins/objectql","h":"#directdelete","p":1044},{"i":1064,"t":"Finding Data","u":"/developer/plugins/objectql","h":"#finding-data","p":1044},{"i":1066,"t":"find","u":"/developer/plugins/objectql","h":"#find","p":1044},{"i":1068,"t":"find","u":"/developer/plugins/objectql","h":"#find-1","p":1044},{"i":1070,"t":"findOne","u":"/developer/plugins/objectql","h":"#findone","p":1044},{"i":1072,"t":"directFind","u":"/developer/plugins/objectql","h":"#directfind","p":1044},{"i":1074,"t":"aggregate","u":"/developer/plugins/objectql","h":"#aggregate","p":1044},{"i":1076,"t":"directAggregate","u":"/developer/plugins/objectql","h":"#directaggregate","p":1044},{"i":1078,"t":"toConfig","u":"/developer/plugins/objectql","h":"#toconfig","p":1044},{"i":1080,"t":"Query Filters","u":"/developer/plugins/objectql","h":"#query-filters","p":1044},{"i":1082,"t":"About the userSession Parameter","u":"/developer/plugins/objectql","h":"#about-the-usersession-parameter","p":1044},{"i":1084,"t":"About Functions with the direct Prefix","u":"/developer/plugins/objectql","h":"#about-functions-with-the-direct-prefix","p":1044},{"i":1086,"t":"Examples","u":"/developer/plugins/objectql","h":"#examples","p":1044},{"i":1088,"t":"Example of Using ObjectQL in Triggers","u":"/developer/plugins/objectql","h":"#example-of-using-objectql-in-triggers","p":1044},{"i":1090,"t":"Example of Using ObjectQL in a Router","u":"/developer/plugins/objectql","h":"#example-of-using-objectql-in-a-router","p":1044},{"i":1094,"t":"Packages as Microservices","u":"/developer/service/overview","h":"#packages-as-microservices","p":1092},{"i":1098,"t":"package.service.js","u":"/developer/service/package-service","h":"#packageservicejs","p":1096},{"i":1100,"t":"namespace","u":"/developer/service/package-service","h":"#namespace","p":1096},{"i":1102,"t":"mixins","u":"/developer/service/package-service","h":"#mixins","p":1096},{"i":1104,"t":"dependencies","u":"/developer/service/package-service","h":"#dependencies","p":1096},{"i":1106,"t":"Actions","u":"/developer/service/package-service","h":"#actions","p":1096},{"i":1108,"t":"Call services","u":"/developer/service/package-service","h":"#call-services","p":1096},{"i":1110,"t":"Syntax","u":"/developer/service/package-service","h":"#syntax","p":1096},{"i":1112,"t":"REST API","u":"/developer/service/package-service","h":"#rest-api","p":1096},{"i":1114,"t":"Triggers","u":"/developer/service/package-service","h":"#triggers","p":1096},{"i":1116,"t":"Events","u":"/developer/service/package-service","h":"#events","p":1096},{"i":1118,"t":"Subscribe to events","u":"/developer/service/package-service","h":"#subscribe-to-events","p":1096},{"i":1122,"t":"Resource Files","u":"/developer/service/locale","h":"#resource-files","p":1120},{"i":1124,"t":"Objects","u":"/developer/service/locale","h":"#objects","p":1120},{"i":1126,"t":"Setting Application Menu","u":"/developer/service/locale","h":"#setting-application-menu","p":1120},{"i":1128,"t":"Other","u":"/developer/service/locale","h":"#other","p":1120},{"i":1130,"t":"Metadata","u":"/developer/service/locale","h":"#metadata","p":1120},{"i":1132,"t":"Object","u":"/developer/service/locale","h":"#object","p":1120},{"i":1134,"t":"Field","u":"/developer/service/locale","h":"#field","p":1120},{"i":1136,"t":"Listview","u":"/developer/service/locale","h":"#listview","p":1120},{"i":1138,"t":"Button","u":"/developer/service/locale","h":"#button","p":1120},{"i":1140,"t":"Custom variables","u":"/developer/service/locale","h":"#custom-variables","p":1120},{"i":1142,"t":"Application","u":"/developer/service/locale","h":"#application","p":1120},{"i":1144,"t":"Setting up Application Menu","u":"/developer/service/locale","h":"#setting-up-application-menu","p":1120},{"i":1146,"t":"System Message","u":"/developer/service/locale","h":"#system-message","p":1120},{"i":1148,"t":"Command Line Interface","u":"/developer/service/locale","h":"#command-line-interface","p":1120},{"i":1150,"t":"Supported Languages","u":"/developer/service/locale","h":"#supported-languages","p":1120},{"i":1152,"t":"Example","u":"/developer/service/locale","h":"#example","p":1120},{"i":1154,"t":"Project Internationalization","u":"/developer/service/locale","h":"#project-internationalization","p":1120},{"i":1156,"t":"Platform Internationalization","u":"/developer/service/locale","h":"#platform-internationalization","p":1120},{"i":1163,"t":"Calling GraphQL API","u":"/developer/service/service-api/service-push","h":"#calling-graphql-api","p":1161},{"i":1167,"t":"Object Instance","u":"/developer/service/objectql","h":"#object-instance","p":1165},{"i":1169,"t":"Core Methods","u":"/developer/service/objectql","h":"#core-methods","p":1165},{"i":1171,"t":".find","u":"/developer/service/objectql","h":"#find","p":1165},{"i":1173,"t":".findOne","u":"/developer/service/objectql","h":"#findone","p":1165},{"i":1175,"t":".insert","u":"/developer/service/objectql","h":"#insert","p":1165},{"i":1177,"t":".update","u":"/developer/service/objectql","h":"#update","p":1165},{"i":1179,"t":".delete","u":"/developer/service/objectql","h":"#delete","p":1165},{"i":1181,"t":".aggregate","u":"/developer/service/objectql","h":"#aggregate","p":1165},{"i":1183,"t":"With Permission","u":"/developer/service/objectql","h":"#with-permission","p":1165},{"i":1185,"t":"With Triggers","u":"/developer/service/objectql","h":"#with-triggers","p":1165},{"i":1187,"t":"Ignore Triggers","u":"/developer/service/objectql","h":"#ignore-triggers","p":1165},{"i":1189,"t":"Query Filter Syntax","u":"/developer/service/objectql","h":"#query-filter-syntax","p":1165},{"i":1191,"t":"Operations","u":"/developer/service/objectql","h":"#operations","p":1165},{"i":1193,"t":"Combined Filters","u":"/developer/service/objectql","h":"#combined-filters","p":1165},{"i":1195,"t":"Query Array Value","u":"/developer/service/objectql","h":"#query-array-value","p":1165},{"i":1197,"t":"Query Datetime Value","u":"/developer/service/objectql","h":"#query-datetime-value","p":1165},{"i":1201,"t":"Usage","u":"/developer/service/moleculer/repl","h":"#usage","p":1199},{"i":1203,"t":"REPL Commands","u":"/developer/service/moleculer/repl","h":"#repl-commands","p":1199},{"i":1205,"t":"List nodes","u":"/developer/service/moleculer/repl","h":"#list-nodes","p":1199},{"i":1207,"t":"List services","u":"/developer/service/moleculer/repl","h":"#list-services","p":1199},{"i":1209,"t":"List actions","u":"/developer/service/moleculer/repl","h":"#list-actions","p":1199},{"i":1211,"t":"List events","u":"/developer/service/moleculer/repl","h":"#list-events","p":1199},{"i":1213,"t":"Show common information","u":"/developer/service/moleculer/repl","h":"#show-common-information","p":1199},{"i":1215,"t":"List environment variables","u":"/developer/service/moleculer/repl","h":"#list-environment-variables","p":1199},{"i":1217,"t":"Call an action","u":"/developer/service/moleculer/repl","h":"#call-an-action","p":1199},{"i":1219,"t":"Direct call","u":"/developer/service/moleculer/repl","h":"#direct-call","p":1199},{"i":1221,"t":"Emit an event","u":"/developer/service/moleculer/repl","h":"#emit-an-event","p":1199},{"i":1223,"t":"Benchmark services","u":"/developer/service/moleculer/repl","h":"#benchmark-services","p":1199},{"i":1225,"t":"Load a service from file","u":"/developer/service/moleculer/repl","h":"#load-a-service-from-file","p":1199},{"i":1227,"t":"Load all services from a folder","u":"/developer/service/moleculer/repl","h":"#load-all-services-from-a-folder","p":1199},{"i":1229,"t":"List metrics","u":"/developer/service/moleculer/repl","h":"#list-metrics","p":1199},{"i":1231,"t":"Cache Keys","u":"/developer/service/moleculer/repl","h":"#cache-keys","p":1199},{"i":1233,"t":"Cache Clear","u":"/developer/service/moleculer/repl","h":"#cache-clear","p":1199},{"i":1235,"t":"Event listener","u":"/developer/service/moleculer/repl","h":"#event-listener","p":1199},{"i":1237,"t":"Custom commands","u":"/developer/service/moleculer/repl","h":"#custom-commands","p":1199},{"i":1241,"t":"๐๏ธ Overview","u":"/developer/setup/","h":"","p":1239},{"i":1243,"t":"๐๏ธ Environment Setup","u":"/developer/setup/","h":"","p":1239},{"i":1245,"t":"๐๏ธ Sample Project on GitHub","u":"/developer/setup/","h":"","p":1239},{"i":1247,"t":"๐๏ธ Create a New Project","u":"/developer/setup/","h":"","p":1239},{"i":1249,"t":"๐๏ธ Install Steedos Cli","u":"/developer/setup/","h":"","p":1239},{"i":1251,"t":"๐๏ธ Run Project","u":"/developer/setup/","h":"","p":1239},{"i":1255,"t":"Creating an empty project","u":"/developer/setup/create-steedos-app","h":"#creating-an-empty-project","p":1253},{"i":1257,"t":"Importing template projects","u":"/developer/setup/create-steedos-app","h":"#importing-template-projects","p":1253},{"i":1261,"t":"Project Structure","u":"/developer/setup/overview","h":"#project-structure","p":1259},{"i":1263,"t":"steedos-packages","u":"/developer/setup/overview","h":"#steedos-packages","p":1259},{"i":1265,"t":"steedos-platform","u":"/developer/setup/overview","h":"#steedos-platform","p":1259},{"i":1267,"t":"package.json","u":"/developer/setup/overview","h":"#packagejson","p":1259},{"i":1269,"t":"Steedos DX Development Process","u":"/developer/setup/overview","h":"#steedos-dx-development-process","p":1259},{"i":1272,"t":"Applying for SMS Service","u":"/developer/service/service-api/service-sms","h":"#applying-for-sms-service","p":1271},{"i":1274,"t":"SMS Sending Configuration","u":"/developer/service/service-api/service-sms","h":"#sms-sending-configuration","p":1271},{"i":1278,"t":"Clone Repository","u":"/developer/setup/sample-repository","h":"#clone-repository","p":1276},{"i":1280,"t":"Run with Gitpod","u":"/developer/setup/sample-repository","h":"#run-with-gitpod","p":1276},{"i":1283,"t":"Introduction","u":"/developer/setup/steedos-cli","h":"#introduction","p":1282},{"i":1285,"t":"Prerequisites","u":"/developer/setup/steedos-cli","h":"#prerequisites","p":1282},{"i":1287,"t":"Installation","u":"/developer/setup/steedos-cli","h":"#installation","p":1282},{"i":1289,"t":"Basic Commands","u":"/developer/setup/steedos-cli","h":"#basic-commands","p":1282},{"i":1291,"t":"Show Help","u":"/developer/setup/steedos-cli","h":"#show-help","p":1282},{"i":1293,"t":"Clone Sample Repository","u":"/developer/setup/steedos-cli","h":"#clone-sample-repository","p":1282},{"i":1295,"t":"Navigating to the Project","u":"/developer/setup/steedos-cli","h":"#navigating-to-the-project","p":1282},{"i":1297,"t":"Set Default Package Path","u":"/developer/setup/steedos-cli","h":"#set-default-package-path","p":1282},{"i":1299,"t":"Source Config","u":"/developer/setup/steedos-cli","h":"#source-config","p":1282},{"i":1301,"t":"Source Deploy","u":"/developer/setup/steedos-cli","h":"#source-deploy","p":1282},{"i":1303,"t":"Source Retrieve","u":"/developer/setup/steedos-cli","h":"#source-retrieve","p":1282},{"i":1305,"t":"Troubleshooting","u":"/developer/setup/steedos-cli","h":"#troubleshooting","p":1282},{"i":1309,"t":"Rapid Development with No-Code","u":"/getting-started/","h":"#rapid-development-with-no-code","p":1307},{"i":1311,"t":"Low-Code Deep Customization","u":"/getting-started/","h":"#low-code-deep-customization","p":1307},{"i":1314,"t":"1. Install Node.js","u":"/developer/setup/setup-env","h":"#1-install-nodejs","p":1313},{"i":1316,"t":"2. Install MongoDB","u":"/developer/setup/setup-env","h":"#2-install-mongodb","p":1313},{"i":1318,"t":"3. Install Redis","u":"/developer/setup/setup-env","h":"#3-install-redis","p":1313},{"i":1320,"t":"4. Install VS Code","u":"/developer/setup/setup-env","h":"#4-install-vs-code","p":1313},{"i":1323,"t":"๐๏ธ The Basics","u":"/getting-started/tutorials/","h":"","p":1322},{"i":1327,"t":"Deploy & Run Steedos Platform","u":"/developer/setup/project-start","h":"#deploy--run-steedos-platform","p":1325},{"i":1329,"t":"Register Admin Account","u":"/developer/setup/project-start","h":"#register-admin-account","p":1325},{"i":1331,"t":"Create an API Key","u":"/developer/setup/project-start","h":"#create-an-api-key","p":1325},{"i":1333,"t":"Setup Environment Variable","u":"/developer/setup/project-start","h":"#setup-environment-variable","p":1325},{"i":1334,"t":"Setup TRANSPORTER","u":"/developer/setup/project-start","h":"#setup-transporter","p":1325},{"i":1336,"t":"Setup Metadata Server","u":"/developer/setup/project-start","h":"#setup-metadata-server","p":1325},{"i":1338,"t":"Run Steedos Packages","u":"/developer/setup/project-start","h":"#run-steedos-packages","p":1325},{"i":1339,"t":"Install Dependences","u":"/developer/setup/project-start","h":"#install-dependences","p":1325},{"i":1341,"t":"Run Packages","u":"/developer/setup/project-start","h":"#run-packages","p":1325},{"i":1345,"t":"1. Concept of Custom Applications","u":"/getting-started/tutorials/the-basics/app","h":"#1-concept-of-custom-applications","p":1343},{"i":1347,"t":"2. Planning the Project Management Application","u":"/getting-started/tutorials/the-basics/app","h":"#2-planning-the-project-management-application","p":1343},{"i":1349,"t":"3. Creating Projects and Todos Objects","u":"/getting-started/tutorials/the-basics/app","h":"#3-creating-projects-and-todos-objects","p":1343},{"i":1351,"t":"4. Establishing Relationships Between Objects","u":"/getting-started/tutorials/the-basics/app","h":"#4-establishing-relationships-between-objects","p":1343},{"i":1353,"t":"5. Adding Tabs","u":"/getting-started/tutorials/the-basics/app","h":"#5-adding-tabs","p":1343},{"i":1355,"t":"Configuring Tabs","u":"/getting-started/tutorials/the-basics/app","h":"#configuring-tabs","p":1343},{"i":1357,"t":"6. Creating the Projects Custom Application","u":"/getting-started/tutorials/the-basics/app","h":"#6-creating-the-projects-custom-application","p":1343},{"i":1359,"t":"Creating the Application","u":"/getting-started/tutorials/the-basics/app","h":"#creating-the-application","p":1343},{"i":1361,"t":"7. Setting Up Security and Permissions","u":"/getting-started/tutorials/the-basics/app","h":"#7-setting-up-security-and-permissions","p":1343},{"i":1363,"t":"Security","u":"/getting-started/tutorials/the-basics/app","h":"#security","p":1343},{"i":1365,"t":"8. Testing and Deploying the Application","u":"/getting-started/tutorials/the-basics/app","h":"#8-testing-and-deploying-the-application","p":1343},{"i":1367,"t":"Testing the Application","u":"/getting-started/tutorials/the-basics/app","h":"#testing-the-application","p":1343},{"i":1369,"t":"Conclusion","u":"/getting-started/tutorials/the-basics/app","h":"#conclusion","p":1343},{"i":1373,"t":"1. Concept of Custom Objects","u":"/getting-started/tutorials/the-basics/object","h":"#1-concept-of-custom-objects","p":1371},{"i":1375,"t":"2. Creating the Todos Custom Object","u":"/getting-started/tutorials/the-basics/object","h":"#2-creating-the-todos-custom-object","p":1371},{"i":1377,"t":"Login and Navigation","u":"/getting-started/tutorials/the-basics/object","h":"#login-and-navigation","p":1371},{"i":1379,"t":"Creating the Object","u":"/getting-started/tutorials/the-basics/object","h":"#creating-the-object","p":1371},{"i":1381,"t":"3. Adding Fields","u":"/getting-started/tutorials/the-basics/object","h":"#3-adding-fields","p":1371},{"i":1383,"t":"System Fields","u":"/getting-started/tutorials/the-basics/object","h":"#system-fields","p":1371},{"i":1385,"t":"Modifying System Fields","u":"/getting-started/tutorials/the-basics/object","h":"#modifying-system-fields","p":1371},{"i":1387,"t":"Creating Custom Fields","u":"/getting-started/tutorials/the-basics/object","h":"#creating-custom-fields","p":1371},{"i":1389,"t":"4. Previewing the Object","u":"/getting-started/tutorials/the-basics/object","h":"#4-previewing-the-object","p":1371},{"i":1391,"t":"5. Customizing the User Interface","u":"/getting-started/tutorials/the-basics/object","h":"#5-customizing-the-user-interface","p":1371},{"i":1393,"t":"Configuring List Views","u":"/getting-started/tutorials/the-basics/object","h":"#configuring-list-views","p":1371},{"i":1395,"t":"Configuring Field Layout","u":"/getting-started/tutorials/the-basics/object","h":"#configuring-field-layout","p":1371},{"i":1397,"t":"Configuring Record Pages","u":"/getting-started/tutorials/the-basics/object","h":"#configuring-record-pages","p":1371},{"i":1399,"t":"6. Security and Access Permissions","u":"/getting-started/tutorials/the-basics/object","h":"#6-security-and-access-permissions","p":1371},{"i":1401,"t":"Setting Permissions","u":"/getting-started/tutorials/the-basics/object","h":"#setting-permissions","p":1371},{"i":1403,"t":"7. Testing and Validation","u":"/getting-started/tutorials/the-basics/object","h":"#7-testing-and-validation","p":1371},{"i":1405,"t":"Conducting Tests","u":"/getting-started/tutorials/the-basics/object","h":"#conducting-tests","p":1371},{"i":1407,"t":"8. Using and Managing the Todos Object","u":"/getting-started/tutorials/the-basics/object","h":"#8-using-and-managing-the-todos-object","p":1371},{"i":1409,"t":"Daily Use","u":"/getting-started/tutorials/the-basics/object","h":"#daily-use","p":1371},{"i":1411,"t":"Conclusion","u":"/getting-started/tutorials/the-basics/object","h":"#conclusion","p":1371},{"i":1415,"t":"๐๏ธ Lesson 1: Creating Objects","u":"/getting-started/tutorials/the-basics/","h":"","p":1413},{"i":1417,"t":"๐๏ธ Lesson 2: Defining Relationships","u":"/getting-started/tutorials/the-basics/","h":"","p":1413},{"i":1419,"t":"๐๏ธ Lesson 3: Creating Application","u":"/getting-started/tutorials/the-basics/","h":"","p":1413},{"i":1421,"t":"๐๏ธ Lesson 4: Workflow Rules","u":"/getting-started/tutorials/the-basics/","h":"","p":1413},{"i":1425,"t":"1. Overview of Steedos Object Relationships","u":"/getting-started/tutorials/the-basics/relationship","h":"#1-overview-of-steedos-object-relationships","p":1423},{"i":1427,"t":"2. Creating Todos and Projects Objects","u":"/getting-started/tutorials/the-basics/relationship","h":"#2-creating-todos-and-projects-objects","p":1423},{"i":1429,"t":"3. Establishing Object Relationships","u":"/getting-started/tutorials/the-basics/relationship","h":"#3-establishing-object-relationships","p":1423},{"i":1431,"t":"Lookup Relationship","u":"/getting-started/tutorials/the-basics/relationship","h":"#lookup-relationship","p":1423},{"i":1433,"t":"Master-Detail Relationship","u":"/getting-started/tutorials/the-basics/relationship","h":"#master-detail-relationship","p":1423},{"i":1435,"t":"4. Utilizing Object Relationships","u":"/getting-started/tutorials/the-basics/relationship","h":"#4-utilizing-object-relationships","p":1423},{"i":1437,"t":"Data Integration","u":"/getting-started/tutorials/the-basics/relationship","h":"#data-integration","p":1423},{"i":1439,"t":"Automation and Workflows","u":"/getting-started/tutorials/the-basics/relationship","h":"#automation-and-workflows","p":1423},{"i":1441,"t":"Reporting and Dashboards","u":"/getting-started/tutorials/the-basics/relationship","h":"#reporting-and-dashboards","p":1423},{"i":1443,"t":"5. Testing and Adjustments","u":"/getting-started/tutorials/the-basics/relationship","h":"#5-testing-and-adjustments","p":1423},{"i":1445,"t":"Conclusion","u":"/getting-started/tutorials/the-basics/relationship","h":"#conclusion","p":1423},{"i":1449,"t":"๐๏ธ Steedos Interface","u":"/getting-started/user/","h":"","p":1447},{"i":1451,"t":"๐๏ธ Download Apps","u":"/getting-started/user/","h":"","p":1447},{"i":1459,"t":"Overview","u":"/getting-started/user/overview","h":"#overview","p":1457},{"i":1461,"t":"Basic Concepts and Terminology","u":"/getting-started/user/overview","h":"#basic-concepts-and-terminology","p":1457},{"i":1463,"t":"Getting Started","u":"/getting-started/user/overview","h":"#getting-started","p":1457},{"i":1464,"t":"Login and Navigation","u":"/getting-started/user/overview","h":"#login-and-navigation","p":1457},{"i":1466,"t":"Personalizing the User Interface","u":"/getting-started/user/overview","h":"#personalizing-the-user-interface","p":1457},{"i":1468,"t":"Managing Personal Information and Settings","u":"/getting-started/user/overview","h":"#managing-personal-information-and-settings","p":1457},{"i":1470,"t":"User Interface Tour","u":"/getting-started/user/overview","h":"#user-interface-tour","p":1457},{"i":1472,"t":"Data Management","u":"/getting-started/user/overview","h":"#data-management","p":1457},{"i":1473,"t":"Browsing and Searching Records","u":"/getting-started/user/overview","h":"#browsing-and-searching-records","p":1457},{"i":1475,"t":"Record Creation and Management","u":"/getting-started/user/overview","h":"#record-creation-and-management","p":1457},{"i":1477,"t":"Attachments","u":"/getting-started/user/overview","h":"#attachments","p":1457},{"i":1479,"t":"Field History","u":"/getting-started/user/overview","h":"#field-history","p":1457},{"i":1481,"t":"Data Import and Export","u":"/getting-started/user/overview","h":"#data-import-and-export","p":1457},{"i":1483,"t":"Calendars and Events","u":"/getting-started/user/overview","h":"#calendars-and-events","p":1457},{"i":1485,"t":"Creating and Managing Events","u":"/getting-started/user/overview","h":"#creating-and-managing-events","p":1457},{"i":1487,"t":"Calendar Sharing","u":"/getting-started/user/overview","h":"#calendar-sharing","p":1457},{"i":1489,"t":"Managing Recurring Events","u":"/getting-started/user/overview","h":"#managing-recurring-events","p":1457},{"i":1491,"t":"Best Practices for Calendar Management","u":"/getting-started/user/overview","h":"#best-practices-for-calendar-management","p":1457},{"i":1493,"t":"Task Management","u":"/getting-started/user/overview","h":"#task-management","p":1457},{"i":1495,"t":"Creating and Assigning Tasks","u":"/getting-started/user/overview","h":"#creating-and-assigning-tasks","p":1457},{"i":1497,"t":"Task Lists and Views","u":"/getting-started/user/overview","h":"#task-lists-and-views","p":1457},{"i":1499,"t":"Task Automation","u":"/getting-started/user/overview","h":"#task-automation","p":1457},{"i":1501,"t":"Best Practices for Task Management","u":"/getting-started/user/overview","h":"#best-practices-for-task-management","p":1457},{"i":1503,"t":"Managing Files and Documents","u":"/getting-started/user/overview","h":"#managing-files-and-documents","p":1457},{"i":1505,"t":"Uploading Files","u":"/getting-started/user/overview","h":"#uploading-files","p":1457},{"i":1507,"t":"Version Control","u":"/getting-started/user/overview","h":"#version-control","p":1457},{"i":1511,"t":"Objectives","u":"/getting-started/tutorials/the-basics/workflow-rules","h":"#objectives","p":1509},{"i":1513,"t":"Introduction to Workflow Rules","u":"/getting-started/tutorials/the-basics/workflow-rules","h":"#introduction-to-workflow-rules","p":1509},{"i":1515,"t":"Definition and Importance","u":"/getting-started/tutorials/the-basics/workflow-rules","h":"#definition-and-importance","p":1509},{"i":1517,"t":"Features","u":"/getting-started/tutorials/the-basics/workflow-rules","h":"#features","p":1509},{"i":1519,"t":"Comparison Between Workflow Rules and Triggers","u":"/getting-started/tutorials/the-basics/workflow-rules","h":"#comparison-between-workflow-rules-and-triggers","p":1509},{"i":1521,"t":"Application Scenarios","u":"/getting-started/tutorials/the-basics/workflow-rules","h":"#application-scenarios","p":1509},{"i":1523,"t":"Steps to Create a Workflow Rule","u":"/getting-started/tutorials/the-basics/workflow-rules","h":"#steps-to-create-a-workflow-rule","p":1509},{"i":1525,"t":"Practical Case: Task Reminder Workflow Rule","u":"/getting-started/tutorials/the-basics/workflow-rules","h":"#practical-case-task-reminder-workflow-rule","p":1509},{"i":1527,"t":"Conclusion","u":"/getting-started/tutorials/the-basics/workflow-rules","h":"#conclusion","p":1509},{"i":1529,"t":"Post-Lesson Exercise","u":"/getting-started/tutorials/the-basics/workflow-rules","h":"#post-lesson-exercise","p":1509},{"i":1533,"t":"Step 1: Plan Your Application","u":"/no-code/application/app","h":"#step-1-plan-your-application","p":1531},{"i":1535,"t":"Step 2: Access the App Manager","u":"/no-code/application/app","h":"#step-2-access-the-app-manager","p":1531},{"i":1537,"t":"Step 3: Create a New Application","u":"/no-code/application/app","h":"#step-3-create-a-new-application","p":1531},{"i":1539,"t":"Step 4: Define Application Properties","u":"/no-code/application/app","h":"#step-4-define-application-properties","p":1531},{"i":1541,"t":"Step 5: Choose Application Tabs","u":"/no-code/application/app","h":"#step-5-choose-application-tabs","p":1531},{"i":1543,"t":"Step 6: Assign User Permissions","u":"/no-code/application/app","h":"#step-6-assign-user-permissions","p":1531},{"i":1545,"t":"Step 7: Save and Test","u":"/no-code/application/app","h":"#step-7-save-and-test","p":1531},{"i":1547,"t":"Step 9: Deploy to Production Environment","u":"/no-code/application/app","h":"#step-9-deploy-to-production-environment","p":1531},{"i":1549,"t":"Step 10: Gather Feedback","u":"/no-code/application/app","h":"#step-10-gather-feedback","p":1531},{"i":1553,"t":"Types of Applications","u":"/no-code/application/overview","h":"#types-of-applications","p":1551},{"i":1555,"t":"How to Access Applications?","u":"/no-code/application/overview","h":"#how-to-access-applications","p":1551},{"i":1557,"t":"Application Design Process","u":"/no-code/application/overview","h":"#application-design-process","p":1551},{"i":1561,"t":"Creating a New Micro Page","u":"/no-code/application/pages","h":"#creating-a-new-micro-page","p":1559},{"i":1563,"t":"Designing the Page","u":"/no-code/application/pages","h":"#designing-the-page","p":1559},{"i":1565,"t":"Advanced Features of the Page Designer","u":"/no-code/application/pages","h":"#advanced-features-of-the-page-designer","p":1559},{"i":1567,"t":"Best Practices","u":"/no-code/application/pages","h":"#best-practices","p":1559},{"i":1569,"t":"Publishing the Page","u":"/no-code/application/pages","h":"#publishing-the-page","p":1559},{"i":1571,"t":"Displaying in the Application","u":"/no-code/application/pages","h":"#displaying-in-the-application","p":1559},{"i":1573,"t":"Supported Custom Page Types","u":"/no-code/application/pages","h":"#supported-custom-page-types","p":1559},{"i":1575,"t":"Application Pages","u":"/no-code/application/pages","h":"#application-pages","p":1559},{"i":1577,"t":"Record Pages","u":"/no-code/application/pages","h":"#record-pages","p":1559},{"i":1579,"t":"List Pages","u":"/no-code/application/pages","h":"#list-pages","p":1559},{"i":1583,"t":"๐๏ธ Application Overview","u":"/no-code/application/","h":"","p":1581},{"i":1585,"t":"๐๏ธ Creating Your First Application","u":"/no-code/application/","h":"","p":1581},{"i":1587,"t":"๐๏ธ Micro Page Builder","u":"/no-code/application/","h":"","p":1581},{"i":1589,"t":"๐๏ธ Tabs","u":"/no-code/application/","h":"","p":1581},{"i":1593,"t":"Store Information Thatโs Unique to Your Organization","u":"/no-code/customize/","h":"#store-information-thats-unique-to-your-organization","p":1591},{"i":1595,"t":"Customize Fields","u":"/no-code/customize/","h":"#customize-fields","p":1591},{"i":1597,"t":"Calculate Field Values with Formulas","u":"/no-code/customize/","h":"#calculate-field-values-with-formulas","p":1591},{"i":1599,"t":"๐๏ธ Custom Objects","u":"/no-code/customize/","h":"","p":1591},{"i":1601,"t":"๐๏ธ Field Types","u":"/no-code/customize/","h":"","p":1591},{"i":1603,"t":"๐๏ธ Calculate Field Values with Formulas","u":"/no-code/customize/","h":"","p":1591},{"i":1605,"t":"๐๏ธ Object Relationships","u":"/no-code/customize/","h":"","p":1591},{"i":1607,"t":"๐๏ธ Custom Button","u":"/no-code/customize/","h":"","p":1591},{"i":1609,"t":"๐๏ธ External Data Sources","u":"/no-code/customize/","h":"","p":1591},{"i":1611,"t":"๐๏ธ List Views","u":"/no-code/customize/","h":"","p":1591},{"i":1613,"t":"๐๏ธ Page Layouts","u":"/no-code/customize/","h":"","p":1591},{"i":1615,"t":"๐๏ธ Validation Rules","u":"/no-code/customize/","h":"","p":1591},{"i":1619,"t":"Creating New Tabs","u":"/no-code/application/tab","h":"#creating-new-tabs","p":1617},{"i":1621,"t":"Types of Tabs","u":"/no-code/application/tab","h":"#types-of-tabs","p":1617},{"i":1622,"t":"Object Tabs","u":"/no-code/application/tab","h":"#object-tabs","p":1617},{"i":1624,"t":"External Link Tabs","u":"/no-code/application/tab","h":"#external-link-tabs","p":1617},{"i":1626,"t":"Micro Page Tabs","u":"/no-code/application/tab","h":"#micro-page-tabs","p":1617},{"i":1628,"t":"Tab Permissions","u":"/no-code/application/tab","h":"#tab-permissions","p":1617},{"i":1632,"t":"Validate and Sync an External Data Source","u":"/no-code/customize/external-datasources","h":"#validate-and-sync-an-external-data-source","p":1630},{"i":1636,"t":"๐๏ธ Field Attributes","u":"/no-code/customize/fields/","h":"","p":1634},{"i":1638,"t":"๐๏ธ Basic Field Types","u":"/no-code/customize/fields/","h":"","p":1634},{"i":1640,"t":"๐๏ธ Auto Number Field","u":"/no-code/customize/fields/","h":"","p":1634},{"i":1642,"t":"๐๏ธ Roll-Up Summary Field","u":"/no-code/customize/fields/","h":"","p":1634},{"i":1644,"t":"๐๏ธ Object Relationship Fields","u":"/no-code/customize/fields/","h":"","p":1634},{"i":1650,"t":"Auto-Number Formatting Examples","u":"/no-code/customize/fields/field-type-autonumber","h":"#auto-number-formatting-examples","p":1648},{"i":1654,"t":"Steps","u":"/no-code/customize/button","h":"#steps","p":1652},{"i":1656,"t":"Create a New Button","u":"/no-code/customize/button","h":"#create-a-new-button","p":1652},{"i":1658,"t":"Design Button","u":"/no-code/customize/button","h":"#design-button","p":1652},{"i":1668,"t":"๐๏ธ Formula Overview","u":"/no-code/customize/formula/","h":"","p":1666},{"i":1670,"t":"๐๏ธ Formula Field Types","u":"/no-code/customize/formula/","h":"","p":1666},{"i":1672,"t":"๐๏ธ Formula Functions","u":"/no-code/customize/formula/","h":"","p":1666},{"i":1674,"t":"๐๏ธ Cross-Object Formula","u":"/no-code/customize/formula/","h":"","p":1666},{"i":1676,"t":"๐๏ธ Using Date/Time Values","u":"/no-code/customize/formula/","h":"","p":1666},{"i":1680,"t":"TODAY(), NOW() and TIMENOW()","u":"/no-code/customize/formula/datetime","h":"#today-now-and-timenow","p":1678},{"i":1682,"t":"The DATE() Function","u":"/no-code/customize/formula/datetime","h":"#the-date-function","p":1678},{"i":1684,"t":"Converting Between Date/Time and Date","u":"/no-code/customize/formula/datetime","h":"#converting-between-datetime-and-date","p":1678},{"i":1686,"t":"Converting Between Date/Time and Time","u":"/no-code/customize/formula/datetime","h":"#converting-between-datetime-and-time","p":1678},{"i":1688,"t":"Converting Between Date and Text","u":"/no-code/customize/formula/datetime","h":"#converting-between-date-and-text","p":1678},{"i":1690,"t":"Converting Between Date/Time and Text","u":"/no-code/customize/formula/datetime","h":"#converting-between-datetime-and-text","p":1678},{"i":1692,"t":"Converting Between Time and Text","u":"/no-code/customize/formula/datetime","h":"#converting-between-time-and-text","p":1678},{"i":1694,"t":"A Note About Date/Time and Time Zones","u":"/no-code/customize/formula/datetime","h":"#a-note-about-datetime-and-time-zones","p":1678},{"i":1698,"t":"Master-detail","u":"/no-code/customize/fields/relationship","h":"#master-detail","p":1696},{"i":1700,"t":"Lookup","u":"/no-code/customize/fields/relationship","h":"#lookup","p":1696},{"i":1708,"t":"Objects, Fields, and Records","u":"/no-code/customize/object","h":"#objects-fields-and-records","p":1706},{"i":1710,"t":"Creating Custom Objects","u":"/no-code/customize/object","h":"#creating-custom-objects","p":1706},{"i":1712,"t":"Object Properties","u":"/no-code/customize/object","h":"#object-properties","p":1706},{"i":1716,"t":"Create Page Layouts","u":"/no-code/customize/page-layout","h":"#create-page-layouts","p":1714},{"i":1718,"t":"Assign Page Layouts to Profiles or Record Types","u":"/no-code/customize/page-layout","h":"#assign-page-layouts-to-profiles-or-record-types","p":1714},{"i":1720,"t":"Customize Related Lists","u":"/no-code/customize/page-layout","h":"#customize-related-lists","p":1714},{"i":1722,"t":"Customize Standard and Custom Buttons on Page Layouts","u":"/no-code/customize/page-layout","h":"#customize-standard-and-custom-buttons-on-page-layouts","p":1714},{"i":1725,"t":"Where are Formulas Used in Steedos?","u":"/no-code/customize/formula/overview","h":"#where-are-formulas-used-in-steedos","p":1724},{"i":1727,"t":"Formula Data Types","u":"/no-code/customize/formula/overview","h":"#formula-data-types","p":1724},{"i":1729,"t":"Elements of a Formula","u":"/no-code/customize/formula/overview","h":"#elements-of-a-formula","p":1724},{"i":1731,"t":"Literal Value","u":"/no-code/customize/formula/overview","h":"#literal-value","p":1724},{"i":1733,"t":"Field Reference","u":"/no-code/customize/formula/overview","h":"#field-reference","p":1724},{"i":1735,"t":"Function","u":"/no-code/customize/formula/overview","h":"#function","p":1724},{"i":1737,"t":"Operator","u":"/no-code/customize/formula/overview","h":"#operator","p":1724},{"i":1739,"t":"Comment","u":"/no-code/customize/formula/overview","h":"#comment","p":1724},{"i":1743,"t":"Supported Object Relationships","u":"/no-code/customize/object-relationship","h":"#supported-object-relationships","p":1741},{"i":1745,"t":"Configuring Object Relationships","u":"/no-code/customize/object-relationship","h":"#configuring-object-relationships","p":1741},{"i":1749,"t":"What are Steedos Plugins?","u":"/plugins","h":"#what-are-steedos-plugins","p":1747},{"i":1751,"t":"Developing Your Own Steedos Plugins","u":"/plugins","h":"#developing-your-own-steedos-plugins","p":1747},{"i":1761,"t":"Core Features","u":"/blog/welcome","h":"#core-features","p":1759},{"i":1763,"t":"Key Highlights","u":"/blog/welcome","h":"#key-highlights","p":1759},{"i":1767,"t":"Mathematical Operators","u":"/no-code/customize/formula/functions","h":"#mathematical-operators","p":1765},{"i":1768,"t":"+ Addition","u":"/no-code/customize/formula/functions","h":"#-addition","p":1765},{"i":1770,"t":"- Subtraction","u":"/no-code/customize/formula/functions","h":"#--subtraction","p":1765},{"i":1772,"t":"* Multiplication","u":"/no-code/customize/formula/functions","h":"#-multiplication","p":1765},{"i":1774,"t":"/ Division","u":"/no-code/customize/formula/functions","h":"#-division","p":1765},{"i":1776,"t":"^ Power","u":"/no-code/customize/formula/functions","h":"#-power","p":1765},{"i":1778,"t":"() Brackets","u":"/no-code/customize/formula/functions","h":"#-brackets","p":1765},{"i":1780,"t":"Logical Operators","u":"/no-code/customize/formula/functions","h":"#logical-operators","p":1765},{"i":1781,"t":"= and == (Equal To)","u":"/no-code/customize/formula/functions","h":"#-and--equal-to","p":1765},{"i":1783,"t":"!= (Not Equal To)","u":"/no-code/customize/formula/functions","h":"#-not-equal-to","p":1765},{"i":1785,"t":"< (Less Than)","u":"/no-code/customize/formula/functions","h":"#-less-than","p":1765},{"i":1787,"t":"> (Greater Than)","u":"/no-code/customize/formula/functions","h":"#-greater-than","p":1765},{"i":1789,"t":"<= (Less Than or Equal To)","u":"/no-code/customize/formula/functions","h":"#-less-than-or-equal-to","p":1765},{"i":1791,"t":">= (Greater Than or Equal To)","u":"/no-code/customize/formula/functions","h":"#-greater-than-or-equal-to","p":1765},{"i":1793,"t":"&& (AND)","u":"/no-code/customize/formula/functions","h":"#-and","p":1765},{"i":1795,"t":"|| (OR)","u":"/no-code/customize/formula/functions","h":"#-or","p":1765},{"i":1797,"t":"Text Operators","u":"/no-code/customize/formula/functions","h":"#text-operators","p":1765},{"i":1798,"t":"& (Concatenation)","u":"/no-code/customize/formula/functions","h":"#-concatenation","p":1765},{"i":1800,"t":"Date and Time Functions","u":"/no-code/customize/formula/functions","h":"#date-and-time-functions","p":1765},{"i":1801,"t":"ADDMONTHS","u":"/no-code/customize/formula/functions","h":"#addmonths","p":1765},{"i":1803,"t":"DATE","u":"/no-code/customize/formula/functions","h":"#date","p":1765},{"i":1805,"t":"DATEVALUE","u":"/no-code/customize/formula/functions","h":"#datevalue","p":1765},{"i":1807,"t":"DATETIMEVALUE","u":"/no-code/customize/formula/functions","h":"#datetimevalue","p":1765},{"i":1809,"t":"DAY","u":"/no-code/customize/formula/functions","h":"#day","p":1765},{"i":1811,"t":"HOUR","u":"/no-code/customize/formula/functions","h":"#hour","p":1765},{"i":1813,"t":"MILLISECOND","u":"/no-code/customize/formula/functions","h":"#millisecond","p":1765},{"i":1815,"t":"MINUTE","u":"/no-code/customize/formula/functions","h":"#minute","p":1765},{"i":1817,"t":"MONTH","u":"/no-code/customize/formula/functions","h":"#month","p":1765},{"i":1819,"t":"NOW","u":"/no-code/customize/formula/functions","h":"#now","p":1765},{"i":1821,"t":"SECOND","u":"/no-code/customize/formula/functions","h":"#second","p":1765},{"i":1823,"t":"TIMENOW","u":"/no-code/customize/formula/functions","h":"#timenow","p":1765},{"i":1825,"t":"TIMEVALUE","u":"/no-code/customize/formula/functions","h":"#timevalue","p":1765},{"i":1827,"t":"TODAY","u":"/no-code/customize/formula/functions","h":"#today","p":1765},{"i":1829,"t":"WEEKDAY","u":"/no-code/customize/formula/functions","h":"#weekday","p":1765},{"i":1831,"t":"YEAR","u":"/no-code/customize/formula/functions","h":"#year","p":1765},{"i":1833,"t":"Logical Functions","u":"/no-code/customize/formula/functions","h":"#logical-functions","p":1765},{"i":1834,"t":"AND","u":"/no-code/customize/formula/functions","h":"#and","p":1765},{"i":1836,"t":"BLANKVALUE","u":"/no-code/customize/formula/functions","h":"#blankvalue","p":1765},{"i":1838,"t":"CASE","u":"/no-code/customize/formula/functions","h":"#case","p":1765},{"i":1840,"t":"IF","u":"/no-code/customize/formula/functions","h":"#if","p":1765},{"i":1842,"t":"ISBLANK","u":"/no-code/customize/formula/functions","h":"#isblank","p":1765},{"i":1844,"t":"NOT","u":"/no-code/customize/formula/functions","h":"#not","p":1765},{"i":1846,"t":"OR","u":"/no-code/customize/formula/functions","h":"#or","p":1765},{"i":1848,"t":"Mathematical Functions","u":"/no-code/customize/formula/functions","h":"#mathematical-functions","p":1765},{"i":1849,"t":"ABS","u":"/no-code/customize/formula/functions","h":"#abs","p":1765},{"i":1851,"t":"CEILING","u":"/no-code/customize/formula/functions","h":"#ceiling","p":1765},{"i":1853,"t":"EXP","u":"/no-code/customize/formula/functions","h":"#exp","p":1765},{"i":1855,"t":"FLOOR","u":"/no-code/customize/formula/functions","h":"#floor","p":1765},{"i":1857,"t":"LN","u":"/no-code/customize/formula/functions","h":"#ln","p":1765},{"i":1859,"t":"LOG","u":"/no-code/customize/formula/functions","h":"#log","p":1765},{"i":1861,"t":"MAX","u":"/no-code/customize/formula/functions","h":"#max","p":1765},{"i":1863,"t":"MCEILING","u":"/no-code/customize/formula/functions","h":"#mceiling","p":1765},{"i":1865,"t":"MFLOOR","u":"/no-code/customize/formula/functions","h":"#mfloor","p":1765},{"i":1867,"t":"MIN","u":"/no-code/customize/formula/functions","h":"#min","p":1765},{"i":1869,"t":"MOD","u":"/no-code/customize/formula/functions","h":"#mod","p":1765},{"i":1871,"t":"ROUND","u":"/no-code/customize/formula/functions","h":"#round","p":1765},{"i":1873,"t":"SQRT","u":"/no-code/customize/formula/functions","h":"#sqrt","p":1765},{"i":1875,"t":"Text Functions","u":"/no-code/customize/formula/functions","h":"#text-functions","p":1765},{"i":1876,"t":"BEGINS","u":"/no-code/customize/formula/functions","h":"#begins","p":1765},{"i":1878,"t":"BR","u":"/no-code/customize/formula/functions","h":"#br","p":1765},{"i":1880,"t":"CASESAFEID","u":"/no-code/customize/formula/functions","h":"#casesafeid","p":1765},{"i":1882,"t":"CONTAINS","u":"/no-code/customize/formula/functions","h":"#contains","p":1765},{"i":1884,"t":"FIND","u":"/no-code/customize/formula/functions","h":"#find","p":1765},{"i":1886,"t":"HYPERLINK","u":"/no-code/customize/formula/functions","h":"#hyperlink","p":1765},{"i":1888,"t":"INCLUDES","u":"/no-code/customize/formula/functions","h":"#includes","p":1765},{"i":1890,"t":"ISPICKVAL","u":"/no-code/customize/formula/functions","h":"#ispickval","p":1765},{"i":1892,"t":"Text Functions","u":"/no-code/customize/formula/functions","h":"#text-functions-1","p":1765},{"i":1893,"t":"BEGINS","u":"/no-code/customize/formula/functions","h":"#begins-1","p":1765},{"i":1895,"t":"LEFT","u":"/no-code/customize/formula/functions","h":"#left","p":1765},{"i":1897,"t":"LEN","u":"/no-code/customize/formula/functions","h":"#len","p":1765},{"i":1899,"t":"LOWER","u":"/no-code/customize/formula/functions","h":"#lower","p":1765},{"i":1901,"t":"LPAD","u":"/no-code/customize/formula/functions","h":"#lpad","p":1765},{"i":1903,"t":"MID","u":"/no-code/customize/formula/functions","h":"#mid","p":1765},{"i":1905,"t":"RIGHT","u":"/no-code/customize/formula/functions","h":"#right","p":1765},{"i":1907,"t":"RPAD","u":"/no-code/customize/formula/functions","h":"#rpad","p":1765},{"i":1909,"t":"SUBSTITUTE","u":"/no-code/customize/formula/functions","h":"#substitute","p":1765},{"i":1911,"t":"TEXT","u":"/no-code/customize/formula/functions","h":"#text","p":1765},{"i":1913,"t":"Advanced Functions","u":"/no-code/customize/formula/functions","h":"#advanced-functions","p":1765},{"i":1914,"t":"REGEX","u":"/no-code/customize/formula/functions","h":"#regex","p":1765},{"i":1916,"t":"Text Functions","u":"/no-code/customize/formula/functions","h":"#text-functions-2","p":1765},{"i":1917,"t":"TRIM","u":"/no-code/customize/formula/functions","h":"#trim","p":1765},{"i":1919,"t":"UPPER","u":"/no-code/customize/formula/functions","h":"#upper","p":1765},{"i":1921,"t":"VALUE","u":"/no-code/customize/formula/functions","h":"#value","p":1765}],"index":{"version":"2.3.9","fields":["t"],"fieldVectors":[["t/5",[0,6.79,1,6.79]],["t/7",[2,3.331,3,4.699]],["t/9",[2,3.331,4,6.79]],["t/11",[5,4.09,6,3.485]],["t/13",[7,5.394,8,3.789]],["t/15",[9,6.241,10,5.214]],["t/17",[11,6.79,12,6.79]],["t/27",[2,2.817,3,3.974,13,4.561]],["t/35",[14,5.609,15,6.79]],["t/39",[16,6.241,17,6.79]],["t/41",[18,6.598]],["t/43",[19,4.09,20,4.352]],["t/45",[19,4.09,21,3.421]],["t/47",[19,4.09,22,3.626]],["t/49",[19,4.09,23,3.421]],["t/51",[24,7.192]],["t/53",[25,5.879,26,4.281]],["t/55",[26,4.281,27,5.609]],["t/57",[2,2.817,19,3.459,28,3.322]],["t/63",[24,5.879,29,5.879]],["t/67",[22,3.066,30,5.741,31,4.409]],["t/69",[22,3.066,32,4.561,33,4.064]],["t/73",[18,3.117,19,2.364,20,2.515,21,1.977,32,3.117,33,2.778]],["t/75",[18,3.117,19,2.364,20,2.515,22,2.096,32,3.117,33,2.778]],["t/77",[27,4.109,32,3.951,33,3.521,34,3.305]],["t/89",[25,4.972,26,3.62,35,3.891]],["t/93",[36,4.601,37,6.241]],["t/95",[38,8.306]],["t/101",[39,4.213,40,4.09]],["t/102",[41,5.741,42,3.891,43,3.974]],["t/104",[32,3.951,36,3.371,44,4.974,45,4.307]],["t/106",[46,4.974,47,3.521,48,4.307,49,4.109]],["t/108",[31,5.214,50,6.79]],["t/110",[51,5.214,52,6.79]],["t/112",[33,4.807,53,6.79]],["t/114",[54,5.879,55,6.79]],["t/118",[40,4.09,56,4.807]],["t/119",[57,4.15,58,6.241]],["t/121",[2,3.331,59,4.926]],["t/123",[48,5.879,60,6.79]],["t/125",[2,3.331,47,4.807]],["t/127",[61,5.879,62,6.241]],["t/129",[54,5.879,63,6.79]],["t/131",[51,5.214,64,3.746]],["t/133",[65,5.214,66,5.879]],["t/137",[39,4.213,40,4.09]],["t/141",[39,4.213,40,4.09]],["t/143",[65,5.214,67,5.061]],["t/147",[68,6.862]],["t/149",[5,3.459,14,4.743,69,2.842]],["t/151",[70,6.241,71,6.241]],["t/155",[72,3.799,73,3.27,74,3.799,75,4.387,76,4.387]],["t/159",[39,4.213,40,4.09]],["t/161",[65,5.214,67,5.061]],["t/165",[39,3.086,77,3.305,78,4.974,79,4.572]],["t/167",[2,3.331,80,6.79]],["t/169",[81,6.862]],["t/171",[82,6.241,83,5.879]],["t/175",[40,4.09,84,4.699]],["t/177",[65,5.214,66,5.879]],["t/181",[85,5.237]],["t/182",[40,4.09,56,4.807]],["t/184",[39,4.213,67,5.061]],["t/186",[81,5.609,86,3.789]],["t/187",[20,3.68,26,3.62,81,4.743]],["t/189",[81,4.743,86,3.204,87,5.741]],["t/191",[88,5.741,89,5.277,90,3.974]],["t/193",[2,3.331,91,6.241]],["t/194",[86,2.775,91,4.572,92,4.572,93,4.974]],["t/196",[2,2.152,94,4.032,95,4.032,96,4.032,97,4.032]],["t/197",[20,3.68,94,5.277,98,5.741]],["t/199",[95,4.572,96,4.572,97,4.572,99,4.572]],["t/201",[36,3.891,48,4.972,100,4.972]],["t/203",[101,7.635]],["t/207",[2,2.817,57,3.509,102,5.741]],["t/209",[103,7.192]],["t/211",[104,8.306]],["t/213",[2,3.331,105,5.214]],["t/215",[106,7.635]],["t/217",[2,3.331,107,5.879]],["t/221",[39,4.213,40,4.09]],["t/223",[2,1.925,69,1.942,84,2.716,103,3.398,108,3.398,109,3.607]],["t/227",[39,4.213,40,4.09]],["t/229",[69,2.171,82,4.032,83,3.799,84,3.036,108,3.799]],["t/233",[40,4.09,56,4.807]],["t/235",[66,7.192]],["t/239",[39,4.213,40,4.09]],["t/241",[65,5.214,67,5.061]],["t/245",[85,5.237]],["t/247",[40,4.09,56,4.807]],["t/249",[23,3.421,110,5.879]],["t/253",[39,4.213,40,4.09]],["t/254",[2,2.44,57,3.04,107,4.307,111,3.188]],["t/256",[107,4.307,112,3.188,113,4.974,114,4.974]],["t/258",[2,2.44,115,3.305,116,4.572,117,4.307]],["t/260",[2,2.817,106,5.277,118,3.974]],["t/262",[83,3.799,116,4.032,119,3.369,120,4.387,121,3.369]],["t/264",[2,2.44,103,4.307,122,3.951,123,4.974]],["t/266",[9,4.572,33,3.521,84,3.442,124,3.951]],["t/268",[84,4.699,125,6.241]],["t/273",[43,4.699,126,5.879]],["t/275",[43,4.699,127,6.241]],["t/281",[128,6.379]],["t/283",[3,4.699,129,6.79]],["t/285",[40,4.09,56,4.807]],["t/287",[39,4.213,67,5.061]],["t/289",[130,3.704,131,4.699]],["t/290",[132,6.598]],["t/292",[131,3.974,133,5.741,134,4.743]],["t/294",[105,4.409,135,5.277,136,5.277]],["t/296",[23,2.893,131,3.974,137,4.972]],["t/298",[2,3.331,105,5.214]],["t/299",[105,3.82,136,4.572,138,4.307,139,4.974]],["t/301",[105,4.409,140,5.741,141,5.741]],["t/303",[105,4.409,142,4.972,143,4.972]],["t/305",[36,3.891,131,3.974,144,4.064]],["t/306",[49,4.743,131,3.974,145,5.741]],["t/308",[36,3.891,146,3.815,147,5.277]],["t/310",[131,3.974,148,5.741,149,5.741]],["t/312",[100,4.972,131,3.974,150,5.741]],["t/313",[100,4.972,131,3.974,151,5.741]],["t/315",[131,3.974,152,4.972,153,5.277]],["t/317",[34,3.815,131,3.974,154,5.277]],["t/319",[155,6.379]],["t/323",[146,4.512,156,5.609]],["t/325",[26,4.281,42,4.601]],["t/327",[36,4.601,144,4.807]],["t/329",[36,4.601,37,6.241]],["t/334",[157,7.635]],["t/336",[158,8.306]],["t/338",[159,6.79,160,6.241]],["t/340",[86,3.789,161,5.879]],["t/346",[68,6.862]],["t/348",[162,4.601,163,3.98]],["t/349",[86,2.775,111,3.188,132,3.951,164,3.608]],["t/351",[112,3.68,165,4.743,166,5.277]],["t/353",[115,3.815,162,3.891,167,5.277]],["t/355",[86,3.789,168,6.79]],["t/357",[169,7.635]],["t/359",[170,5.214,171,6.79]],["t/361",[70,6.241,71,6.241]],["t/369",[67,4.279,69,2.842,172,4.743]],["t/370",[74,4.307,111,3.188,173,3.608,174,3.442]],["t/372",[61,4.972,62,5.277,112,3.68]],["t/374",[51,3.014,115,2.608,162,2.659,175,3.924,176,3.924,177,3.924]],["t/376",[2,2.817,118,3.974,178,4.561]],["t/378",[2,2.44,6,2.553,119,3.82,179,4.307]],["t/380",[122,4.561,162,3.891,180,5.741]],["t/382",[73,5.061,174,4.699]],["t/384",[21,3.421,64,3.746]],["t/386",[3,3.974,64,3.167,181,3.974]],["t/388",[42,4.601,156,5.609]],["t/390",[69,2.171,74,3.799,172,3.624,173,3.183,174,3.036]],["t/392",[57,4.15,182,5.214]],["t/394",[6,3.485,174,4.699]],["t/396",[6,2.947,174,3.974,183,4.972]],["t/398",[184,4.279,185,3.132,186,5.277]],["t/400",[51,5.214,187,3.789]],["t/404",[86,3.789,188,6.79]],["t/406",[189,5.394,190,6.79]],["t/408",[191,4.15,192,5.394]],["t/410",[193,5.879,194,6.241]],["t/412",[84,3.974,164,4.166,195,5.741]],["t/414",[196,8.306]],["t/416",[193,4.972,197,5.741,198,5.277]],["t/418",[49,5.609,199,6.79]],["t/420",[86,3.789,200,6.79]],["t/422",[142,5.879,201,6.79]],["t/424",[59,4.926,202,6.79]],["t/426",[174,4.699,203,6.79]],["t/428",[204,5.879,205,5.214]],["t/430",[86,3.204,206,5.741,207,5.741]],["t/434",[85,5.237]],["t/436",[142,5.879,187,3.789]],["t/438",[187,3.789,208,5.394]],["t/440",[209,8.306]],["t/442",[187,3.789,210,5.879]],["t/444",[144,4.807,187,3.789]],["t/448",[68,6.862]],["t/450",[5,4.09,157,6.241]],["t/452",[5,4.09,69,3.36]],["t/456",[181,4.699,211,5.214]],["t/458",[187,3.789,212,4.281]],["t/460",[187,3.789,213,6.241]],["t/462",[36,4.601,165,5.609]],["t/464",[36,3.371,126,4.307,214,4.572,215,4.572]],["t/466",[23,2.893,137,4.972,215,5.277]],["t/468",[23,2.893,36,3.891,137,4.972]],["t/472",[3,2.716,187,2.19,189,3.117,216,2.847,217,3.607,218,3.607]],["t/474",[3,2.716,35,2.659,143,3.398,218,3.607,219,3.924,220,3.924]],["t/476",[35,2.973,39,2.722,143,3.799,187,2.448,221,4.387]],["t/482",[187,3.789,222,6.79]],["t/484",[223,5.214,224,6.241]],["t/488",[85,5.237]],["t/490",[69,2.842,187,3.204,225,3.68]],["t/492",[187,3.789,226,5.879]],["t/494",[187,3.789,208,5.394]],["t/496",[187,3.789,191,4.15]],["t/498",[69,2.842,125,5.277,187,3.204]],["t/500",[155,6.379]],["t/503",[10,3.82,23,2.506,69,2.462,227,3.82]],["t/504",[132,6.598]],["t/506",[228,8.306]],["t/508",[229,5.748]],["t/510",[23,2.21,69,2.171,189,3.485,227,3.369,230,4.387]],["t/511",[144,4.807,231,6.79]],["t/513",[229,5.748]],["t/516",[208,5.394,232,6.79]],["t/518",[233,6.79,234,6.79]],["t/520",[8,3.789,235,4.601]],["t/522",[21,2.893,22,3.066,235,3.891]],["t/524",[235,3.891,236,4.064,237,5.741]],["t/526",[235,3.891,236,4.064,238,5.741]],["t/528",[235,3.891,236,4.064,239,4.279]],["t/530",[205,3.82,235,3.371,240,4.974,241,4.974]],["t/532",[8,3.204,242,5.277,243,4.972]],["t/534",[205,4.409,235,3.891,244,5.741]],["t/536",[8,3.789,29,5.879]],["t/538",[8,3.789,130,3.704]],["t/540",[34,4.512,245,5.879]],["t/542",[34,4.512,246,5.609]],["t/545",[187,3.789,247,6.241]],["t/547",[247,6.241,248,6.79]],["t/549",[210,5.879,249,6.79]],["t/551",[210,4.972,250,5.741,251,5.277]],["t/553",[187,3.204,251,5.277,252,5.741]],["t/556",[128,5.214,253,5.061]],["t/558",[43,3.974,253,4.279,254,5.741]],["t/560",[40,3.459,56,4.064,253,4.279]],["t/562",[23,2.893,110,4.972,253,4.279]],["t/564",[255,6.79,256,5.214]],["t/567",[8,3.415,45,3.398,257,2.474,258,3.117,259,3.242]],["t/569",[8,3.204,77,3.815,259,4.743]],["t/571",[8,2.775,111,3.188,259,4.109,260,4.307]],["t/573",[77,3.815,181,3.974,260,4.972]],["t/575",[8,2.775,86,2.775,261,4.974,262,3.951]],["t/577",[8,2.775,112,3.188,170,3.82,259,4.109]],["t/579",[8,2.775,45,4.307,115,3.305,170,3.82]],["t/581",[118,4.699,263,6.79]],["t/582",[236,4.807,264,6.79]],["t/586",[8,2.19,64,2.165,187,2.19,243,3.398,265,3.607,266,3.924]],["t/588",[86,3.789,267,5.879]],["t/590",[268,5.741,269,4.064,270,5.277]],["t/592",[271,7.635]],["t/596",[86,3.204,253,4.279,272,5.741]],["t/598",[56,3.521,77,3.305,225,3.188,262,3.951]],["t/600",[77,2.608,181,2.716,267,3.398,273,3.607,274,3.924,275,3.924]],["t/602",[39,2.435,185,2.141,267,3.398,273,3.607,276,2.925,277,3.924]],["t/606",[257,4.281,278,4.926]],["t/608",[279,8.306]],["t/610",[10,5.214,280,6.79]],["t/612",[146,3.815,281,5.741,282,3.242]],["t/614",[28,3.322,146,3.815,283,5.741]],["t/616",[28,2.878,77,3.305,146,3.305,284,4.109]],["t/618",[28,3.322,146,3.815,285,5.277]],["t/620",[146,4.512,286,6.79]],["t/622",[282,3.833,287,6.241]],["t/624",[146,4.512,287,6.241]],["t/628",[51,3.82,57,3.04,223,3.82,224,4.572]],["t/629",[23,3.421,174,4.699]],["t/631",[288,7.635]],["t/633",[194,5.277,289,5.741,290,5.277]],["t/635",[86,3.789,260,5.879]],["t/637",[43,4.699,127,6.241]],["t/639",[69,3.36,223,5.214]],["t/641",[69,3.36,282,3.833]],["t/643",[69,3.36,291,5.879]],["t/645",[69,3.36,216,4.926]],["t/647",[69,3.36,265,6.241]],["t/649",[69,3.36,147,6.241]],["t/651",[69,2.842,187,3.204,292,5.741]],["t/653",[69,3.36,161,5.879]],["t/655",[208,5.394,293,5.609]],["t/657",[293,5.609,294,5.609]],["t/659",[35,3.371,216,3.608,293,4.109,295,4.974]],["t/661",[35,3.891,293,4.743,296,5.741]],["t/663",[28,4.807]],["t/667",[257,4.281,297,6.241]],["t/669",[181,4.699,297,6.241]],["t/673",[111,2.812,298,4.387,299,4.387,300,4.387,301,3.799]],["t/675",[77,2.359,112,2.275,185,1.937,284,2.932,302,2.932,303,3.55,304,3.55]],["t/679",[85,5.237]],["t/681",[165,5.609,305,6.79]],["t/683",[72,4.307,73,3.707,253,3.707,306,4.572]],["t/685",[64,3.746,77,4.512]],["t/687",[77,4.512,307,5.879]],["t/691",[308,5.879,309,5.609]],["t/693",[31,4.409,262,4.561,310,4.561]],["t/695",[8,3.204,225,3.68,257,3.62]],["t/697",[308,5.879,311,5.061]],["t/699",[312,5.301,313,5.741]],["t/701",[311,4.279,314,5.741,315,5.741]],["t/703",[89,5.277,301,4.972,310,4.561]],["t/705",[144,4.064,229,3.974,316,4.064]],["t/708",[77,3.815,253,4.279,317,5.741]],["t/710",[69,3.36,77,4.512]],["t/712",[64,3.746,77,4.512]],["t/716",[257,4.281,278,4.926]],["t/720",[257,4.281,278,4.926]],["t/724",[257,4.281,278,4.926]],["t/728",[257,4.281,278,4.926]],["t/731",[128,6.379]],["t/733",[6,2.553,64,2.744,86,2.775,318,4.974]],["t/737",[319,3.485,320,3.799,321,4.032,322,4.387,323,4.032]],["t/739",[319,5.394,320,5.879]],["t/741",[319,3.951,320,4.307,324,4.974,325,4.974]],["t/743",[308,7.192]],["t/745",[319,4.561,326,5.741,327,5.741]],["t/747",[239,6.191]],["t/749",[236,4.807,239,5.061]],["t/751",[117,4.972,212,3.62,239,4.279]],["t/755",[130,3.132,184,4.279,185,3.132]],["t/757",[43,3.974,184,4.279,185,3.132]],["t/759",[328,6.241,329,6.79]],["t/761",[23,3.421,330,6.241]],["t/763",[130,3.704,331,4.512]],["t/765",[19,4.09,86,3.789]],["t/769",[257,4.281,278,4.926]],["t/773",[64,2.42,121,3.369,184,3.27,185,2.393,225,2.812]],["t/775",[23,3.421,185,3.704]],["t/777",[34,4.512,185,3.704]],["t/779",[185,3.704,212,4.281]],["t/781",[126,5.879,185,3.704]],["t/784",[128,6.379]],["t/786",[69,2.842,191,3.509,332,5.741]],["t/788",[7,5.394,191,4.15]],["t/790",[29,4.307,69,2.462,172,4.109,191,3.04]],["t/791",[191,4.15,333,5.879]],["t/793",[191,3.04,256,3.82,334,4.109,335,4.974]],["t/795",[162,4.601,191,4.15]],["t/799",[85,5.237]],["t/801",[191,5.077]],["t/803",[191,4.15,192,5.394]],["t/805",[5,4.09,6,3.485]],["t/807",[6,3.485,336,5.214]],["t/810",[21,4.095,337,4.166]],["t/812",[22,4.34,337,4.166]],["t/814",[338,6.241,339,6.241]],["t/816",[8,2.775,173,3.608,205,3.82,227,3.82]],["t/818",[22,3.066,205,4.409,225,3.68]],["t/821",[85,5.237]],["t/823",[21,2.849,26,3.565,211,4.343,340,3.55]],["t/825",[26,4.205,42,4.52,341,4.387]],["t/827",[22,3.269,146,2.608,170,4.7,342,3.924]],["t/829",[42,4.52,49,5.51,343,4.387]],["t/831",[36,2.973,144,4.721,344,4.387,345,3.624]],["t/835",[6,3.485,333,5.879]],["t/837",[6,3.485,162,4.601]],["t/839",[6,3.485,346,5.609]],["t/841",[2,2.152,6,2.252,225,2.812,347,3.799,348,3.799]],["t/843",[2,3.331,6,3.485]],["t/845",[6,3.485,348,5.879]],["t/847",[2,2.44,6,2.553,348,4.307,349,4.974]],["t/851",[5,4.09,163,3.98]],["t/852",[6,2.014,111,2.515,163,2.3,217,3.607,301,3.398,346,3.242]],["t/854",[10,3.369,69,2.171,112,2.812,163,2.572,350,3.485]],["t/856",[5,2.996,6,2.553,115,3.305,163,2.916]],["t/858",[6,2.553,124,3.951,163,2.916,328,4.572]],["t/860",[5,2.996,163,2.916,167,4.572,351,4.307]],["t/862",[61,3.799,163,2.572,352,4.032,353,4.387,354,4.387]],["t/864",[121,3.82,163,2.916,355,4.572,356,4.974]],["t/866",[6,3.485,357,5.394]],["t/868",[6,2.553,86,2.775,357,3.951,358,4.109]],["t/870",[5,2.996,86,2.775,359,4.572,360,4.109]],["t/873",[85,5.237]],["t/875",[257,4.281,258,5.394]],["t/876",[6,2.947,69,2.842,111,3.68]],["t/878",[112,4.352,358,5.609]],["t/880",[132,6.598]],["t/882",[144,4.807,336,5.214]],["t/884",[6,2.252,86,2.448,111,2.812,164,3.183,361,4.032]],["t/886",[10,3.82,112,3.188,204,4.307,358,4.109]],["t/888",[6,2.947,115,3.815,336,4.409]],["t/890",[2,2.817,118,3.974,346,4.743]],["t/892",[6,2.947,336,4.409,357,4.561]],["t/894",[6,2.947,20,3.68,357,4.561]],["t/896",[284,3.624,336,3.369,357,3.485,358,3.624,360,3.624]],["t/898",[2,3.331,19,4.09]],["t/902",[18,6.456,337,4.166]],["t/904",[19,2.996,20,3.188,337,3.608,362,4.974]],["t/906",[19,4.414,21,2.506,337,3.608]],["t/908",[19,4.414,22,2.656,337,3.608]],["t/910",[25,4.307,26,3.136,337,3.608,363,4.974]],["t/912",[26,3.136,27,4.109,337,3.608,364,4.974]],["t/916",[132,4.561,191,3.509,192,4.561]],["t/918",[5,3.459,69,2.842,365,4.561]],["t/920",[5,2.996,73,3.707,347,4.307,366,4.307]],["t/922",[182,4.409,191,3.509,367,5.277]],["t/924",[191,3.509,368,5.277,369,5.741]],["t/926",[162,4.601,191,4.15]],["t/928",[164,3.608,192,3.951,213,4.572,370,4.572]],["t/930",[20,3.188,192,3.951,371,4.572,372,4.572]],["t/935",[85,5.237]],["t/937",[23,4.185]],["t/939",[331,5.519]],["t/941",[13,5.394,212,4.281]],["t/943",[185,3.704,276,5.061]],["t/945",[64,3.746,373,5.214]],["t/949",[28,3.929,345,5.609]],["t/951",[374,8.306]],["t/953",[28,3.322,282,3.242,375,5.277]],["t/955",[28,3.929,282,3.833]],["t/957",[236,4.807,376,6.79]],["t/959",[28,2.878,242,4.572,269,3.521,312,3.244]],["t/961",[28,3.929,229,4.699]],["t/963",[377,7.635]],["t/967",[187,3.789,345,5.609]],["t/973",[85,5.237]],["t/975",[6,3.485,378,4.429]],["t/977",[187,3.789,226,5.879]],["t/979",[28,4.807]],["t/981",[294,6.862]],["t/983",[379,7.192]],["t/985",[183,4.972,306,5.277,380,5.741]],["t/987",[307,4.972,350,4.561,378,3.745]],["t/991",[28,3.929,302,5.609]],["t/993",[28,3.929,236,4.807]],["t/995",[21,3.421,381,6.241]],["t/997",[28,3.322,282,3.242,375,5.277]],["t/999",[28,3.929,282,3.833]],["t/1001",[28,3.929,288,6.241]],["t/1005",[257,4.281,382,6.79]],["t/1007",[109,6.241,378,4.429]],["t/1009",[223,4.409,378,3.745,383,5.741]],["t/1013",[216,4.926,378,4.429]],["t/1015",[309,6.862]],["t/1017",[278,6.026]],["t/1019",[191,5.077]],["t/1021",[384,8.306]],["t/1023",[229,5.748]],["t/1027",[282,3.833,385,6.241]],["t/1029",[282,3.242,291,4.972,385,5.277]],["t/1031",[282,3.833,285,6.241]],["t/1033",[282,3.833,386,6.241]],["t/1035",[211,4.409,236,4.064,282,3.242]],["t/1037",[69,3.36,282,3.833]],["t/1038",[34,3.815,282,3.242,387,5.741]],["t/1040",[84,4.699,282,3.833]],["t/1042",[378,4.429,388,6.79]],["t/1046",[8,3.789,389,5.879]],["t/1048",[390,7.635]],["t/1050",[391,8.306]],["t/1052",[8,3.789,245,5.879]],["t/1054",[170,6.379]],["t/1056",[392,8.306]],["t/1058",[8,3.789,246,5.609]],["t/1060",[246,6.862]],["t/1062",[393,8.306]],["t/1064",[8,3.789,394,5.394]],["t/1066",[394,6.598]],["t/1068",[394,6.598]],["t/1070",[395,7.635]],["t/1072",[396,8.306]],["t/1074",[397,7.635]],["t/1076",[398,8.306]],["t/1078",[399,8.306]],["t/1080",[235,4.601,239,5.061]],["t/1082",[236,4.807,400,6.79]],["t/1084",[312,3.745,401,5.277,402,5.741]],["t/1086",[229,5.748]],["t/1088",[28,2.878,35,3.371,229,3.442,294,4.109]],["t/1090",[35,3.371,229,3.442,294,4.109,403,4.974]],["t/1094",[6,3.485,183,5.879]],["t/1098",[6,2.947,378,3.745,404,5.277]],["t/1100",[271,7.635]],["t/1102",[405,8.306]],["t/1104",[179,7.192]],["t/1106",[146,5.519]],["t/1108",[216,4.926,378,4.429]],["t/1110",[309,6.862]],["t/1112",[187,3.789,226,5.879]],["t/1114",[28,4.807]],["t/1116",[282,4.69]],["t/1118",[282,3.833,386,6.241]],["t/1122",[164,4.926,290,6.241]],["t/1124",[21,4.185]],["t/1126",[20,3.68,23,2.893,406,5.277]],["t/1128",[]],["t/1130",[191,5.077]],["t/1132",[21,4.185]],["t/1134",[22,4.436]],["t/1136",[407,8.306]],["t/1138",[373,6.379]],["t/1140",[64,3.746,310,5.394]],["t/1142",[23,4.185]],["t/1144",[20,3.188,23,2.506,406,4.572,408,4.307]],["t/1146",[84,4.699,409,6.79]],["t/1148",[181,3.974,365,4.561,410,5.741]],["t/1150",[121,5.214,411,6.79]],["t/1152",[229,5.748]],["t/1154",[57,4.15,379,5.879]],["t/1156",[350,5.394,379,5.879]],["t/1163",[187,3.204,208,4.561,216,4.166]],["t/1167",[21,3.421,161,5.879]],["t/1169",[56,4.807,92,6.241]],["t/1171",[394,6.598]],["t/1173",[395,7.635]],["t/1175",[390,7.635]],["t/1177",[170,6.379]],["t/1179",[246,6.862]],["t/1181",[397,7.635]],["t/1183",[19,5.004]],["t/1185",[28,4.807]],["t/1187",[28,3.929,412,6.79]],["t/1189",[235,3.891,239,4.279,309,4.743]],["t/1191",[311,6.191]],["t/1193",[239,5.061,321,6.241]],["t/1195",[235,3.891,269,4.064,270,5.277]],["t/1197",[235,3.891,269,4.064,413,5.741]],["t/1201",[278,6.026]],["t/1203",[365,5.394,414,6.79]],["t/1205",[212,4.281,223,5.214]],["t/1207",[212,4.281,378,4.429]],["t/1209",[146,4.512,212,4.281]],["t/1211",[212,4.281,282,3.833]],["t/1213",[134,4.743,338,5.277,415,5.277]],["t/1215",[178,4.561,212,3.62,310,4.561]],["t/1217",[146,4.512,216,4.926]],["t/1219",[216,4.926,401,6.241]],["t/1221",[282,3.833,291,5.879]],["t/1223",[378,4.429,416,6.79]],["t/1225",[164,4.166,378,3.745,417,5.277]],["t/1227",[370,5.277,378,3.745,417,5.277]],["t/1229",[212,4.281,418,6.79]],["t/1231",[39,4.213,419,6.241]],["t/1233",[419,6.241,420,6.79]],["t/1235",[282,3.833,381,6.241]],["t/1237",[64,3.746,365,5.394]],["t/1241",[85,5.237]],["t/1243",[178,5.394,182,5.214]],["t/1245",[57,3.509,359,5.277,421,5.277]],["t/1247",[57,3.509,130,3.132,422,4.561]],["t/1249",[5,3.459,69,2.842,423,5.741]],["t/1251",[57,4.15,424,5.394]],["t/1255",[57,3.509,130,3.132,425,5.741]],["t/1257",[7,4.561,57,3.509,319,4.561]],["t/1261",[57,4.15,333,5.879]],["t/1263",[6,3.485,69,3.36]],["t/1265",[69,3.36,350,5.394]],["t/1267",[6,3.485,361,6.241]],["t/1269",[69,2.462,144,3.521,172,4.109,174,3.442]],["t/1272",[99,5.277,378,3.745,426,5.277]],["t/1274",[86,3.204,426,5.277,427,5.741]],["t/1278",[360,5.609,428,6.241]],["t/1280",[160,6.241,424,5.394]],["t/1283",[128,6.379]],["t/1285",[68,6.862]],["t/1287",[5,5.004]],["t/1289",[257,4.281,365,5.394]],["t/1291",[415,6.241,429,6.79]],["t/1293",[360,4.743,421,5.277,428,5.277]],["t/1295",[57,4.15,430,5.879]],["t/1297",[6,2.553,20,3.188,371,4.572,372,4.572]],["t/1299",[173,4.926,431,6.79]],["t/1301",[162,4.601,173,4.926]],["t/1303",[173,4.926,432,6.79]],["t/1305",[169,7.635]],["t/1309",[73,4.279,174,3.974,433,5.741]],["t/1311",[64,2.744,72,4.307,73,3.707,434,4.974]],["t/1314",[5,2.996,111,3.188,223,3.82,404,4.572]],["t/1316",[5,3.459,112,3.68,435,5.741]],["t/1318",[5,3.459,115,3.815,436,5.741]],["t/1320",[5,2.996,73,3.707,118,3.442,347,4.307]],["t/1323",[257,5.237]],["t/1327",[69,2.462,162,3.371,350,3.951,424,3.951]],["t/1329",[204,4.972,437,5.741,438,5.741]],["t/1331",[39,3.563,130,3.132,187,3.204]],["t/1333",[178,4.561,182,4.409,310,4.561]],["t/1334",[182,5.214,439,6.79]],["t/1336",[182,4.409,191,3.509,367,5.277]],["t/1338",[6,2.947,69,2.842,424,4.561]],["t/1339",[5,4.09,179,5.879]],["t/1341",[6,3.485,424,5.394]],["t/1345",[23,2.506,64,2.744,111,3.188,258,3.951]],["t/1347",[2,2.152,23,2.21,57,2.682,112,2.812,440,4.032]],["t/1349",[21,2.21,57,2.682,115,2.915,130,2.393,441,3.624]],["t/1351",[21,2.21,118,3.036,442,4.032,443,2.973,444,3.27]],["t/1353",[119,4.409,331,3.815,389,4.972]],["t/1355",[86,3.789,331,4.512]],["t/1357",[23,2.21,57,2.682,64,2.42,122,3.485,130,2.393]],["t/1359",[23,3.421,130,3.704]],["t/1361",[19,2.643,20,2.812,33,3.106,124,3.485,408,3.799]],["t/1363",[33,5.88]],["t/1365",[23,2.506,162,3.371,351,4.307,445,3.82]],["t/1367",[23,3.421,445,5.214]],["t/1369",[155,6.379]],["t/1373",[21,2.506,64,2.744,111,3.188,258,3.951]],["t/1375",[21,2.21,64,2.42,112,2.812,130,2.393,441,3.624]],["t/1377",[189,5.394,430,5.879]],["t/1379",[21,3.421,130,3.704]],["t/1381",[22,3.066,115,3.815,389,4.972]],["t/1383",[22,3.626,84,4.699]],["t/1385",[22,3.066,84,3.974,245,4.972]],["t/1387",[22,3.066,64,3.167,130,3.132]],["t/1389",[21,2.893,118,3.974,446,5.741]],["t/1391",[3,3.442,64,2.744,119,3.82,181,3.442]],["t/1393",[13,4.561,86,3.204,212,3.62]],["t/1395",[22,3.066,86,3.204,276,4.279]],["t/1397",[34,3.815,86,3.204,185,3.132]],["t/1399",[19,2.996,31,3.82,33,3.521,122,3.951]],["t/1401",[19,4.09,20,4.352]],["t/1403",[124,4.561,211,4.409,445,4.409]],["t/1405",[445,5.214,447,6.79]],["t/1407",[2,2.152,21,2.21,35,2.973,351,3.799,441,3.624]],["t/1409",[35,4.601,448,6.79]],["t/1411",[155,6.379]],["t/1415",[21,2.506,111,3.188,130,2.714,449,3.951]],["t/1417",[112,3.188,302,4.109,443,3.371,449,3.951]],["t/1419",[23,2.506,115,3.305,130,2.714,449,3.951]],["t/1421",[26,3.136,42,3.371,118,3.442,449,3.951]],["t/1425",[21,2.21,69,2.171,85,2.766,111,2.812,443,2.973]],["t/1427",[21,2.21,57,2.682,112,2.812,130,2.393,441,3.624]],["t/1429",[21,2.506,115,3.305,442,4.572,443,3.371]],["t/1431",[443,4.601,450,6.241]],["t/1433",[152,4.972,443,3.891,451,5.277]],["t/1435",[21,2.506,118,3.442,443,3.371,452,4.974]],["t/1437",[8,3.789,51,5.214]],["t/1439",[42,4.601,156,5.609]],["t/1441",[54,5.879,453,6.79]],["t/1443",[119,4.409,445,4.409,454,5.741]],["t/1445",[155,6.379]],["t/1449",[69,3.36,181,4.699]],["t/1451",[14,5.609,198,6.241]],["t/1459",[85,5.237]],["t/1461",[257,3.62,258,4.561,455,5.741]],["t/1463",[165,5.609,456,6.79]],["t/1464",[189,5.394,430,5.879]],["t/1466",[3,3.974,181,3.974,457,5.277]],["t/1468",[2,2.44,20,3.188,134,4.109,457,4.572]],["t/1470",[3,3.974,181,3.974,458,5.741]],["t/1472",[2,3.331,8,3.789]],["t/1473",[34,3.815,368,5.277,459,5.741]],["t/1475",[2,2.817,34,3.815,460,5.741]],["t/1477",[193,7.192]],["t/1479",[22,3.626,153,6.241]],["t/1481",[7,4.561,8,3.204,154,5.277]],["t/1483",[282,3.833,461,5.879]],["t/1485",[2,2.817,130,3.132,282,3.242]],["t/1487",[27,5.609,461,5.879]],["t/1489",[2,2.817,282,3.242,462,5.741]],["t/1491",[2,2.44,256,3.82,334,4.109,461,4.307]],["t/1493",[2,3.331,59,4.926]],["t/1495",[59,4.166,130,3.132,463,4.972]],["t/1497",[13,4.561,59,4.166,212,3.62]],["t/1499",[59,4.926,156,5.609]],["t/1501",[2,2.44,59,3.608,256,3.82,334,4.109]],["t/1503",[2,2.817,117,4.972,164,4.166]],["t/1505",[135,6.241,164,4.926]],["t/1507",[16,6.241,346,5.609]],["t/1511",[21,4.185]],["t/1513",[26,3.62,42,3.891,128,4.409]],["t/1515",[7,5.394,345,5.609]],["t/1517",[40,5.004]],["t/1519",[26,2.766,28,2.539,42,2.973,444,3.27,464,4.387]],["t/1521",[23,3.421,110,5.879]],["t/1523",[26,3.136,42,3.371,130,2.714,163,2.916]],["t/1525",[26,2.474,42,2.659,59,2.847,256,3.014,465,3.607,466,3.924]],["t/1527",[155,6.379]],["t/1529",[449,4.561,467,5.741,468,5.741]],["t/1533",[23,2.506,111,3.188,163,2.916,440,4.572]],["t/1535",[2,2.152,14,3.624,31,3.369,112,2.812,163,2.572]],["t/1537",[23,2.21,115,2.915,130,2.393,163,2.572,422,3.485]],["t/1539",[23,2.21,118,3.036,163,2.572,262,3.485,302,3.624]],["t/1541",[23,2.21,108,3.799,119,3.369,163,2.572,331,2.915]],["t/1543",[3,3.036,19,2.643,122,3.485,163,2.572,463,3.799]],["t/1545",[124,3.951,163,2.916,214,4.572,445,3.82]],["t/1547",[65,3.369,162,2.973,163,2.572,178,3.485,352,4.032]],["t/1549",[163,2.916,355,4.572,469,4.974,470,4.974]],["t/1553",[23,3.421,225,4.352]],["t/1555",[23,3.421,31,5.214]],["t/1557",[23,2.893,43,3.974,144,4.064]],["t/1561",[130,2.714,184,3.707,185,2.714,422,3.951]],["t/1563",[43,4.699,185,3.704]],["t/1565",[40,2.996,43,3.442,185,2.714,471,4.572]],["t/1567",[256,5.214,334,5.609]],["t/1569",[185,3.704,336,5.214]],["t/1571",[23,3.421,330,6.241]],["t/1573",[64,2.744,121,3.82,185,2.714,225,3.188]],["t/1575",[23,3.421,185,3.704]],["t/1577",[34,4.512,185,3.704]],["t/1579",[185,3.704,212,4.281]],["t/1583",[23,3.421,85,4.281]],["t/1585",[23,2.893,130,3.132,472,5.741]],["t/1587",[184,4.279,185,3.132,186,5.277]],["t/1589",[331,5.519]],["t/1593",[58,4.032,134,3.624,284,3.624,473,4.387,474,4.387]],["t/1595",[22,3.626,64,3.746]],["t/1597",[22,2.656,269,3.521,475,4.572,476,3.521]],["t/1599",[21,3.421,64,3.746]],["t/1601",[22,3.626,225,4.352]],["t/1603",[22,2.656,269,3.521,475,4.572,476,3.521]],["t/1605",[21,3.421,443,4.601]],["t/1607",[64,3.746,373,5.214]],["t/1609",[8,3.204,173,4.166,227,4.409]],["t/1611",[13,5.394,212,4.281]],["t/1613",[185,3.704,276,5.061]],["t/1615",[26,4.281,211,5.214]],["t/1619",[130,3.132,331,3.815,422,4.561]],["t/1621",[225,4.352,331,4.512]],["t/1622",[21,3.421,331,4.512]],["t/1624",[227,4.409,331,3.815,477,5.741]],["t/1626",[184,4.279,185,3.132,331,3.815]],["t/1628",[19,4.09,331,4.512]],["t/1632",[8,2.448,173,3.183,211,3.369,227,3.369,478,4.387]],["t/1636",[22,3.626,339,6.241]],["t/1638",[22,3.066,225,3.68,257,3.62]],["t/1640",[22,3.066,138,4.972,479,5.277]],["t/1642",[22,2.656,101,4.572,408,4.307,480,4.974]],["t/1644",[21,2.893,22,3.066,443,3.891]],["t/1650",[138,4.307,229,3.442,243,4.307,479,4.572]],["t/1654",[163,4.869]],["t/1656",[130,3.132,373,4.409,422,4.561]],["t/1658",[43,4.699,373,5.214]],["t/1668",[85,4.281,476,4.807]],["t/1670",[22,3.066,225,3.68,476,4.064]],["t/1672",[312,4.429,476,4.807]],["t/1674",[21,2.893,476,4.064,481,5.741]],["t/1676",[35,3.371,47,3.521,90,3.442,269,3.521]],["t/1680",[482,5.277,483,5.277,484,5.277]],["t/1682",[90,4.699,312,4.429]],["t/1684",[47,3.106,90,4.616,444,3.27,485,3.485]],["t/1686",[47,4.721,90,3.036,444,3.27,485,3.485]],["t/1688",[90,3.442,316,3.521,444,3.707,485,3.951]],["t/1690",[47,3.106,90,3.036,316,3.106,444,3.27,485,3.485]],["t/1692",[47,3.521,316,3.521,444,3.707,485,3.951]],["t/1694",[47,4.721,90,3.036,377,4.032,486,4.387]],["t/1698",[152,5.879,451,6.241]],["t/1700",[450,7.635]],["t/1708",[21,2.893,22,3.066,34,3.815]],["t/1710",[21,2.893,64,3.167,130,3.132]],["t/1712",[21,3.421,262,5.394]],["t/1716",[130,3.132,185,3.132,276,4.279]],["t/1718",[18,3.117,34,2.608,185,2.141,225,2.515,276,2.925,463,3.398]],["t/1720",[64,3.167,205,4.409,212,3.62]],["t/1722",[64,3.377,185,2.141,276,2.925,373,3.014,487,3.924]],["t/1725",[35,3.891,69,2.842,476,4.064]],["t/1727",[8,3.204,225,3.68,476,4.064]],["t/1729",[476,4.807,488,6.79]],["t/1731",[269,4.807,489,6.79]],["t/1733",[22,3.626,307,5.879]],["t/1735",[312,5.418]],["t/1737",[311,6.191]],["t/1739",[490,8.306]],["t/1743",[21,2.893,121,4.409,443,3.891]],["t/1745",[21,2.893,86,3.204,443,3.891]],["t/1749",[69,3.36,366,5.879]],["t/1751",[69,2.842,174,3.974,366,4.972]],["t/1761",[40,4.09,56,4.807]],["t/1763",[39,4.213,67,5.061]],["t/1767",[311,5.061,491,6.241]],["t/1768",[492,8.306]],["t/1770",[493,8.306]],["t/1772",[494,8.306]],["t/1774",[24,7.192]],["t/1776",[323,7.635]],["t/1778",[495,8.306]],["t/1780",[311,5.061,496,6.241]],["t/1781",[497,6.862]],["t/1783",[497,6.862]],["t/1785",[498,7.635]],["t/1787",[499,7.635]],["t/1789",[497,5.609,498,6.241]],["t/1791",[497,5.609,499,6.241]],["t/1793",[]],["t/1795",[]],["t/1797",[311,5.061,316,4.807]],["t/1798",[500,8.306]],["t/1800",[47,4.064,90,3.974,312,3.745]],["t/1801",[501,8.306]],["t/1803",[90,5.748]],["t/1805",[502,8.306]],["t/1807",[503,8.306]],["t/1809",[504,8.306]],["t/1811",[505,8.306]],["t/1813",[506,8.306]],["t/1815",[507,8.306]],["t/1817",[508,8.306]],["t/1819",[483,7.635]],["t/1821",[509,8.306]],["t/1823",[484,7.635]],["t/1825",[510,8.306]],["t/1827",[482,7.635]],["t/1829",[511,8.306]],["t/1831",[512,8.306]],["t/1833",[312,4.429,496,6.241]],["t/1834",[]],["t/1836",[513,8.306]],["t/1838",[465,7.635]],["t/1840",[]],["t/1842",[514,8.306]],["t/1844",[]],["t/1846",[]],["t/1848",[312,4.429,491,6.241]],["t/1849",[515,8.306]],["t/1851",[516,8.306]],["t/1853",[517,8.306]],["t/1855",[518,8.306]],["t/1857",[519,8.306]],["t/1859",[10,6.379]],["t/1861",[520,8.306]],["t/1863",[521,8.306]],["t/1865",[522,8.306]],["t/1867",[523,8.306]],["t/1869",[524,8.306]],["t/1871",[525,8.306]],["t/1873",[526,8.306]],["t/1875",[312,4.429,316,4.807]],["t/1876",[527,7.635]],["t/1878",[528,8.306]],["t/1880",[529,8.306]],["t/1882",[166,7.635]],["t/1884",[394,6.598]],["t/1886",[530,8.306]],["t/1888",[79,7.635]],["t/1890",[531,8.306]],["t/1892",[312,4.429,316,4.807]],["t/1893",[527,7.635]],["t/1895",[532,8.306]],["t/1897",[533,8.306]],["t/1899",[534,8.306]],["t/1901",[535,8.306]],["t/1903",[536,8.306]],["t/1905",[537,8.306]],["t/1907",[538,8.306]],["t/1909",[539,8.306]],["t/1911",[316,5.88]],["t/1913",[312,4.429,471,6.241]],["t/1914",[540,8.306]],["t/1916",[312,4.429,316,4.807]],["t/1917",[541,8.306]],["t/1919",[542,8.306]],["t/1921",[269,5.88]]],"invertedIndex":[["1",{"_index":111,"t":{"254":{"position":[[0,1]]},"349":{"position":[[0,1]]},"370":{"position":[[0,1]]},"571":{"position":[[0,1]]},"673":{"position":[[0,1]]},"852":{"position":[[5,1]]},"876":{"position":[[0,1]]},"884":{"position":[[0,1]]},"1314":{"position":[[0,1]]},"1345":{"position":[[0,1]]},"1373":{"position":[[0,1]]},"1415":{"position":[[11,1]]},"1425":{"position":[[0,1]]},"1533":{"position":[[5,1]]}}}],["10",{"_index":355,"t":{"864":{"position":[[5,2]]},"1549":{"position":[[5,2]]}}}],["2",{"_index":112,"t":{"256":{"position":[[0,1]]},"351":{"position":[[0,1]]},"372":{"position":[[0,1]]},"577":{"position":[[0,1]]},"675":{"position":[[0,1]]},"854":{"position":[[5,1]]},"878":{"position":[[0,1]]},"886":{"position":[[0,1]]},"1316":{"position":[[0,1]]},"1347":{"position":[[0,1]]},"1375":{"position":[[0,1]]},"1417":{"position":[[11,1]]},"1427":{"position":[[0,1]]},"1535":{"position":[[5,1]]}}}],["3",{"_index":115,"t":{"258":{"position":[[0,1]]},"353":{"position":[[0,1]]},"374":{"position":[[0,1]]},"579":{"position":[[0,1]]},"856":{"position":[[5,1]]},"888":{"position":[[0,1]]},"1318":{"position":[[0,1]]},"1349":{"position":[[0,1]]},"1381":{"position":[[0,1]]},"1419":{"position":[[11,1]]},"1429":{"position":[[0,1]]},"1537":{"position":[[5,1]]}}}],["4",{"_index":118,"t":{"260":{"position":[[0,1]]},"376":{"position":[[0,1]]},"581":{"position":[[0,1]]},"890":{"position":[[0,1]]},"1320":{"position":[[0,1]]},"1351":{"position":[[0,1]]},"1389":{"position":[[0,1]]},"1421":{"position":[[11,1]]},"1435":{"position":[[0,1]]},"1539":{"position":[[5,1]]}}}],["5",{"_index":119,"t":{"262":{"position":[[0,1]]},"378":{"position":[[0,1]]},"1353":{"position":[[0,1]]},"1391":{"position":[[0,1]]},"1443":{"position":[[0,1]]},"1541":{"position":[[5,1]]}}}],["6",{"_index":122,"t":{"264":{"position":[[0,1]]},"380":{"position":[[0,1]]},"1357":{"position":[[0,1]]},"1399":{"position":[[0,1]]},"1543":{"position":[[5,1]]}}}],["7",{"_index":124,"t":{"266":{"position":[[0,1]]},"858":{"position":[[5,1]]},"1361":{"position":[[0,1]]},"1403":{"position":[[0,1]]},"1545":{"position":[[5,1]]}}}],["8",{"_index":351,"t":{"860":{"position":[[5,1]]},"1365":{"position":[[0,1]]},"1407":{"position":[[0,1]]}}}],["9",{"_index":352,"t":{"862":{"position":[[5,1]]},"1547":{"position":[[5,1]]}}}],["ab",{"_index":515,"t":{"1849":{"position":[[0,3]]}}}],["access",{"_index":31,"t":{"67":{"position":[[22,6]]},"108":{"position":[[7,13]]},"693":{"position":[[23,6]]},"1399":{"position":[[16,6]]},"1535":{"position":[[8,6]]},"1555":{"position":[[7,6]]}}}],["account",{"_index":204,"t":{"428":{"position":[[0,7]]},"886":{"position":[[22,7]]},"1329":{"position":[[15,7]]}}}],["action",{"_index":146,"t":{"308":{"position":[[9,7]]},"323":{"position":[[14,7]]},"612":{"position":[[29,7]]},"614":{"position":[[19,7]]},"616":{"position":[[23,7]]},"618":{"position":[[21,7]]},"620":{"position":[[17,7]]},"624":{"position":[[5,7]]},"827":{"position":[[14,6]]},"1106":{"position":[[0,7]]},"1209":{"position":[[5,7]]},"1217":{"position":[[8,6]]}}}],["action_field_upd",{"_index":342,"t":{"827":{"position":[[14,20]]}}}],["ad",{"_index":389,"t":{"1046":{"position":[[0,6]]},"1353":{"position":[[3,6]]},"1381":{"position":[[3,6]]}}}],["addit",{"_index":492,"t":{"1768":{"position":[[2,8]]}}}],["addmonth",{"_index":501,"t":{"1801":{"position":[[0,9]]}}}],["adjust",{"_index":454,"t":{"1443":{"position":[[15,11]]}}}],["admin",{"_index":438,"t":{"1329":{"position":[[9,5]]}}}],["administr",{"_index":221,"t":{"476":{"position":[[4,13]]}}}],["advanc",{"_index":471,"t":{"1565":{"position":[[0,8]]},"1913":{"position":[[0,8]]}}}],["advantag",{"_index":66,"t":{"133":{"position":[[8,10]]},"177":{"position":[[8,10]]},"235":{"position":[[0,10]]}}}],["aggreg",{"_index":397,"t":{"1074":{"position":[[0,9]]},"1181":{"position":[[1,9]]}}}],["ami",{"_index":253,"t":{"556":{"position":[[16,4]]},"558":{"position":[[21,4]]},"560":{"position":[[17,4]]},"562":{"position":[[25,4]]},"596":{"position":[[13,4]]},"683":{"position":[[4,4]]},"708":{"position":[[0,4]]}}}],["analysi",{"_index":63,"t":{"129":{"position":[[14,8]]}}}],["analyt",{"_index":55,"t":{"114":{"position":[[14,9]]}}}],["announc",{"_index":113,"t":{"256":{"position":[[10,12]]}}}],["anonym",{"_index":197,"t":{"416":{"position":[[11,9]]}}}],["api",{"_index":187,"t":{"400":{"position":[[0,3]]},"436":{"position":[[4,3]]},"438":{"position":[[12,3]]},"442":{"position":[[7,3]]},"444":{"position":[[12,3]]},"458":{"position":[[0,3]]},"460":{"position":[[0,3]]},"472":{"position":[[15,3]]},"476":{"position":[[18,3]]},"482":{"position":[[8,3]]},"490":{"position":[[17,4]]},"492":{"position":[[5,3]]},"494":{"position":[[8,3]]},"496":{"position":[[9,3]]},"498":{"position":[[20,4]]},"545":{"position":[[2,3]]},"553":{"position":[[0,3]]},"586":{"position":[[12,3]]},"651":{"position":[[8,3]]},"967":{"position":[[0,3]]},"977":{"position":[[9,3]]},"1112":{"position":[[5,3]]},"1163":{"position":[[16,3]]},"1331":{"position":[[10,3]]}}}],["app",{"_index":14,"t":{"35":{"position":[[0,3]]},"149":{"position":[[16,4]]},"1451":{"position":[[13,4]]},"1535":{"position":[[19,3]]}}}],["appli",{"_index":99,"t":{"199":{"position":[[0,8]]},"1272":{"position":[[0,8]]}}}],["applic",{"_index":23,"t":{"49":{"position":[[4,11]]},"249":{"position":[[0,11]]},"296":{"position":[[21,11]]},"466":{"position":[[19,11]]},"468":{"position":[[23,11]]},"503":{"position":[[39,12]]},"510":{"position":[[18,12]]},"562":{"position":[[0,11]]},"629":{"position":[[14,11]]},"761":{"position":[[15,11]]},"775":{"position":[[0,11]]},"937":{"position":[[0,12]]},"1126":{"position":[[8,11]]},"1142":{"position":[[0,11]]},"1144":{"position":[[11,11]]},"1345":{"position":[[21,12]]},"1347":{"position":[[35,11]]},"1357":{"position":[[32,11]]},"1359":{"position":[[13,11]]},"1365":{"position":[[29,11]]},"1367":{"position":[[12,11]]},"1419":{"position":[[23,11]]},"1521":{"position":[[0,11]]},"1533":{"position":[[18,11]]},"1537":{"position":[[21,11]]},"1539":{"position":[[15,11]]},"1541":{"position":[[15,11]]},"1553":{"position":[[9,12]]},"1555":{"position":[[14,12]]},"1557":{"position":[[0,11]]},"1571":{"position":[[18,11]]},"1575":{"position":[[0,11]]},"1583":{"position":[[4,11]]},"1585":{"position":[[24,11]]}}}],["approv",{"_index":36,"t":{"93":{"position":[[4,8]]},"104":{"position":[[12,8]]},"201":{"position":[[0,8]]},"305":{"position":[[14,8]]},"308":{"position":[[0,8]]},"327":{"position":[[4,8]]},"329":{"position":[[4,8]]},"462":{"position":[[6,8]]},"464":{"position":[[11,8]]},"468":{"position":[[14,8]]},"831":{"position":[[0,8]]}}}],["architectur",{"_index":382,"t":{"1005":{"position":[[6,12]]}}}],["array",{"_index":270,"t":{"590":{"position":[[23,6]]},"1195":{"position":[[6,5]]}}}],["arrow",{"_index":313,"t":{"699":{"position":[[14,5]]}}}],["asset",{"_index":318,"t":{"733":{"position":[[19,5]]}}}],["assign",{"_index":463,"t":{"1495":{"position":[[13,9]]},"1543":{"position":[[8,6]]},"1718":{"position":[[0,6]]}}}],["attach",{"_index":193,"t":{"410":{"position":[[0,10]]},"416":{"position":[[0,10]]},"1477":{"position":[[0,11]]}}}],["attend",{"_index":81,"t":{"169":{"position":[[4,10]]},"186":{"position":[[0,10]]},"187":{"position":[[8,10]]},"189":{"position":[[12,10]]}}}],["attribut",{"_index":339,"t":{"814":{"position":[[7,10]]},"1636":{"position":[[10,10]]}}}],["audit",{"_index":9,"t":{"15":{"position":[[4,5]]},"266":{"position":[[21,5]]}}}],["authent",{"_index":142,"t":{"303":{"position":[[8,12]]},"422":{"position":[[5,14]]},"436":{"position":[[8,14]]}}}],["auto",{"_index":138,"t":{"299":{"position":[[19,4]]},"1640":{"position":[[4,4]]},"1650":{"position":[[0,4]]}}}],["autom",{"_index":156,"t":{"323":{"position":[[4,9]]},"388":{"position":[[0,9]]},"1439":{"position":[[0,10]]},"1499":{"position":[[5,10]]}}}],["award",{"_index":123,"t":{"264":{"position":[[12,5]]}}}],["balanc",{"_index":385,"t":{"1027":{"position":[[0,8]]},"1029":{"position":[[5,8]]}}}],["basic",{"_index":257,"t":{"567":{"position":[[0,5]]},"606":{"position":[[0,5]]},"667":{"position":[[0,5]]},"695":{"position":[[0,5]]},"716":{"position":[[0,5]]},"720":{"position":[[0,5]]},"724":{"position":[[0,5]]},"728":{"position":[[0,5]]},"769":{"position":[[0,5]]},"875":{"position":[[0,5]]},"1005":{"position":[[0,5]]},"1289":{"position":[[0,5]]},"1323":{"position":[[8,6]]},"1461":{"position":[[0,5]]},"1638":{"position":[[4,5]]}}}],["befor",{"_index":375,"t":{"953":{"position":[[0,6]]},"997":{"position":[[8,6]]}}}],["begin",{"_index":527,"t":{"1876":{"position":[[0,6]]},"1893":{"position":[[0,6]]}}}],["benchmark",{"_index":416,"t":{"1223":{"position":[[0,9]]}}}],["benefit",{"_index":125,"t":{"268":{"position":[[7,8]]},"498":{"position":[[0,8]]}}}],["best",{"_index":334,"t":{"793":{"position":[[0,4]]},"1491":{"position":[[0,4]]},"1501":{"position":[[0,4]]},"1567":{"position":[[0,4]]}}}],["between",{"_index":444,"t":{"1351":{"position":[[30,7]]},"1519":{"position":[[11,7]]},"1684":{"position":[[11,7]]},"1686":{"position":[[11,7]]},"1688":{"position":[[11,7]]},"1690":{"position":[[11,7]]},"1692":{"position":[[11,7]]}}}],["bid",{"_index":116,"t":{"258":{"position":[[3,3]]},"262":{"position":[[3,3]]}}}],["blankvalu",{"_index":513,"t":{"1836":{"position":[[0,10]]}}}],["bodi",{"_index":266,"t":{"586":{"position":[[24,4]]}}}],["br",{"_index":528,"t":{"1878":{"position":[[0,2]]}}}],["bracket",{"_index":495,"t":{"1778":{"position":[[3,8]]}}}],["broadcast",{"_index":285,"t":{"618":{"position":[[11,9]]},"1031":{"position":[[0,9]]}}}],["broker",{"_index":296,"t":{"661":{"position":[[15,6]]}}}],["brows",{"_index":368,"t":{"924":{"position":[[0,6]]},"1473":{"position":[[0,8]]}}}],["browser",{"_index":220,"t":{"474":{"position":[[12,7]]}}}],["build",{"_index":275,"t":{"600":{"position":[[35,8]]}}}],["builder",{"_index":186,"t":{"398":{"position":[[11,7]]},"1587":{"position":[[15,7]]}}}],["busi",{"_index":96,"t":{"196":{"position":[[19,8]]},"199":{"position":[[25,8]]}}}],["button",{"_index":373,"t":{"945":{"position":[[7,7]]},"1138":{"position":[[0,6]]},"1607":{"position":[[11,6]]},"1656":{"position":[[13,6]]},"1658":{"position":[[7,6]]},"1722":{"position":[[30,7]]}}}],["cach",{"_index":419,"t":{"1231":{"position":[[0,5]]},"1233":{"position":[[0,5]]}}}],["calcul",{"_index":475,"t":{"1597":{"position":[[0,9]]},"1603":{"position":[[4,9]]}}}],["calendar",{"_index":461,"t":{"1483":{"position":[[0,9]]},"1487":{"position":[[0,8]]},"1491":{"position":[[19,8]]}}}],["call",{"_index":216,"t":{"472":{"position":[[0,4]]},"645":{"position":[[8,4]]},"659":{"position":[[17,4]]},"1013":{"position":[[0,4]]},"1108":{"position":[[0,4]]},"1163":{"position":[[0,7]]},"1217":{"position":[[0,4]]},"1219":{"position":[[7,4]]}}}],["case",{"_index":465,"t":{"1525":{"position":[[10,4]]},"1838":{"position":[[0,4]]}}}],["casesafeid",{"_index":529,"t":{"1880":{"position":[[0,10]]}}}],["cd",{"_index":177,"t":{"374":{"position":[[45,2]]}}}],["ceil",{"_index":516,"t":{"1851":{"position":[[0,7]]}}}],["chain",{"_index":45,"t":{"104":{"position":[[21,6]]},"567":{"position":[[36,5]]},"579":{"position":[[21,5]]}}}],["chang",{"_index":388,"t":{"1042":{"position":[[10,7]]}}}],["check",{"_index":151,"t":{"313":{"position":[[0,5]]}}}],["choos",{"_index":108,"t":{"223":{"position":[[4,6]]},"229":{"position":[[4,6]]},"1541":{"position":[[8,6]]}}}],["ci",{"_index":176,"t":{"374":{"position":[[42,2]]}}}],["class",{"_index":300,"t":{"673":{"position":[[26,5]]}}}],["classif",{"_index":281,"t":{"612":{"position":[[0,14]]}}}],["clear",{"_index":420,"t":{"1233":{"position":[[6,5]]}}}],["cli",{"_index":423,"t":{"1249":{"position":[[20,3]]}}}],["clock",{"_index":91,"t":{"193":{"position":[[0,5]]},"194":{"position":[[12,5]]}}}],["clone",{"_index":428,"t":{"1278":{"position":[[0,5]]},"1293":{"position":[[0,5]]}}}],["code",{"_index":73,"t":{"155":{"position":[[4,4]]},"382":{"position":[[3,4]]},"683":{"position":[[13,4]]},"920":{"position":[[14,4]]},"1309":{"position":[[26,4]]},"1311":{"position":[[4,4]]},"1320":{"position":[[14,4]]}}}],["collabor",{"_index":62,"t":{"127":{"position":[[5,13]]},"372":{"position":[[8,13]]}}}],["combin",{"_index":321,"t":{"737":{"position":[[20,11]]},"1193":{"position":[[0,8]]}}}],["command",{"_index":365,"t":{"918":{"position":[[23,7]]},"1148":{"position":[[0,7]]},"1203":{"position":[[5,8]]},"1237":{"position":[[7,8]]},"1289":{"position":[[6,8]]}}}],["comment",{"_index":490,"t":{"1739":{"position":[[0,7]]}}}],["common",{"_index":338,"t":{"814":{"position":[[0,6]]},"1213":{"position":[[5,6]]}}}],["compani",{"_index":0,"t":{"5":{"position":[[4,7]]}}}],["compar",{"_index":349,"t":{"847":{"position":[[0,9]]}}}],["comparison",{"_index":464,"t":{"1519":{"position":[[0,10]]}}}],["compat",{"_index":52,"t":{"110":{"position":[[16,13]]}}}],["complex",{"_index":267,"t":{"588":{"position":[[0,7]]},"600":{"position":[[44,7]]},"602":{"position":[[37,7]]}}}],["complianc",{"_index":53,"t":{"112":{"position":[[13,10]]}}}],["compon",{"_index":77,"t":{"165":{"position":[[4,10]]},"569":{"position":[[0,10]]},"573":{"position":[[0,9]]},"598":{"position":[[12,10]]},"600":{"position":[[0,9]]},"616":{"position":[[11,9]]},"675":{"position":[[33,9]]},"685":{"position":[[11,10]]},"687":{"position":[[4,10]]},"708":{"position":[[12,10]]},"710":{"position":[[8,10]]},"712":{"position":[[7,10]]}}}],["concaten",{"_index":500,"t":{"1798":{"position":[[3,13]]}}}],["concept",{"_index":258,"t":{"567":{"position":[[6,8]]},"875":{"position":[[6,8]]},"1345":{"position":[[3,7]]},"1373":{"position":[[3,7]]},"1461":{"position":[[6,8]]}}}],["conclus",{"_index":155,"t":{"319":{"position":[[0,10]]},"500":{"position":[[0,10]]},"1369":{"position":[[0,10]]},"1411":{"position":[[0,10]]},"1445":{"position":[[0,10]]},"1527":{"position":[[0,10]]}}}],["conduct",{"_index":447,"t":{"1405":{"position":[[0,10]]}}}],["config",{"_index":431,"t":{"1299":{"position":[[7,6]]}}}],["configur",{"_index":86,"t":{"186":{"position":[[11,13]]},"189":{"position":[[0,11]]},"194":{"position":[[0,11]]},"340":{"position":[[13,13]]},"349":{"position":[[11,13]]},"355":{"position":[[0,13]]},"404":{"position":[[9,13]]},"420":{"position":[[6,13]]},"430":{"position":[[16,13]]},"575":{"position":[[23,13]]},"588":{"position":[[8,13]]},"596":{"position":[[18,13]]},"635":{"position":[[15,13]]},"733":{"position":[[0,11]]},"765":{"position":[[0,11]]},"868":{"position":[[0,11]]},"870":{"position":[[0,13]]},"884":{"position":[[3,9]]},"1274":{"position":[[12,13]]},"1355":{"position":[[0,11]]},"1393":{"position":[[0,11]]},"1395":{"position":[[0,11]]},"1397":{"position":[[0,11]]},"1745":{"position":[[0,11]]}}}],["consol",{"_index":232,"t":{"516":{"position":[[8,7]]}}}],["contain",{"_index":166,"t":{"351":{"position":[[9,10]]},"1882":{"position":[[0,8]]}}}],["context",{"_index":279,"t":{"608":{"position":[[0,7]]}}}],["continu",{"_index":175,"t":{"374":{"position":[[3,10]]}}}],["contract",{"_index":103,"t":{"209":{"position":[[4,8]]},"223":{"position":[[23,8]]},"264":{"position":[[3,8]]}}}],["control",{"_index":16,"t":{"39":{"position":[[4,7]]},"1507":{"position":[[8,7]]}}}],["convert",{"_index":485,"t":{"1684":{"position":[[0,10]]},"1686":{"position":[[0,10]]},"1688":{"position":[[0,10]]},"1690":{"position":[[0,10]]},"1692":{"position":[[0,10]]}}}],["core",{"_index":56,"t":{"118":{"position":[[0,4]]},"182":{"position":[[0,4]]},"233":{"position":[[0,4]]},"247":{"position":[[0,4]]},"285":{"position":[[0,4]]},"560":{"position":[[0,4]]},"598":{"position":[[4,4]]},"1169":{"position":[[0,4]]},"1761":{"position":[[0,4]]}}}],["cost",{"_index":102,"t":{"207":{"position":[[12,4]]}}}],["creat",{"_index":130,"t":{"289":{"position":[[0,6]]},"538":{"position":[[0,8]]},"755":{"position":[[0,6]]},"763":{"position":[[0,8]]},"1247":{"position":[[4,6]]},"1255":{"position":[[0,8]]},"1331":{"position":[[0,6]]},"1349":{"position":[[3,8]]},"1357":{"position":[[3,8]]},"1359":{"position":[[0,8]]},"1375":{"position":[[3,8]]},"1379":{"position":[[0,8]]},"1387":{"position":[[0,8]]},"1415":{"position":[[14,8]]},"1419":{"position":[[14,8]]},"1427":{"position":[[3,8]]},"1485":{"position":[[0,8]]},"1495":{"position":[[0,8]]},"1523":{"position":[[9,6]]},"1537":{"position":[[8,6]]},"1561":{"position":[[0,8]]},"1585":{"position":[[4,8]]},"1619":{"position":[[0,8]]},"1656":{"position":[[0,6]]},"1710":{"position":[[0,8]]},"1716":{"position":[[0,6]]}}}],["creation",{"_index":460,"t":{"1475":{"position":[[7,8]]}}}],["cross",{"_index":481,"t":{"1674":{"position":[[4,5]]}}}],["crud",{"_index":387,"t":{"1038":{"position":[[7,4]]}}}],["css",{"_index":304,"t":{"675":{"position":[[45,3]]}}}],["current",{"_index":219,"t":{"474":{"position":[[4,7]]}}}],["custom",{"_index":64,"t":{"131":{"position":[[0,13]]},"384":{"position":[[0,6]]},"386":{"position":[[0,6]]},"586":{"position":[[0,11]]},"685":{"position":[[4,6]]},"712":{"position":[[0,6]]},"733":{"position":[[12,6]]},"773":{"position":[[10,6]]},"945":{"position":[[0,6]]},"1140":{"position":[[0,6]]},"1237":{"position":[[0,6]]},"1311":{"position":[[14,13]]},"1345":{"position":[[14,6]]},"1357":{"position":[[25,6]]},"1373":{"position":[[14,6]]},"1375":{"position":[[22,6]]},"1387":{"position":[[9,6]]},"1391":{"position":[[3,11]]},"1573":{"position":[[10,6]]},"1595":{"position":[[0,9]]},"1599":{"position":[[4,6]]},"1607":{"position":[[4,6]]},"1710":{"position":[[9,6]]},"1720":{"position":[[0,9]]},"1722":{"position":[[0,9],[23,6]]}}}],["customiz",{"_index":76,"t":{"155":{"position":[[24,12]]}}}],["daili",{"_index":448,"t":{"1409":{"position":[[0,5]]}}}],["dashboard",{"_index":453,"t":{"1441":{"position":[[14,10]]}}}],["data",{"_index":8,"t":{"13":{"position":[[11,4]]},"520":{"position":[[9,4]]},"532":{"position":[[20,4]]},"536":{"position":[[13,4]]},"538":{"position":[[9,4]]},"567":{"position":[[16,4],[31,4]]},"569":{"position":[[16,4]]},"571":{"position":[[20,4]]},"575":{"position":[[9,4]]},"577":{"position":[[16,4]]},"579":{"position":[[16,4]]},"586":{"position":[[29,4]]},"695":{"position":[[6,4]]},"816":{"position":[[9,4]]},"1046":{"position":[[7,4]]},"1052":{"position":[[10,4]]},"1058":{"position":[[9,4]]},"1064":{"position":[[8,4]]},"1437":{"position":[[0,4]]},"1472":{"position":[[0,4]]},"1481":{"position":[[0,4]]},"1609":{"position":[[13,4]]},"1632":{"position":[[30,4]]},"1727":{"position":[[8,4]]}}}],["date",{"_index":90,"t":{"191":{"position":[[21,5]]},"1676":{"position":[[10,4]]},"1682":{"position":[[4,4]]},"1684":{"position":[[19,4],[33,4]]},"1686":{"position":[[19,4]]},"1688":{"position":[[19,4]]},"1690":{"position":[[19,4]]},"1694":{"position":[[13,4]]},"1800":{"position":[[0,4]]},"1803":{"position":[[0,4]]}}}],["datetim",{"_index":413,"t":{"1197":{"position":[[6,8]]}}}],["datetimevalu",{"_index":503,"t":{"1807":{"position":[[0,13]]}}}],["datevalu",{"_index":502,"t":{"1805":{"position":[[0,9]]}}}],["day",{"_index":504,"t":{"1809":{"position":[[0,3]]}}}],["debug",{"_index":329,"t":{"759":{"position":[[7,9]]}}}],["decis",{"_index":120,"t":{"262":{"position":[[20,8]]}}}],["deep",{"_index":434,"t":{"1311":{"position":[[9,4]]}}}],["default",{"_index":371,"t":{"930":{"position":[[8,7]]},"1297":{"position":[[4,7]]}}}],["defin",{"_index":302,"t":{"675":{"position":[[3,8]]},"991":{"position":[[0,8]]},"1417":{"position":[[14,8]]},"1539":{"position":[[8,6]]}}}],["definit",{"_index":345,"t":{"831":{"position":[[27,10]]},"949":{"position":[[8,10]]},"967":{"position":[[4,10]]},"1515":{"position":[[0,10]]}}}],["delet",{"_index":246,"t":{"542":{"position":[[0,8]]},"1058":{"position":[[0,8]]},"1060":{"position":[[0,6]]},"1179":{"position":[[1,6]]}}}],["depart",{"_index":4,"t":{"9":{"position":[[11,11]]}}}],["depend",{"_index":179,"t":{"378":{"position":[[15,10]]},"1104":{"position":[[0,12]]},"1339":{"position":[[8,11]]}}}],["deploy",{"_index":162,"t":{"348":{"position":[[0,10]]},"353":{"position":[[10,10]]},"374":{"position":[[30,10]]},"380":{"position":[[11,10]]},"795":{"position":[[0,9]]},"837":{"position":[[0,6]]},"926":{"position":[[0,6]]},"1301":{"position":[[7,6]]},"1327":{"position":[[0,6]]},"1365":{"position":[[15,9]]},"1547":{"position":[[8,6]]}}}],["descript",{"_index":231,"t":{"511":{"position":[[8,11]]}}}],["design",{"_index":43,"t":{"102":{"position":[[19,8]]},"273":{"position":[[5,6]]},"275":{"position":[[5,6]]},"558":{"position":[[0,6]]},"637":{"position":[[5,8]]},"757":{"position":[[0,9]]},"1557":{"position":[[12,6]]},"1563":{"position":[[0,9]]},"1565":{"position":[[30,8]]},"1658":{"position":[[0,6]]}}}],["detail",{"_index":152,"t":{"315":{"position":[[14,7]]},"1433":{"position":[[7,6]]},"1698":{"position":[[7,6]]}}}],["determin",{"_index":30,"t":{"67":{"position":[[5,10]]}}}],["develop",{"_index":174,"t":{"370":{"position":[[17,11]]},"382":{"position":[[8,11]]},"390":{"position":[[14,11]]},"394":{"position":[[8,11]]},"396":{"position":[[21,11]]},"426":{"position":[[0,9]]},"629":{"position":[[0,10]]},"1269":{"position":[[11,11]]},"1309":{"position":[[6,11]]},"1751":{"position":[[0,10]]}}}],["direct",{"_index":401,"t":{"1084":{"position":[[25,6]]},"1219":{"position":[[0,6]]}}}],["directaggreg",{"_index":398,"t":{"1076":{"position":[[0,15]]}}}],["directdelet",{"_index":393,"t":{"1062":{"position":[[0,12]]}}}],["directfind",{"_index":396,"t":{"1072":{"position":[[0,10]]}}}],["directinsert",{"_index":391,"t":{"1050":{"position":[[0,12]]}}}],["directupd",{"_index":392,"t":{"1056":{"position":[[0,12]]}}}],["discoveri",{"_index":383,"t":{"1009":{"position":[[18,9]]}}}],["display",{"_index":330,"t":{"761":{"position":[[0,7]]},"1571":{"position":[[0,10]]}}}],["divis",{"_index":24,"t":{"51":{"position":[[4,9]]},"63":{"position":[[4,9]]},"1774":{"position":[[2,8]]}}}],["docker",{"_index":157,"t":{"334":{"position":[[4,6]]},"450":{"position":[[11,6]]}}}],["document",{"_index":117,"t":{"258":{"position":[[7,8]]},"751":{"position":[[12,13]]},"1503":{"position":[[19,9]]}}}],["download",{"_index":198,"t":{"416":{"position":[[21,8]]},"1451":{"position":[[4,8]]}}}],["draft",{"_index":215,"t":{"464":{"position":[[5,5]]},"466":{"position":[[13,5]]}}}],["driven",{"_index":74,"t":{"155":{"position":[[9,6]]},"370":{"position":[[10,6]]},"390":{"position":[[7,6]]}}}],["dx",{"_index":172,"t":{"369":{"position":[[22,2]]},"390":{"position":[[39,2]]},"790":{"position":[[33,2]]},"1269":{"position":[[8,2]]}}}],["easili",{"_index":75,"t":{"155":{"position":[[17,6]]}}}],["element",{"_index":488,"t":{"1729":{"position":[[0,8]]}}}],["email",{"_index":200,"t":{"420":{"position":[[0,5]]}}}],["emit",{"_index":291,"t":{"643":{"position":[[8,4]]},"1029":{"position":[[0,4]]},"1221":{"position":[[0,4]]}}}],["employe",{"_index":80,"t":{"167":{"position":[[4,8]]}}}],["empti",{"_index":425,"t":{"1255":{"position":[[12,5]]}}}],["enabl",{"_index":328,"t":{"759":{"position":[[0,6]]},"858":{"position":[[8,6]]}}}],["engin",{"_index":327,"t":{"745":{"position":[[20,6]]}}}],["entri",{"_index":141,"t":{"301":{"position":[[15,5]]}}}],["environ",{"_index":178,"t":{"376":{"position":[[3,11]]},"1215":{"position":[[5,11]]},"1243":{"position":[[4,11]]},"1333":{"position":[[6,11]]},"1547":{"position":[[29,11]]}}}],["equal",{"_index":497,"t":{"1781":{"position":[[10,5]]},"1783":{"position":[[8,5]]},"1789":{"position":[[17,5]]},"1791":{"position":[[20,5]]}}}],["establish",{"_index":442,"t":{"1351":{"position":[[3,12]]},"1429":{"position":[[3,12]]}}}],["evalu",{"_index":83,"t":{"171":{"position":[[16,10]]},"229":{"position":[[35,10]]},"262":{"position":[[7,10]]}}}],["event",{"_index":282,"t":{"612":{"position":[[18,6]]},"622":{"position":[[5,6]]},"641":{"position":[[8,5]]},"953":{"position":[[7,5]]},"955":{"position":[[6,5]]},"997":{"position":[[15,5]]},"999":{"position":[[14,5]]},"1027":{"position":[[9,6]]},"1029":{"position":[[14,6]]},"1031":{"position":[[10,5]]},"1033":{"position":[[13,6]]},"1035":{"position":[[0,5]]},"1037":{"position":[[8,6]]},"1038":{"position":[[12,6]]},"1040":{"position":[[7,6]]},"1116":{"position":[[0,6]]},"1118":{"position":[[13,6]]},"1211":{"position":[[5,6]]},"1221":{"position":[[8,5]]},"1235":{"position":[[0,5]]},"1483":{"position":[[14,6]]},"1485":{"position":[[22,6]]},"1489":{"position":[[19,6]]}}}],["exampl",{"_index":229,"t":{"508":{"position":[[0,7]]},"513":{"position":[[0,7]]},"705":{"position":[[0,7]]},"961":{"position":[[8,7]]},"1023":{"position":[[0,8]]},"1086":{"position":[[0,8]]},"1088":{"position":[[0,7]]},"1090":{"position":[[0,7]]},"1152":{"position":[[0,7]]},"1650":{"position":[[23,8]]}}}],["execut",{"_index":288,"t":{"631":{"position":[[0,9]]},"1001":{"position":[[8,9]]}}}],["exercis",{"_index":468,"t":{"1529":{"position":[[12,8]]}}}],["exp",{"_index":517,"t":{"1853":{"position":[[0,3]]}}}],["expand",{"_index":240,"t":{"530":{"position":[[0,9]]}}}],["expens",{"_index":104,"t":{"211":{"position":[[4,7]]}}}],["explan",{"_index":376,"t":{"957":{"position":[[10,11]]}}}],["explicit",{"_index":261,"t":{"575":{"position":[[0,8]]}}}],["export",{"_index":154,"t":{"317":{"position":[[0,6]]},"1481":{"position":[[16,6]]}}}],["express",{"_index":308,"t":{"691":{"position":[[0,10]]},"697":{"position":[[0,10]]},"743":{"position":[[0,11]]}}}],["extern",{"_index":227,"t":{"503":{"position":[[30,8]]},"510":{"position":[[9,8]]},"816":{"position":[[0,8]]},"1609":{"position":[[4,8]]},"1624":{"position":[[0,8]]},"1632":{"position":[[21,8]]}}}],["extract",{"_index":268,"t":{"590":{"position":[[0,10]]}}}],["featur",{"_index":40,"t":{"101":{"position":[[4,8]]},"118":{"position":[[5,8]]},"137":{"position":[[4,8]]},"141":{"position":[[4,8]]},"159":{"position":[[4,8]]},"175":{"position":[[7,8]]},"182":{"position":[[5,8]]},"221":{"position":[[4,8]]},"227":{"position":[[4,8]]},"233":{"position":[[5,8]]},"239":{"position":[[4,8]]},"247":{"position":[[5,8]]},"253":{"position":[[4,8]]},"285":{"position":[[5,8]]},"560":{"position":[[5,8]]},"1517":{"position":[[0,8]]},"1565":{"position":[[9,8]]},"1761":{"position":[[5,8]]}}}],["feedback",{"_index":470,"t":{"1549":{"position":[[16,8]]}}}],["field",{"_index":22,"t":{"47":{"position":[[4,5]]},"67":{"position":[[16,5]]},"69":{"position":[[0,5]]},"75":{"position":[[0,5]]},"522":{"position":[[21,6]]},"812":{"position":[[0,5],[7,5]]},"818":{"position":[[0,5]]},"827":{"position":[[0,5],[21,5]]},"908":{"position":[[0,5]]},"1134":{"position":[[0,5]]},"1381":{"position":[[10,6]]},"1383":{"position":[[7,6]]},"1385":{"position":[[17,6]]},"1387":{"position":[[16,6]]},"1395":{"position":[[12,5]]},"1479":{"position":[[0,5]]},"1595":{"position":[[10,6]]},"1597":{"position":[[10,5]]},"1601":{"position":[[4,5]]},"1603":{"position":[[14,5]]},"1636":{"position":[[4,5]]},"1638":{"position":[[10,5]]},"1640":{"position":[[16,5]]},"1642":{"position":[[20,5]]},"1644":{"position":[[24,6]]},"1670":{"position":[[12,5]]},"1708":{"position":[[9,6]]},"1733":{"position":[[0,5]]}}}],["file",{"_index":164,"t":{"349":{"position":[[25,4]]},"412":{"position":[[6,4]]},"884":{"position":[[30,4]]},"928":{"position":[[21,5]]},"1122":{"position":[[9,5]]},"1225":{"position":[[20,4]]},"1503":{"position":[[9,5]]},"1505":{"position":[[10,5]]}}}],["fill",{"_index":133,"t":{"292":{"position":[[0,4]]}}}],["filter",{"_index":239,"t":{"528":{"position":[[17,9]]},"747":{"position":[[0,7]]},"749":{"position":[[0,6]]},"751":{"position":[[0,6]]},"1080":{"position":[[6,7]]},"1189":{"position":[[6,6]]},"1193":{"position":[[9,7]]}}}],["find",{"_index":394,"t":{"1064":{"position":[[0,7]]},"1066":{"position":[[0,4]]},"1068":{"position":[[0,4]]},"1171":{"position":[[1,4]]},"1884":{"position":[[0,4]]}}}],["findon",{"_index":395,"t":{"1070":{"position":[[0,7]]},"1173":{"position":[[1,7]]}}}],["first",{"_index":472,"t":{"1585":{"position":[[18,5]]}}}],["floor",{"_index":518,"t":{"1855":{"position":[[0,5]]}}}],["flow",{"_index":127,"t":{"275":{"position":[[0,4]]},"637":{"position":[[0,4]]}}}],["folder",{"_index":370,"t":{"928":{"position":[[30,7]]},"1227":{"position":[[25,6]]}}}],["form",{"_index":126,"t":{"273":{"position":[[0,4]]},"464":{"position":[[20,4]]},"781":{"position":[[0,4]]}}}],["format",{"_index":243,"t":{"532":{"position":[[10,9]]},"586":{"position":[[34,6]]},"1650":{"position":[[12,10]]}}}],["formula",{"_index":476,"t":{"1597":{"position":[[28,8]]},"1603":{"position":[[32,8]]},"1668":{"position":[[4,7]]},"1670":{"position":[[4,7]]},"1672":{"position":[[4,7]]},"1674":{"position":[[17,7]]},"1725":{"position":[[10,8]]},"1727":{"position":[[0,7]]},"1729":{"position":[[14,7]]}}}],["foundat",{"_index":274,"t":{"600":{"position":[[20,10]]}}}],["framework",{"_index":306,"t":{"683":{"position":[[18,9]]},"985":{"position":[[28,9]]}}}],["function",{"_index":312,"t":{"699":{"position":[[0,9],[20,9]]},"959":{"position":[[24,9]]},"1084":{"position":[[6,9]]},"1672":{"position":[[12,9]]},"1682":{"position":[[11,8]]},"1735":{"position":[[0,8]]},"1800":{"position":[[14,9]]},"1833":{"position":[[8,9]]},"1848":{"position":[[13,9]]},"1875":{"position":[[5,9]]},"1892":{"position":[[5,9]]},"1913":{"position":[[9,9]]},"1916":{"position":[[5,9]]}}}],["further",{"_index":70,"t":{"151":{"position":[[0,7]]},"361":{"position":[[0,7]]}}}],["gather",{"_index":469,"t":{"1549":{"position":[[9,6]]}}}],["gener",{"_index":283,"t":{"614":{"position":[[11,7]]}}}],["get",{"_index":456,"t":{"1463":{"position":[[0,7]]}}}],["github",{"_index":359,"t":{"870":{"position":[[36,6]]},"1245":{"position":[[22,6]]}}}],["gitpod",{"_index":160,"t":{"338":{"position":[[13,6]]},"1280":{"position":[[9,6]]}}}],["graphql",{"_index":208,"t":{"438":{"position":[[4,7]]},"494":{"position":[[0,7]]},"516":{"position":[[0,7]]},"655":{"position":[[10,7]]},"1163":{"position":[[8,7]]}}}],["greater",{"_index":499,"t":{"1787":{"position":[[3,7]]},"1791":{"position":[[4,7]]}}}],["gw",{"_index":292,"t":{"651":{"position":[[12,2]]}}}],["hand",{"_index":255,"t":{"564":{"position":[[0,5]]}}}],["handl",{"_index":335,"t":{"793":{"position":[[19,8]]}}}],["hcm",{"_index":78,"t":{"165":{"position":[[18,3]]}}}],["help",{"_index":429,"t":{"1291":{"position":[[5,4]]}}}],["highlight",{"_index":67,"t":{"143":{"position":[[8,10]]},"161":{"position":[[8,10]]},"184":{"position":[[4,10]]},"241":{"position":[[8,10]]},"287":{"position":[[4,10]]},"369":{"position":[[0,10]]},"1763":{"position":[[4,10]]}}}],["histori",{"_index":153,"t":{"315":{"position":[[24,7]]},"1479":{"position":[[6,7]]}}}],["holiday",{"_index":88,"t":{"191":{"position":[[0,8]]}}}],["hour",{"_index":505,"t":{"1811":{"position":[[0,4]]}}}],["html",{"_index":325,"t":{"741":{"position":[[10,4]]}}}],["hyperlink",{"_index":530,"t":{"1886":{"position":[[0,9]]}}}],["ident",{"_index":218,"t":{"472":{"position":[[34,8]]},"474":{"position":[[25,8]]}}}],["ignor",{"_index":412,"t":{"1187":{"position":[[0,6]]}}}],["implement",{"_index":277,"t":{"602":{"position":[[24,12]]}}}],["import",{"_index":7,"t":{"13":{"position":[[4,6]]},"788":{"position":[[16,9]]},"1257":{"position":[[0,9]]},"1481":{"position":[[5,6]]},"1515":{"position":[[15,10]]}}}],["includ",{"_index":79,"t":{"165":{"position":[[22,7]]},"1888":{"position":[[0,8]]}}}],["info",{"_index":1,"t":{"5":{"position":[[12,4]]}}}],["inform",{"_index":134,"t":{"292":{"position":[[22,11]]},"1213":{"position":[[12,11]]},"1468":{"position":[[18,11]]},"1593":{"position":[[6,11]]}}}],["initi",{"_index":260,"t":{"571":{"position":[[3,12]]},"573":{"position":[[10,14]]},"635":{"position":[[0,14]]}}}],["inquiri",{"_index":150,"t":{"312":{"position":[[23,7]]}}}],["insert",{"_index":390,"t":{"1048":{"position":[[0,6]]},"1175":{"position":[[1,6]]}}}],["instal",{"_index":5,"t":{"11":{"position":[[4,9]]},"149":{"position":[[0,7]]},"450":{"position":[[0,10]]},"452":{"position":[[0,10]]},"805":{"position":[[12,12]]},"851":{"position":[[0,12]]},"856":{"position":[[16,12]]},"860":{"position":[[19,12]]},"870":{"position":[[18,12]]},"918":{"position":[[0,10]]},"920":{"position":[[0,10]]},"1249":{"position":[[4,7]]},"1287":{"position":[[0,12]]},"1314":{"position":[[3,7]]},"1316":{"position":[[3,7]]},"1318":{"position":[[3,7]]},"1320":{"position":[[3,7]]},"1339":{"position":[[0,7]]}}}],["instanc",{"_index":161,"t":{"340":{"position":[[4,8]]},"653":{"position":[[8,8]]},"1167":{"position":[[7,8]]}}}],["integr",{"_index":51,"t":{"110":{"position":[[0,11]]},"131":{"position":[[18,11]]},"374":{"position":[[14,11]]},"400":{"position":[[4,11]]},"628":{"position":[[0,11]]},"1437":{"position":[[5,11]]}}}],["interfac",{"_index":181,"t":{"386":{"position":[[12,9]]},"456":{"position":[[0,9]]},"573":{"position":[[25,9]]},"600":{"position":[[52,10]]},"669":{"position":[[0,9]]},"1148":{"position":[[13,9]]},"1391":{"position":[[24,9]]},"1449":{"position":[[12,9]]},"1466":{"position":[[23,9]]},"1470":{"position":[[5,9]]}}}],["internation",{"_index":379,"t":{"983":{"position":[[4,20]]},"1154":{"position":[[8,20]]},"1156":{"position":[[9,20]]}}}],["interv",{"_index":87,"t":{"189":{"position":[[23,9]]}}}],["intranet",{"_index":158,"t":{"336":{"position":[[4,8]]}}}],["introduct",{"_index":128,"t":{"281":{"position":[[0,12]]},"556":{"position":[[0,12]]},"731":{"position":[[0,12]]},"784":{"position":[[0,12]]},"1283":{"position":[[0,12]]},"1513":{"position":[[0,12]]}}}],["intuit",{"_index":41,"t":{"102":{"position":[[0,9]]}}}],["invoic",{"_index":105,"t":{"213":{"position":[[4,7]]},"294":{"position":[[0,7]]},"298":{"position":[[0,7]]},"299":{"position":[[0,7]]},"301":{"position":[[7,7]]},"303":{"position":[[0,7]]}}}],["invok",{"_index":293,"t":{"655":{"position":[[3,6]]},"657":{"position":[[3,6]]},"659":{"position":[[0,6]]},"661":{"position":[[0,6]]}}}],["isblank",{"_index":514,"t":{"1842":{"position":[[0,7]]}}}],["ispickv",{"_index":531,"t":{"1890":{"position":[[0,9]]}}}],["issu",{"_index":60,"t":{"123":{"position":[[0,5]]}}}],["javascript",{"_index":326,"t":{"745":{"position":[[0,10]]}}}],["js",{"_index":404,"t":{"1098":{"position":[[16,2]]},"1314":{"position":[[16,2]]}}}],["json",{"_index":361,"t":{"884":{"position":[[25,4]]},"1267":{"position":[[8,4]]}}}],["key",{"_index":39,"t":{"101":{"position":[[0,3]]},"137":{"position":[[0,3]]},"141":{"position":[[0,3]]},"159":{"position":[[0,3]]},"165":{"position":[[0,3]]},"184":{"position":[[0,3]]},"221":{"position":[[0,3]]},"227":{"position":[[0,3]]},"239":{"position":[[0,3]]},"253":{"position":[[0,3]]},"287":{"position":[[0,3]]},"476":{"position":[[22,3]]},"602":{"position":[[17,3]]},"1231":{"position":[[6,4]]},"1331":{"position":[[14,3]]},"1763":{"position":[[0,3]]}}}],["king",{"_index":37,"t":{"93":{"position":[[13,4]]},"329":{"position":[[13,4]]}}}],["label",{"_index":12,"t":{"17":{"position":[[10,5]]}}}],["languag",{"_index":411,"t":{"1150":{"position":[[10,9]]}}}],["layout",{"_index":276,"t":{"602":{"position":[[5,6]]},"943":{"position":[[5,7]]},"1395":{"position":[[18,6]]},"1613":{"position":[[9,7]]},"1716":{"position":[[12,7]]},"1718":{"position":[[12,7]]},"1722":{"position":[[46,7]]}}}],["leav",{"_index":94,"t":{"196":{"position":[[0,5]]},"197":{"position":[[8,5]]}}}],["left",{"_index":532,"t":{"1895":{"position":[[0,4]]}}}],["len",{"_index":533,"t":{"1897":{"position":[[0,3]]}}}],["less",{"_index":498,"t":{"1785":{"position":[[3,4]]},"1789":{"position":[[4,4]]}}}],["lesson",{"_index":449,"t":{"1415":{"position":[[4,6]]},"1417":{"position":[[4,6]]},"1419":{"position":[[4,6]]},"1421":{"position":[[4,6]]},"1529":{"position":[[5,6]]}}}],["level",{"_index":32,"t":{"69":{"position":[[6,5]]},"73":{"position":[[7,5]]},"75":{"position":[[6,5]]},"77":{"position":[[7,5]]},"104":{"position":[[6,5]]}}}],["lifecycl",{"_index":109,"t":{"223":{"position":[[32,9]]},"1007":{"position":[[8,9]]}}}],["line",{"_index":410,"t":{"1148":{"position":[[8,4]]}}}],["link",{"_index":477,"t":{"1624":{"position":[[9,4]]}}}],["linkag",{"_index":297,"t":{"667":{"position":[[6,7]]},"669":{"position":[[10,7]]}}}],["list",{"_index":212,"t":{"458":{"position":[[4,4]]},"751":{"position":[[7,4]]},"779":{"position":[[0,4]]},"941":{"position":[[0,4]]},"1205":{"position":[[0,4]]},"1207":{"position":[[0,4]]},"1209":{"position":[[0,4]]},"1211":{"position":[[0,4]]},"1215":{"position":[[0,4]]},"1229":{"position":[[0,4]]},"1393":{"position":[[12,4]]},"1497":{"position":[[5,5]]},"1579":{"position":[[0,4]]},"1611":{"position":[[4,4]]},"1720":{"position":[[18,5]]}}}],["listen",{"_index":381,"t":{"995":{"position":[[0,9]]},"1235":{"position":[[6,8]]}}}],["listento",{"_index":374,"t":{"951":{"position":[[0,8]]}}}],["listview",{"_index":407,"t":{"1136":{"position":[[0,8]]}}}],["liter",{"_index":489,"t":{"1731":{"position":[[0,7]]}}}],["ln",{"_index":519,"t":{"1857":{"position":[[0,2]]}}}],["load",{"_index":417,"t":{"1225":{"position":[[0,4]]},"1227":{"position":[[0,4]]}}}],["local",{"_index":195,"t":{"412":{"position":[[0,5]]}}}],["locat",{"_index":93,"t":{"194":{"position":[[33,9]]}}}],["log",{"_index":10,"t":{"15":{"position":[[10,4]]},"503":{"position":[[0,7]]},"610":{"position":[[8,3]]},"854":{"position":[[8,3]]},"886":{"position":[[3,3]]},"1859":{"position":[[0,3]]}}}],["logic",{"_index":496,"t":{"1780":{"position":[[0,7]]},"1833":{"position":[[0,7]]}}}],["login",{"_index":189,"t":{"406":{"position":[[0,5]]},"472":{"position":[[9,5]]},"510":{"position":[[0,5]]},"1377":{"position":[[0,5]]},"1464":{"position":[[0,5]]}}}],["logo",{"_index":15,"t":{"35":{"position":[[4,4]]}}}],["lookup",{"_index":450,"t":{"1431":{"position":[[0,6]]},"1700":{"position":[[0,6]]}}}],["low",{"_index":72,"t":{"155":{"position":[[0,3]]},"683":{"position":[[9,3]]},"1311":{"position":[[0,3]]}}}],["lower",{"_index":534,"t":{"1899":{"position":[[0,5]]}}}],["lpad",{"_index":535,"t":{"1901":{"position":[[0,4]]}}}],["mainten",{"_index":171,"t":{"359":{"position":[[12,11]]}}}],["manag",{"_index":2,"t":{"7":{"position":[[4,6]]},"9":{"position":[[4,6]]},"27":{"position":[[9,6]]},"57":{"position":[[12,7]]},"121":{"position":[[5,10]]},"125":{"position":[[5,10]]},"167":{"position":[[13,10]]},"193":{"position":[[9,10]]},"196":{"position":[[33,10]]},"207":{"position":[[17,10]]},"213":{"position":[[12,10]]},"217":{"position":[[11,10]]},"223":{"position":[[42,10]]},"254":{"position":[[18,10]]},"258":{"position":[[16,10]]},"260":{"position":[[12,10]]},"264":{"position":[[20,10]]},"298":{"position":[[8,10]]},"376":{"position":[[15,10]]},"378":{"position":[[26,10]]},"841":{"position":[[15,7]]},"843":{"position":[[0,7]]},"847":{"position":[[10,7]]},"890":{"position":[[11,10]]},"898":{"position":[[11,10]]},"1347":{"position":[[24,10]]},"1407":{"position":[[13,8]]},"1468":{"position":[[0,8]]},"1472":{"position":[[5,10]]},"1475":{"position":[[20,10]]},"1485":{"position":[[13,8]]},"1489":{"position":[[0,8]]},"1491":{"position":[[28,10]]},"1493":{"position":[[5,10]]},"1501":{"position":[[24,10]]},"1503":{"position":[[0,8]]},"1535":{"position":[[23,7]]}}}],["manual",{"_index":140,"t":{"301":{"position":[[0,6]]}}}],["master",{"_index":451,"t":{"1433":{"position":[[0,6]]},"1698":{"position":[[0,6]]}}}],["mathemat",{"_index":491,"t":{"1767":{"position":[[0,12]]},"1848":{"position":[[0,12]]}}}],["max",{"_index":520,"t":{"1861":{"position":[[0,3]]}}}],["mceil",{"_index":521,"t":{"1863":{"position":[[0,8]]}}}],["member",{"_index":354,"t":{"862":{"position":[[20,7]]}}}],["menu",{"_index":406,"t":{"1126":{"position":[[20,4]]},"1144":{"position":[[23,4]]}}}],["messag",{"_index":409,"t":{"1146":{"position":[[7,7]]}}}],["metadata",{"_index":191,"t":{"408":{"position":[[0,8]]},"496":{"position":[[0,8]]},"786":{"position":[[14,8]]},"788":{"position":[[7,8]]},"790":{"position":[[13,8]]},"791":{"position":[[0,8]]},"793":{"position":[[28,8]]},"795":{"position":[[10,8]]},"801":{"position":[[4,8]]},"803":{"position":[[16,8]]},"916":{"position":[[8,8]]},"922":{"position":[[6,8]]},"924":{"position":[[20,8]]},"926":{"position":[[7,8]]},"1019":{"position":[[0,8]]},"1130":{"position":[[0,8]]},"1336":{"position":[[6,8]]}}}],["method",{"_index":92,"t":{"194":{"position":[[21,7]]},"1169":{"position":[[5,7]]}}}],["metric",{"_index":418,"t":{"1229":{"position":[[5,7]]}}}],["mfloor",{"_index":522,"t":{"1865":{"position":[[0,6]]}}}],["micro",{"_index":184,"t":{"398":{"position":[[0,5]]},"755":{"position":[[9,5]]},"757":{"position":[[14,5]]},"773":{"position":[[17,5]]},"1561":{"position":[[15,5]]},"1587":{"position":[[4,5]]},"1626":{"position":[[0,5]]}}}],["microservic",{"_index":183,"t":{"396":{"position":[[8,12]]},"985":{"position":[[14,13]]},"1094":{"position":[[12,13]]}}}],["mid",{"_index":536,"t":{"1903":{"position":[[0,3]]}}}],["mileston",{"_index":38,"t":{"95":{"position":[[4,9]]}}}],["millisecond",{"_index":506,"t":{"1813":{"position":[[0,11]]}}}],["min",{"_index":523,"t":{"1867":{"position":[[0,3]]}}}],["minut",{"_index":507,"t":{"1815":{"position":[[0,6]]}}}],["mixin",{"_index":405,"t":{"1102":{"position":[[0,6]]}}}],["mobil",{"_index":50,"t":{"108":{"position":[[0,6]]}}}],["mod",{"_index":524,"t":{"1869":{"position":[[0,3]]}}}],["modif",{"_index":148,"t":{"310":{"position":[[14,12]]}}}],["modifi",{"_index":245,"t":{"540":{"position":[[0,9]]},"1052":{"position":[[0,9]]},"1385":{"position":[[0,9]]}}}],["modular",{"_index":180,"t":{"380":{"position":[[3,7]]}}}],["molecul",{"_index":380,"t":{"985":{"position":[[4,9]]}}}],["mongodb",{"_index":435,"t":{"1316":{"position":[[11,7]]}}}],["month",{"_index":508,"t":{"1817":{"position":[[0,5]]}}}],["more",{"_index":287,"t":{"622":{"position":[[0,4]]},"624":{"position":[[0,4]]}}}],["msg",{"_index":295,"t":{"659":{"position":[[13,3]]}}}],["multi",{"_index":44,"t":{"104":{"position":[[0,5]]}}}],["multipl",{"_index":494,"t":{"1772":{"position":[[2,14]]}}}],["name",{"_index":301,"t":{"673":{"position":[[32,5]]},"703":{"position":[[17,5]]},"852":{"position":[[27,4]]}}}],["namespac",{"_index":271,"t":{"592":{"position":[[0,9]]},"1100":{"position":[[0,9]]}}}],["nativ",{"_index":317,"t":{"708":{"position":[[5,6]]}}}],["navig",{"_index":430,"t":{"1295":{"position":[[0,10]]},"1377":{"position":[[10,10]]},"1464":{"position":[[10,10]]}}}],["need",{"_index":356,"t":{"864":{"position":[[25,6]]}}}],["new",{"_index":422,"t":{"1247":{"position":[[13,3]]},"1537":{"position":[[17,3]]},"1561":{"position":[[11,3]]},"1619":{"position":[[9,3]]},"1656":{"position":[[9,3]]}}}],["next",{"_index":228,"t":{"506":{"position":[[0,4]]}}}],["node",{"_index":223,"t":{"484":{"position":[[4,4]]},"628":{"position":[[14,4]]},"639":{"position":[[8,4]]},"1009":{"position":[[0,5]]},"1205":{"position":[[5,5]]},"1314":{"position":[[11,4]]}}}],["note",{"_index":377,"t":{"963":{"position":[[0,5]]},"1694":{"position":[[2,4]]}}}],["notif",{"_index":49,"t":{"106":{"position":[[23,13]]},"306":{"position":[[24,12]]},"418":{"position":[[5,13]]},"829":{"position":[[9,13],[32,13]]}}}],["notifi",{"_index":353,"t":{"862":{"position":[[8,6]]}}}],["now",{"_index":483,"t":{"1680":{"position":[[9,3]]},"1819":{"position":[[0,3]]}}}],["npm",{"_index":358,"t":{"868":{"position":[[12,3]]},"878":{"position":[[3,3]]},"886":{"position":[[18,3]]},"896":{"position":[[14,3]]}}}],["number",{"_index":479,"t":{"1640":{"position":[[9,6]]},"1650":{"position":[[5,6]]}}}],["object",{"_index":21,"t":{"45":{"position":[[4,6]]},"73":{"position":[[0,6]]},"384":{"position":[[7,7]]},"522":{"position":[[9,7]]},"810":{"position":[[0,6],[8,6]]},"823":{"position":[[0,6],[24,6]]},"906":{"position":[[0,6]]},"995":{"position":[[10,7]]},"1124":{"position":[[0,7]]},"1132":{"position":[[0,6]]},"1167":{"position":[[0,6]]},"1349":{"position":[[31,7]]},"1351":{"position":[[38,7]]},"1373":{"position":[[21,7]]},"1375":{"position":[[29,6]]},"1379":{"position":[[13,6]]},"1389":{"position":[[18,6]]},"1407":{"position":[[32,6]]},"1415":{"position":[[23,7]]},"1425":{"position":[[23,6]]},"1427":{"position":[[31,7]]},"1429":{"position":[[16,6]]},"1435":{"position":[[13,6]]},"1511":{"position":[[0,10]]},"1599":{"position":[[11,7]]},"1605":{"position":[[4,6]]},"1622":{"position":[[0,6]]},"1644":{"position":[[4,6]]},"1674":{"position":[[10,6]]},"1708":{"position":[[0,7]]},"1710":{"position":[[16,7]]},"1712":{"position":[[0,6]]},"1743":{"position":[[10,6]]},"1745":{"position":[[12,6]]}}}],["object_validation_rul",{"_index":340,"t":{"823":{"position":[[24,23]]}}}],["objectql",{"_index":294,"t":{"657":{"position":[[10,8]]},"981":{"position":[[4,8]]},"1088":{"position":[[17,8]]},"1090":{"position":[[17,8]]}}}],["obtain",{"_index":217,"t":{"472":{"position":[[22,6]]},"852":{"position":[[8,6]]}}}],["oidc",{"_index":201,"t":{"422":{"position":[[0,4]]}}}],["openapi",{"_index":209,"t":{"440":{"position":[[4,7]]}}}],["oper",{"_index":311,"t":{"697":{"position":[[11,10]]},"701":{"position":[[16,8]]},"1191":{"position":[[0,10]]},"1737":{"position":[[0,8]]},"1767":{"position":[[13,9]]},"1780":{"position":[[8,9]]},"1797":{"position":[[5,9]]}}}],["optim",{"_index":168,"t":{"355":{"position":[[18,12]]}}}],["option",{"_index":203,"t":{"426":{"position":[[10,7]]}}}],["orchestr",{"_index":286,"t":{"620":{"position":[[0,13]]}}}],["organ",{"_index":58,"t":{"119":{"position":[[8,12]]},"1593":{"position":[[40,12]]}}}],["other",{"_index":263,"t":{"581":{"position":[[3,6]]}}}],["out",{"_index":95,"t":{"196":{"position":[[7,6]]},"199":{"position":[[13,7]]}}}],["overview",{"_index":85,"t":{"181":{"position":[[0,8]]},"245":{"position":[[0,8]]},"434":{"position":[[4,8]]},"488":{"position":[[0,8]]},"679":{"position":[[4,8]]},"799":{"position":[[4,8]]},"821":{"position":[[0,8]]},"873":{"position":[[0,8]]},"935":{"position":[[0,8]]},"973":{"position":[[4,8]]},"1241":{"position":[[4,8]]},"1425":{"position":[[3,8]]},"1459":{"position":[[0,8]]},"1583":{"position":[[16,8]]},"1668":{"position":[[12,8]]}}}],["packag",{"_index":6,"t":{"11":{"position":[[14,8]]},"378":{"position":[[3,7]]},"394":{"position":[[0,7]]},"396":{"position":[[0,7]]},"733":{"position":[[25,8]]},"805":{"position":[[4,7]]},"807":{"position":[[4,7]]},"835":{"position":[[0,7]]},"837":{"position":[[7,8]]},"839":{"position":[[0,7]]},"841":{"position":[[0,7]]},"843":{"position":[[8,8]]},"845":{"position":[[9,8]]},"847":{"position":[[31,8]]},"852":{"position":[[19,7]]},"856":{"position":[[8,7]]},"858":{"position":[[19,7]]},"866":{"position":[[8,8]]},"868":{"position":[[24,8]]},"876":{"position":[[11,7]]},"884":{"position":[[17,7]]},"888":{"position":[[16,7]]},"892":{"position":[[21,7]]},"894":{"position":[[18,7]]},"975":{"position":[[4,7]]},"1094":{"position":[[0,8]]},"1098":{"position":[[0,7]]},"1263":{"position":[[8,8]]},"1267":{"position":[[0,7]]},"1297":{"position":[[12,7]]},"1338":{"position":[[12,8]]},"1341":{"position":[[4,8]]}}}],["page",{"_index":185,"t":{"398":{"position":[[6,4]]},"602":{"position":[[45,5]]},"675":{"position":[[28,4]]},"755":{"position":[[15,4]]},"757":{"position":[[20,4]]},"773":{"position":[[23,4]]},"775":{"position":[[12,5]]},"777":{"position":[[7,5]]},"779":{"position":[[5,5]]},"781":{"position":[[5,5]]},"943":{"position":[[0,4]]},"1397":{"position":[[19,5]]},"1561":{"position":[[21,4]]},"1563":{"position":[[14,4]]},"1565":{"position":[[25,4]]},"1569":{"position":[[15,4]]},"1573":{"position":[[17,4]]},"1575":{"position":[[12,5]]},"1577":{"position":[[7,5]]},"1579":{"position":[[5,5]]},"1587":{"position":[[10,4]]},"1613":{"position":[[4,4]]},"1626":{"position":[[6,4]]},"1716":{"position":[[7,4]]},"1718":{"position":[[7,4]]},"1722":{"position":[[41,4]]}}}],["pagin",{"_index":237,"t":{"524":{"position":[[17,10]]}}}],["paramet",{"_index":236,"t":{"524":{"position":[[6,9]]},"526":{"position":[[6,9]]},"528":{"position":[[6,9]]},"582":{"position":[[4,10]]},"749":{"position":[[7,10]]},"957":{"position":[[0,9]]},"993":{"position":[[8,9]]},"1035":{"position":[[6,9]]},"1082":{"position":[[22,9]]}}}],["parenthes",{"_index":314,"t":{"701":{"position":[[0,11]]}}}],["password",{"_index":206,"t":{"430":{"position":[[0,8]]}}}],["path",{"_index":372,"t":{"930":{"position":[[32,4]]},"1297":{"position":[[20,4]]}}}],["perform",{"_index":82,"t":{"171":{"position":[[4,11]]},"229":{"position":[[23,11]]}}}],["permiss",{"_index":19,"t":{"43":{"position":[[4,10]]},"45":{"position":[[11,11]]},"47":{"position":[[10,11]]},"49":{"position":[[16,11]]},"57":{"position":[[20,11]]},"73":{"position":[[23,10]]},"75":{"position":[[22,10]]},"765":{"position":[[12,11]]},"898":{"position":[[0,10]]},"904":{"position":[[0,10]]},"906":{"position":[[7,11],[20,10]]},"908":{"position":[[6,11],[19,10]]},"1183":{"position":[[5,10]]},"1361":{"position":[[27,11]]},"1399":{"position":[[23,11]]},"1401":{"position":[[8,11]]},"1543":{"position":[[20,11]]},"1628":{"position":[[4,11]]}}}],["permissionset",{"_index":362,"t":{"904":{"position":[[16,13]]}}}],["person",{"_index":457,"t":{"1466":{"position":[[0,13]]},"1468":{"position":[[9,8]]}}}],["philosophi",{"_index":254,"t":{"558":{"position":[[7,10]]}}}],["plan",{"_index":440,"t":{"1347":{"position":[[3,8]]},"1533":{"position":[[8,4]]}}}],["platform",{"_index":350,"t":{"854":{"position":[[30,8]]},"987":{"position":[[4,8]]},"1156":{"position":[[0,8]]},"1265":{"position":[[8,8]]},"1327":{"position":[[21,8]]}}}],["plugin",{"_index":366,"t":{"920":{"position":[[23,7]]},"1749":{"position":[[17,7]]},"1751":{"position":[[28,7]]}}}],["polici",{"_index":207,"t":{"430":{"position":[[9,6]]}}}],["post",{"_index":467,"t":{"1529":{"position":[[0,4]]}}}],["power",{"_index":323,"t":{"737":{"position":[[50,5]]},"1776":{"position":[[2,5]]}}}],["practic",{"_index":256,"t":{"564":{"position":[[9,8]]},"793":{"position":[[5,9]]},"1491":{"position":[[5,9]]},"1501":{"position":[[5,9]]},"1525":{"position":[[0,9]]},"1567":{"position":[[5,9]]}}}],["preced",{"_index":315,"t":{"701":{"position":[[25,10]]}}}],["prefix",{"_index":402,"t":{"1084":{"position":[[32,6]]}}}],["prepar",{"_index":132,"t":{"290":{"position":[[0,11]]},"349":{"position":[[3,7]]},"504":{"position":[[0,11]]},"880":{"position":[[0,12]]},"916":{"position":[[0,7]]}}}],["prerequisit",{"_index":68,"t":{"147":{"position":[[0,13]]},"346":{"position":[[0,13]]},"448":{"position":[[0,13]]},"1285":{"position":[[0,13]]}}}],["preview",{"_index":446,"t":{"1389":{"position":[[3,10]]}}}],["privat",{"_index":357,"t":{"866":{"position":[[0,7]]},"868":{"position":[[16,7]]},"892":{"position":[[13,7]]},"894":{"position":[[10,7]]},"896":{"position":[[20,7]]}}}],["procedur",{"_index":98,"t":{"197":{"position":[[14,10]]}}}],["process",{"_index":144,"t":{"305":{"position":[[23,7]]},"327":{"position":[[13,9]]},"444":{"position":[[4,7]]},"511":{"position":[[0,7]]},"705":{"position":[[14,10]]},"831":{"position":[[9,9],[19,7]]},"882":{"position":[[11,7]]},"1269":{"position":[[23,7]]},"1557":{"position":[[19,7]]}}}],["process_definit",{"_index":344,"t":{"831":{"position":[[19,18]]}}}],["product",{"_index":65,"t":{"133":{"position":[[0,7]]},"143":{"position":[[0,7]]},"161":{"position":[[0,7]]},"177":{"position":[[0,7]]},"241":{"position":[[0,7]]},"1547":{"position":[[18,10]]}}}],["profil",{"_index":18,"t":{"41":{"position":[[4,8]]},"73":{"position":[[43,8]]},"75":{"position":[[42,8]]},"902":{"position":[[0,7],[9,7]]},"1718":{"position":[[23,8]]}}}],["project",{"_index":57,"t":{"119":{"position":[[0,7]]},"207":{"position":[[4,7]]},"254":{"position":[[10,7]]},"392":{"position":[[0,7]]},"628":{"position":[[23,7]]},"1154":{"position":[[0,7]]},"1245":{"position":[[11,7]]},"1247":{"position":[[17,7]]},"1251":{"position":[[8,7]]},"1255":{"position":[[18,7]]},"1257":{"position":[[19,8]]},"1261":{"position":[[0,7]]},"1295":{"position":[[18,7]]},"1347":{"position":[[16,7]]},"1349":{"position":[[12,8]]},"1357":{"position":[[16,8]]},"1427":{"position":[[22,8]]}}}],["properti",{"_index":262,"t":{"575":{"position":[[14,8]]},"598":{"position":[[33,10]]},"693":{"position":[[14,8]]},"1539":{"position":[[27,10]]},"1712":{"position":[[7,10]]}}}],["public",{"_index":114,"t":{"256":{"position":[[23,11]]}}}],["publish",{"_index":336,"t":{"807":{"position":[[12,10]]},"882":{"position":[[0,10]]},"888":{"position":[[3,7]]},"892":{"position":[[0,10]]},"896":{"position":[[0,10]]},"1569":{"position":[[0,10]]}}}],["push",{"_index":199,"t":{"418":{"position":[[0,4]]}}}],["queri",{"_index":235,"t":{"520":{"position":[[0,8]]},"522":{"position":[[0,8]]},"524":{"position":[[0,5]]},"526":{"position":[[0,5]]},"528":{"position":[[0,5]]},"530":{"position":[[28,5]]},"534":{"position":[[0,8]]},"1080":{"position":[[0,5]]},"1189":{"position":[[0,5]]},"1195":{"position":[[0,5]]},"1197":{"position":[[0,5]]}}}],["quick",{"_index":305,"t":{"681":{"position":[[4,5]]}}}],["rapid",{"_index":433,"t":{"1309":{"position":[[0,5]]}}}],["read",{"_index":71,"t":{"151":{"position":[[8,7]]},"361":{"position":[[8,7]]}}}],["real",{"_index":46,"t":{"106":{"position":[[0,4]]}}}],["recognit",{"_index":139,"t":{"299":{"position":[[24,11]]}}}],["record",{"_index":34,"t":{"77":{"position":[[0,6]]},"317":{"position":[[21,7]]},"540":{"position":[[10,6]]},"542":{"position":[[9,6]]},"777":{"position":[[0,6]]},"1038":{"position":[[0,6]]},"1397":{"position":[[12,6]]},"1473":{"position":[[23,7]]},"1475":{"position":[[0,6]]},"1577":{"position":[[0,6]]},"1708":{"position":[[21,7]]},"1718":{"position":[[35,6]]}}}],["rectriv",{"_index":369,"t":{"924":{"position":[[11,8]]}}}],["recur",{"_index":462,"t":{"1489":{"position":[[9,9]]}}}],["red",{"_index":224,"t":{"484":{"position":[[9,3]]},"628":{"position":[[19,3]]}}}],["redi",{"_index":436,"t":{"1318":{"position":[[11,5]]}}}],["refer",{"_index":307,"t":{"687":{"position":[[15,9]]},"987":{"position":[[21,9]]},"1733":{"position":[[6,9]]}}}],["regex",{"_index":540,"t":{"1914":{"position":[[0,5]]}}}],["regist",{"_index":437,"t":{"1329":{"position":[[0,8]]}}}],["reimburs",{"_index":131,"t":{"289":{"position":[[9,13]]},"292":{"position":[[8,13]]},"296":{"position":[[7,13]]},"305":{"position":[[0,13]]},"306":{"position":[[0,13]]},"310":{"position":[[0,13]]},"312":{"position":[[0,13]]},"313":{"position":[[6,13]]},"315":{"position":[[0,13]]},"317":{"position":[[7,13]]}}}],["relat",{"_index":205,"t":{"428":{"position":[[8,7]]},"530":{"position":[[10,7]]},"534":{"position":[[9,7]]},"816":{"position":[[21,7]]},"818":{"position":[[11,7]]},"1720":{"position":[[10,7]]}}}],["relationship",{"_index":443,"t":{"1351":{"position":[[16,13]]},"1417":{"position":[[23,13]]},"1425":{"position":[[30,13]]},"1429":{"position":[[23,13]]},"1431":{"position":[[7,12]]},"1433":{"position":[[14,12]]},"1435":{"position":[[20,13]]},"1605":{"position":[[11,13]]},"1644":{"position":[[11,12]]},"1743":{"position":[[17,13]]},"1745":{"position":[[19,13]]}}}],["remind",{"_index":466,"t":{"1525":{"position":[[21,8]]}}}],["render",{"_index":324,"t":{"741":{"position":[[0,9]]}}}],["repl",{"_index":414,"t":{"1203":{"position":[[0,4]]}}}],["report",{"_index":54,"t":{"114":{"position":[[0,9]]},"129":{"position":[[0,9]]},"1441":{"position":[[0,9]]}}}],["repositori",{"_index":360,"t":{"870":{"position":[[43,12]]},"896":{"position":[[28,10]]},"1278":{"position":[[6,10]]},"1293":{"position":[[13,10]]}}}],["request",{"_index":265,"t":{"586":{"position":[[16,7]]},"647":{"position":[[8,7]]}}}],["requir",{"_index":188,"t":{"404":{"position":[[0,8]]}}}],["resourc",{"_index":290,"t":{"633":{"position":[[7,8]]},"1122":{"position":[[0,8]]}}}],["respons",{"_index":147,"t":{"308":{"position":[[19,9]]},"649":{"position":[[8,8]]}}}],["rest",{"_index":226,"t":{"492":{"position":[[0,4]]},"977":{"position":[[4,4]]},"1112":{"position":[[0,4]]}}}],["restrict",{"_index":25,"t":{"53":{"position":[[4,11]]},"89":{"position":[[14,11]]},"910":{"position":[[0,11]]}}}],["restrictionrul",{"_index":363,"t":{"910":{"position":[[19,15]]}}}],["resubmiss",{"_index":149,"t":{"310":{"position":[[29,12]]}}}],["retriev",{"_index":432,"t":{"1303":{"position":[[7,8]]}}}],["return",{"_index":242,"t":{"532":{"position":[[0,9]]},"959":{"position":[[0,6]]}}}],["right",{"_index":537,"t":{"1905":{"position":[[0,5]]}}}],["roll",{"_index":480,"t":{"1642":{"position":[[4,4]]}}}],["round",{"_index":525,"t":{"1871":{"position":[[0,5]]}}}],["rout",{"_index":145,"t":{"306":{"position":[[14,7]]}}}],["router",{"_index":403,"t":{"1090":{"position":[[31,6]]}}}],["rpad",{"_index":538,"t":{"1907":{"position":[[0,4]]}}}],["rule",{"_index":26,"t":{"53":{"position":[[16,5]]},"55":{"position":[[12,5]]},"89":{"position":[[26,5]]},"187":{"position":[[19,5]]},"325":{"position":[[13,5]]},"823":{"position":[[18,5],[42,5]]},"825":{"position":[[9,5],[24,4]]},"910":{"position":[[12,5]]},"912":{"position":[[8,5]]},"1421":{"position":[[23,5]]},"1513":{"position":[[25,5]]},"1519":{"position":[[28,5]]},"1523":{"position":[[27,4]]},"1525":{"position":[[39,4]]},"1615":{"position":[[15,5]]}}}],["run",{"_index":424,"t":{"1251":{"position":[[4,3]]},"1280":{"position":[[0,3]]},"1327":{"position":[[9,3]]},"1338":{"position":[[0,3]]},"1341":{"position":[[0,3]]}}}],["runtim",{"_index":280,"t":{"610":{"position":[[0,7]]}}}],["s",{"_index":284,"t":{"616":{"position":[[21,1]]},"675":{"position":[[43,1]]},"896":{"position":[[18,1]]},"1593":{"position":[[23,1]]}}}],["s3",{"_index":196,"t":{"414":{"position":[[0,2]]}}}],["sampl",{"_index":421,"t":{"1245":{"position":[[4,6]]},"1293":{"position":[[6,6]]}}}],["save",{"_index":214,"t":{"464":{"position":[[0,4]]},"1545":{"position":[[8,4]]}}}],["scan",{"_index":136,"t":{"294":{"position":[[17,4]]},"299":{"position":[[8,8]]}}}],["scenario",{"_index":110,"t":{"249":{"position":[[12,9]]},"562":{"position":[[12,9]]},"1521":{"position":[[12,9]]}}}],["schedul",{"_index":202,"t":{"424":{"position":[[0,9]]}}}],["scope",{"_index":259,"t":{"567":{"position":[[21,5]]},"569":{"position":[[21,5]]},"571":{"position":[[25,5]]},"577":{"position":[[21,5]]}}}],["screen",{"_index":190,"t":{"406":{"position":[[6,6]]}}}],["search",{"_index":459,"t":{"1473":{"position":[[13,9]]}}}],["second",{"_index":509,"t":{"1821":{"position":[[0,6]]}}}],["secur",{"_index":33,"t":{"69":{"position":[[12,8]]},"73":{"position":[[13,8]]},"75":{"position":[[12,8]]},"77":{"position":[[13,8]]},"112":{"position":[[0,8]]},"266":{"position":[[10,8]]},"1361":{"position":[[14,8]]},"1363":{"position":[[0,8]]},"1399":{"position":[[3,8]]}}}],["see",{"_index":17,"t":{"39":{"position":[[16,4]]}}}],["send",{"_index":427,"t":{"1274":{"position":[[4,7]]}}}],["server",{"_index":367,"t":{"922":{"position":[[15,6]]},"1336":{"position":[[15,6]]}}}],["servic",{"_index":378,"t":{"975":{"position":[[12,7]]},"987":{"position":[[13,7]]},"1007":{"position":[[0,7]]},"1009":{"position":[[10,7]]},"1013":{"position":[[5,8]]},"1042":{"position":[[1,8]]},"1098":{"position":[[8,7]]},"1108":{"position":[[5,8]]},"1207":{"position":[[5,8]]},"1223":{"position":[[10,8]]},"1225":{"position":[[7,7]]},"1227":{"position":[[9,8]]},"1272":{"position":[[17,7]]}}}],["set",{"_index":20,"t":{"43":{"position":[[15,4]]},"73":{"position":[[34,4]]},"75":{"position":[[33,4]]},"187":{"position":[[0,7]]},"197":{"position":[[0,7]]},"894":{"position":[[0,7]]},"904":{"position":[[11,3]]},"930":{"position":[[0,3]]},"1126":{"position":[[0,7]]},"1144":{"position":[[0,7]]},"1297":{"position":[[0,3]]},"1361":{"position":[[3,7]]},"1401":{"position":[[0,7]]},"1468":{"position":[[34,8]]}}}],["setup",{"_index":182,"t":{"392":{"position":[[8,5]]},"922":{"position":[[0,5]]},"1243":{"position":[[16,5]]},"1333":{"position":[[0,5]]},"1334":{"position":[[0,5]]},"1336":{"position":[[0,5]]}}}],["share",{"_index":27,"t":{"55":{"position":[[4,7]]},"77":{"position":[[23,7]]},"912":{"position":[[0,7]]},"1487":{"position":[[9,7]]}}}],["sharerul",{"_index":364,"t":{"912":{"position":[[15,9]]}}}],["show",{"_index":415,"t":{"1213":{"position":[[0,4]]},"1291":{"position":[[0,4]]}}}],["simplest",{"_index":272,"t":{"596":{"position":[[4,8]]}}}],["simplic",{"_index":322,"t":{"737":{"position":[[35,10]]}}}],["sm",{"_index":426,"t":{"1272":{"position":[[13,3]]},"1274":{"position":[[0,3]]}}}],["sort",{"_index":238,"t":{"526":{"position":[[17,7]]}}}],["sourc",{"_index":173,"t":{"370":{"position":[[3,6]]},"390":{"position":[[0,6]]},"816":{"position":[[14,6]]},"1299":{"position":[[0,6]]},"1301":{"position":[[0,6]]},"1303":{"position":[[0,6]]},"1609":{"position":[[18,7]]},"1632":{"position":[[35,6]]}}}],["special",{"_index":89,"t":{"191":{"position":[[13,7]]},"703":{"position":[[0,7]]}}}],["specif",{"_index":213,"t":{"460":{"position":[[4,14]]},"928":{"position":[[12,8]]}}}],["specifi",{"_index":298,"t":{"673":{"position":[[3,10]]}}}],["sqrt",{"_index":526,"t":{"1873":{"position":[[0,4]]}}}],["sso",{"_index":222,"t":{"482":{"position":[[4,3]]}}}],["standard",{"_index":487,"t":{"1722":{"position":[[10,8]]}}}],["start",{"_index":165,"t":{"351":{"position":[[3,5]]},"462":{"position":[[0,5]]},"681":{"position":[[10,5]]},"1463":{"position":[[8,7]]}}}],["static",{"_index":289,"t":{"633":{"position":[[0,6]]}}}],["statu",{"_index":100,"t":{"201":{"position":[[13,6]]},"312":{"position":[[14,6]]},"313":{"position":[[20,6]]}}}],["steedo",{"_index":69,"t":{"149":{"position":[[8,7]]},"223":{"position":[[15,7]]},"229":{"position":[[15,7]]},"369":{"position":[[14,7]]},"390":{"position":[[31,7]]},"452":{"position":[[11,7]]},"490":{"position":[[9,7]]},"498":{"position":[[12,7]]},"503":{"position":[[17,7]]},"510":{"position":[[35,7]]},"639":{"position":[[0,7]]},"641":{"position":[[0,7]]},"643":{"position":[[0,7]]},"645":{"position":[[0,7]]},"647":{"position":[[0,7]]},"649":{"position":[[0,7]]},"651":{"position":[[0,7]]},"653":{"position":[[0,7]]},"710":{"position":[[0,7]]},"786":{"position":[[26,7]]},"790":{"position":[[25,7]]},"854":{"position":[[22,7]]},"876":{"position":[[3,7]]},"918":{"position":[[15,7]]},"1037":{"position":[[0,7]]},"1249":{"position":[[12,7]]},"1263":{"position":[[0,7]]},"1265":{"position":[[0,7]]},"1269":{"position":[[0,7]]},"1327":{"position":[[13,7]]},"1338":{"position":[[4,7]]},"1425":{"position":[[15,7]]},"1449":{"position":[[4,7]]},"1725":{"position":[[27,7]]},"1749":{"position":[[9,7]]},"1751":{"position":[[20,7]]}}}],["step",{"_index":163,"t":{"348":{"position":[[11,5]]},"851":{"position":[[13,5]]},"852":{"position":[[0,4]]},"854":{"position":[[0,4]]},"856":{"position":[[0,4]]},"858":{"position":[[0,4]]},"860":{"position":[[0,4]]},"862":{"position":[[0,4]]},"864":{"position":[[0,4]]},"1523":{"position":[[0,5]]},"1533":{"position":[[0,4]]},"1535":{"position":[[0,4]]},"1537":{"position":[[0,4]]},"1539":{"position":[[0,4]]},"1541":{"position":[[0,4]]},"1543":{"position":[[0,4]]},"1545":{"position":[[0,4]]},"1547":{"position":[[0,4]]},"1549":{"position":[[0,4]]},"1654":{"position":[[0,5]]}}}],["storag",{"_index":194,"t":{"410":{"position":[[11,7]]},"633":{"position":[[16,7]]}}}],["store",{"_index":473,"t":{"1593":{"position":[[0,5]]}}}],["stream",{"_index":384,"t":{"1021":{"position":[[0,9]]}}}],["string",{"_index":320,"t":{"737":{"position":[[9,7]]},"739":{"position":[[9,7]]},"741":{"position":[[29,7]]}}}],["structur",{"_index":333,"t":{"791":{"position":[[9,9]]},"835":{"position":[[8,9]]},"1261":{"position":[[8,9]]}}}],["style",{"_index":303,"t":{"675":{"position":[[12,6]]}}}],["submit",{"_index":137,"t":{"296":{"position":[[0,6]]},"466":{"position":[[0,10]]},"468":{"position":[[0,10]]}}}],["subscrib",{"_index":386,"t":{"1033":{"position":[[0,9]]},"1118":{"position":[[0,9]]}}}],["substitut",{"_index":539,"t":{"1909":{"position":[[0,10]]}}}],["subtabl",{"_index":244,"t":{"534":{"position":[[17,9]]}}}],["subtract",{"_index":493,"t":{"1770":{"position":[[2,11]]}}}],["summari",{"_index":101,"t":{"203":{"position":[[0,7]]},"1642":{"position":[[12,7]]}}}],["supplier",{"_index":106,"t":{"215":{"position":[[4,8]]},"260":{"position":[[3,8]]}}}],["support",{"_index":121,"t":{"262":{"position":[[29,7]]},"773":{"position":[[0,9]]},"864":{"position":[[13,7]]},"1150":{"position":[[0,9]]},"1573":{"position":[[0,9]]},"1743":{"position":[[0,9]]}}}],["sync",{"_index":478,"t":{"1632":{"position":[[13,4]]}}}],["synchron",{"_index":192,"t":{"408":{"position":[[9,15]]},"803":{"position":[[4,11]]},"916":{"position":[[17,11]]},"928":{"position":[[0,11]]},"930":{"position":[[16,15]]}}}],["syntax",{"_index":309,"t":{"691":{"position":[[11,6]]},"1015":{"position":[[0,6]]},"1110":{"position":[[0,6]]},"1189":{"position":[[13,6]]}}}],["system",{"_index":84,"t":{"175":{"position":[[0,6]]},"223":{"position":[[53,6]]},"229":{"position":[[46,6]]},"266":{"position":[[3,6]]},"268":{"position":[[0,6]]},"412":{"position":[[11,6]]},"1040":{"position":[[0,6]]},"1146":{"position":[[0,6]]},"1383":{"position":[[0,6]]},"1385":{"position":[[10,6]]}}}],["tab",{"_index":331,"t":{"763":{"position":[[9,4]]},"939":{"position":[[0,4]]},"1353":{"position":[[10,4]]},"1355":{"position":[[12,4]]},"1541":{"position":[[27,4]]},"1589":{"position":[[4,4]]},"1619":{"position":[[13,4]]},"1621":{"position":[[9,4]]},"1622":{"position":[[7,4]]},"1624":{"position":[[14,4]]},"1626":{"position":[[11,4]]},"1628":{"position":[[0,3]]}}}],["tabl",{"_index":241,"t":{"530":{"position":[[18,6]]}}}],["tailwindcss",{"_index":299,"t":{"673":{"position":[[14,11]]}}}],["target",{"_index":129,"t":{"283":{"position":[[0,6]]}}}],["task",{"_index":59,"t":{"121":{"position":[[0,4]]},"424":{"position":[[10,5]]},"1493":{"position":[[0,4]]},"1495":{"position":[[23,5]]},"1497":{"position":[[0,4]]},"1499":{"position":[[0,4]]},"1501":{"position":[[19,4]]},"1525":{"position":[[16,4]]}}}],["team",{"_index":61,"t":{"127":{"position":[[0,4]]},"372":{"position":[[3,4]]},"862":{"position":[[15,4]]}}}],["templat",{"_index":319,"t":{"737":{"position":[[0,8]]},"739":{"position":[[0,8]]},"741":{"position":[[20,8]]},"745":{"position":[[11,8]]},"1257":{"position":[[10,8]]}}}],["tender",{"_index":107,"t":{"217":{"position":[[4,6]]},"254":{"position":[[3,6]]},"256":{"position":[[3,6]]}}}],["terminolog",{"_index":455,"t":{"1461":{"position":[[19,11]]}}}],["test",{"_index":445,"t":{"1365":{"position":[[3,7]]},"1367":{"position":[[0,7]]},"1403":{"position":[[3,7]]},"1405":{"position":[[11,5]]},"1443":{"position":[[3,7]]},"1545":{"position":[[17,4]]}}}],["text",{"_index":316,"t":{"705":{"position":[[9,4]]},"1688":{"position":[[28,4]]},"1690":{"position":[[33,4]]},"1692":{"position":[[28,4]]},"1797":{"position":[[0,4]]},"1875":{"position":[[0,4]]},"1892":{"position":[[0,4]]},"1911":{"position":[[0,4]]},"1916":{"position":[[0,4]]}}}],["time",{"_index":47,"t":{"106":{"position":[[5,4]]},"125":{"position":[[0,4]]},"1676":{"position":[[15,4]]},"1684":{"position":[[24,4]]},"1686":{"position":[[24,4],[33,4]]},"1690":{"position":[[24,4]]},"1692":{"position":[[19,4]]},"1694":{"position":[[18,4],[27,4]]},"1800":{"position":[[9,4]]}}}],["timenow",{"_index":484,"t":{"1680":{"position":[[19,7]]},"1823":{"position":[[0,7]]}}}],["timevalu",{"_index":510,"t":{"1825":{"position":[[0,9]]}}}],["toconfig",{"_index":399,"t":{"1078":{"position":[[0,8]]}}}],["today",{"_index":482,"t":{"1680":{"position":[[0,5]]},"1827":{"position":[[0,5]]}}}],["todo",{"_index":441,"t":{"1349":{"position":[[25,5]]},"1375":{"position":[[16,5]]},"1407":{"position":[[26,5]]},"1427":{"position":[[12,5]]}}}],["tour",{"_index":458,"t":{"1470":{"position":[[15,4]]}}}],["track",{"_index":48,"t":{"106":{"position":[[10,8]]},"123":{"position":[[6,8]]},"201":{"position":[[20,8]]}}}],["transport",{"_index":439,"t":{"1334":{"position":[[6,11]]}}}],["tree",{"_index":273,"t":{"600":{"position":[[10,4]]},"602":{"position":[[0,4]]}}}],["tri",{"_index":159,"t":{"338":{"position":[[4,3]]}}}],["trigger",{"_index":28,"t":{"57":{"position":[[4,7]]},"614":{"position":[[0,10]]},"616":{"position":[[0,10]]},"618":{"position":[[0,10]]},"663":{"position":[[0,7]]},"949":{"position":[[0,7]]},"953":{"position":[[13,8]]},"955":{"position":[[12,8]]},"959":{"position":[[16,7]]},"961":{"position":[[0,7]]},"979":{"position":[[4,8]]},"991":{"position":[[9,8]]},"993":{"position":[[0,7]]},"997":{"position":[[0,7]]},"999":{"position":[[0,7]]},"1001":{"position":[[0,7]]},"1088":{"position":[[29,8]]},"1114":{"position":[[0,8]]},"1185":{"position":[[5,8]]},"1187":{"position":[[7,8]]},"1519":{"position":[[38,8]]}}}],["trim",{"_index":541,"t":{"1917":{"position":[[0,4]]}}}],["trip",{"_index":97,"t":{"196":{"position":[[28,4]]},"199":{"position":[[34,5]]}}}],["troubleshoot",{"_index":169,"t":{"357":{"position":[[0,15]]},"1305":{"position":[[0,15]]}}}],["type",{"_index":225,"t":{"490":{"position":[[0,5]]},"598":{"position":[[24,4]]},"695":{"position":[[11,5]]},"773":{"position":[[28,5]]},"818":{"position":[[6,4]]},"841":{"position":[[8,5]]},"1553":{"position":[[0,5]]},"1573":{"position":[[22,5]]},"1601":{"position":[[10,5]]},"1621":{"position":[[0,5]]},"1638":{"position":[[16,5]]},"1670":{"position":[[18,5]]},"1718":{"position":[[42,5]]},"1727":{"position":[[13,5]]}}}],["understand",{"_index":332,"t":{"786":{"position":[[0,13]]}}}],["uniqu",{"_index":474,"t":{"1593":{"position":[[25,6]]}}}],["unlock",{"_index":348,"t":{"841":{"position":[[27,8]]},"845":{"position":[[0,8]]},"847":{"position":[[22,8]]}}}],["up",{"_index":408,"t":{"1144":{"position":[[8,2]]},"1361":{"position":[[11,2]]},"1642":{"position":[[9,2]]}}}],["updat",{"_index":170,"t":{"359":{"position":[[0,7]]},"577":{"position":[[3,8]]},"579":{"position":[[3,8]]},"827":{"position":[[6,7],[27,7]]},"1054":{"position":[[0,6]]},"1177":{"position":[[1,6]]}}}],["upload",{"_index":135,"t":{"294":{"position":[[8,6]]},"1505":{"position":[[0,9]]}}}],["upper",{"_index":542,"t":{"1919":{"position":[[0,5]]}}}],["url",{"_index":264,"t":{"582":{"position":[[0,3]]}}}],["us",{"_index":35,"t":{"89":{"position":[[10,3]]},"474":{"position":[[0,3]]},"476":{"position":[[0,3]]},"659":{"position":[[7,5]]},"661":{"position":[[7,5]]},"1088":{"position":[[11,5]]},"1090":{"position":[[11,5]]},"1407":{"position":[[3,5]]},"1409":{"position":[[6,3]]},"1676":{"position":[[4,5]]},"1725":{"position":[[19,4]]}}}],["usag",{"_index":278,"t":{"606":{"position":[[6,5]]},"716":{"position":[[6,5]]},"720":{"position":[[6,5]]},"724":{"position":[[6,5]]},"728":{"position":[[6,5]]},"769":{"position":[[6,5]]},"1017":{"position":[[0,6]]},"1201":{"position":[[0,5]]}}}],["user",{"_index":3,"t":{"7":{"position":[[11,5]]},"27":{"position":[[16,5]]},"283":{"position":[[7,5]]},"386":{"position":[[7,4]]},"472":{"position":[[29,4]]},"474":{"position":[[20,4]]},"1391":{"position":[[19,4]]},"1466":{"position":[[18,4]]},"1470":{"position":[[0,4]]},"1543":{"position":[[15,4]]}}}],["usersess",{"_index":400,"t":{"1082":{"position":[[10,11]]}}}],["util",{"_index":452,"t":{"1435":{"position":[[3,9]]}}}],["valid",{"_index":211,"t":{"456":{"position":[[10,10]]},"823":{"position":[[7,10],[31,10]]},"1035":{"position":[[16,10]]},"1403":{"position":[[15,10]]},"1615":{"position":[[4,10]]},"1632":{"position":[[0,8]]}}}],["valu",{"_index":269,"t":{"590":{"position":[[11,6]]},"959":{"position":[[7,5]]},"1195":{"position":[[12,5]]},"1197":{"position":[[15,5]]},"1597":{"position":[[16,6]]},"1603":{"position":[[20,6]]},"1676":{"position":[[20,6]]},"1731":{"position":[[8,5]]},"1921":{"position":[[0,5]]}}}],["variabl",{"_index":310,"t":{"693":{"position":[[0,9]]},"703":{"position":[[8,8]]},"1140":{"position":[[7,9]]},"1215":{"position":[[17,9]]},"1333":{"position":[[18,8]]}}}],["verif",{"_index":143,"t":{"303":{"position":[[21,12]]},"474":{"position":[[34,12]]},"476":{"position":[[26,12]]}}}],["verifi",{"_index":167,"t":{"353":{"position":[[3,6]]},"860":{"position":[[8,6]]}}}],["version",{"_index":346,"t":{"839":{"position":[[8,7]]},"852":{"position":[[36,7]]},"890":{"position":[[3,7]]},"1507":{"position":[[0,7]]}}}],["via",{"_index":230,"t":{"510":{"position":[[31,3]]}}}],["view",{"_index":13,"t":{"27":{"position":[[0,4]]},"941":{"position":[[5,5]]},"1393":{"position":[[17,5]]},"1497":{"position":[[15,5]]},"1611":{"position":[[9,5]]}}}],["vs",{"_index":347,"t":{"841":{"position":[[23,2]]},"920":{"position":[[11,2]]},"1320":{"position":[[11,2]]}}}],["weekday",{"_index":511,"t":{"1829":{"position":[[0,7]]}}}],["white",{"_index":11,"t":{"17":{"position":[[4,5]]}}}],["work",{"_index":29,"t":{"63":{"position":[[14,4]]},"536":{"position":[[0,7]]},"790":{"position":[[0,7]]}}}],["workflow",{"_index":42,"t":{"102":{"position":[[10,8]]},"325":{"position":[[4,8]]},"388":{"position":[[10,9]]},"825":{"position":[[0,8],[15,8]]},"829":{"position":[[0,8],[23,8]]},"1421":{"position":[[14,8]]},"1439":{"position":[[15,9]]},"1513":{"position":[[16,8]]},"1519":{"position":[[19,8]]},"1523":{"position":[[18,8]]},"1525":{"position":[[30,8]]}}}],["workflow_notif",{"_index":343,"t":{"829":{"position":[[23,22]]}}}],["workflow_rul",{"_index":341,"t":{"825":{"position":[[15,13]]}}}],["year",{"_index":512,"t":{"1831":{"position":[[0,4]]}}}],["yml",{"_index":337,"t":{"810":{"position":[[15,3]]},"812":{"position":[[13,3]]},"902":{"position":[[17,3]]},"904":{"position":[[30,3]]},"906":{"position":[[31,3]]},"908":{"position":[[30,3]]},"910":{"position":[[35,3]]},"912":{"position":[[25,3]]}}}],["zone",{"_index":486,"t":{"1694":{"position":[[32,5]]}}}],["ๅบ็จ",{"_index":252,"t":{"553":{"position":[[3,2]]}}}],["ๆฅ่กจ",{"_index":210,"t":{"442":{"position":[[4,2]]},"549":{"position":[[0,2]]},"551":{"position":[[0,2]]}}}],["ๆฅๅฃ",{"_index":233,"t":{"518":{"position":[[0,2]]}}}],["ๆฐๆฎ",{"_index":250,"t":{"551":{"position":[[2,2]]}}}],["ๆฐๆฎ็ปๆ",{"_index":249,"t":{"549":{"position":[[2,4]]}}}],["็คบไพ",{"_index":251,"t":{"551":{"position":[[4,2]]},"553":{"position":[[5,2]]}}}],["็ปๆ",{"_index":248,"t":{"547":{"position":[[2,2]]}}}],["่ทๅ",{"_index":247,"t":{"545":{"position":[[0,2]]},"547":{"position":[[0,2]]}}}],["้ช่ฏ",{"_index":234,"t":{"518":{"position":[[2,2]]}}}]],"pipeline":["stemmer"]}},{"documents":[{"i":3,"t":"As a Steedos administratorโthat is, a user assigned to the Administrator profileโyouโre responsible for setting up your steedos organization, which means adding users and configuring the system for your needs.","s":"Set Up and Maintain Your Steedos Organization","u":"/admin","h":"","p":2},{"i":6,"t":"Use the Company Information page in Setup to track whatโs important about your companyโs organization in Steedos. This page contains the information that was provided when your company signed up with Steedos.","s":"๐๏ธ Company Info","u":"/admin/organization/","h":"","p":4},{"i":8,"t":"In Steedos, each user is uniquely identified with a username, password, and profile. Together with other settings, the profile determines which tasks a user can perform, what data the user can see, and what the user can do with the data.","s":"๐๏ธ Manage Users","u":"/admin/organization/","h":"","p":4},{"i":10,"t":"The Department Management feature allows you to easily manage and organize departments within your organization. With this feature, you can create, edit, and delete departments as well as assign employees to specific departments.","s":"๐๏ธ Manage Departments","u":"/admin/organization/","h":"","p":4},{"i":12,"t":"You can install packages into your Steedos organization, and then configure and manage them. To view the packages youโve installed, from Setup, select Installed Packages.","s":"๐๏ธ Installed Packages","u":"/admin/organization/","h":"","p":4},{"i":14,"t":"Steedos offers several ways to import your data. You can import up to 50,000 records into Steedos.","s":"๐๏ธ Import Data","u":"/admin/organization/","h":"","p":4},{"i":16,"t":"The audit log is the report of all the activities done in your Steedos account. It will capture and display events automatically by recording who performed an activity, what when, and where the activity was performed, along with other information such as IP address.","s":"๐๏ธ Audit logs","u":"/admin/organization/","h":"","p":4},{"i":18,"t":"White Label feature will allow you to remove the Steedos branding from the Steedos platform and add your own custom logo and text.","s":"๐๏ธ White Label","u":"/admin/organization/","h":"","p":4},{"i":20,"t":"The audit log is the report of all the activities done in your Steedos account. It will capture and display events automatically by recording who performed an activity, what when, and where the activity was performed, along with other information such as IP address. tip Available on: Professional Edition","s":"Audit logs","u":"/admin/organization/audit-logs","h":"","p":19},{"i":22,"t":"Use the Company Information page in Setup to track whatโs important about your companyโs organization in Steedos. This page contains the information that was provided when your company signed up with Steedos.","s":"Company Info","u":"/admin/organization/company-info","h":"","p":21},{"i":24,"t":"Steedos offers several ways to import your data. You can import up to 50,000 records into Steedos.","s":"Import Data Into Steedos","u":"/admin/organization/import","h":"","p":23},{"i":26,"t":"In Steedos, each user is uniquely identified with a username, password, and profile. Together with other settings, the profile determines which tasks a user can perform, what data the user can see, and what the user can do with the data.","s":"Manage Users","u":"/admin/organization/users","h":"","p":25},{"i":28,"t":"In the user list, you can view and manage all users in your org. From the user list, you can: Create one user or multiple users. Reset passwords for selected users. Edit a user. View a userโs detail page.","s":"View and Manage Users","u":"/admin/organization/users","h":"#view-and-manage-users","p":25},{"i":30,"t":"The Department Management feature allows you to easily manage and organize departments within your organization. With this feature, you can create, edit, and delete departments as well as assign employees to specific departments.","s":"Manage Departments","u":"/admin/organization/organizations","h":"","p":29},{"i":32,"t":"You can install packages into your Steedos organization, and then configure and manage them. To view the packages youโve installed, from Setup, select Installed Packages.","s":"Installed Packages","u":"/admin/organization/installed-packages","h":"","p":31},{"i":34,"t":"White Label feature will allow you to remove the Steedos branding from the Steedos platform and add your own custom logo and text. tip Available on: Professional Edition This feature allows you to rebrand the following:","s":"White Label","u":"/admin/organization/white-label","h":"","p":33},{"i":36,"t":"Logo on login screen and main app.","s":"App Logo","u":"/admin/organization/white-label","h":"#app-logo","p":33},{"i":38,"t":"Steedos provides a flexible, layered data sharing design that lets admins control user access to data. Managing data access enhances security by exposing only data thatโs relevant to users. Use permission sets, permission set groups, and profiles to control the objects and fields users can access. Use sharing rules to specify the individual records that users can view and edit.","s":"Manage Data Access","u":"/admin/permissions/","h":"","p":37},{"i":40,"t":"Steedos data sharing lets you expose specific data sets to individuals and groups of users. Permission sets, permission set groups, and profiles provide object-level and field-level security by controlling access. Record-level sharing settings, user roles, and sharing rules control the individual records that users can view and edit.","s":"๐๏ธ Control Who Sees What","u":"/admin/permissions/","h":"","p":37},{"i":42,"t":"Profiles define how users access objects and data, and what they can do within the application. When you create users, you assign a profile to each one.","s":"๐๏ธ Profiles","u":"/admin/permissions/","h":"","p":37},{"i":44,"t":"A permission set is a collection of settings and permissions that give users access to various tools and functions. Permission sets extend usersโ functional access without changing their profiles and are the recommended way to manage your usersโ permissions.","s":"๐๏ธ Permission Sets","u":"/admin/permissions/","h":"","p":37},{"i":46,"t":"Object permissions specify the base-level access users have to create, read, edit, and delete records for each object. You can manage object permissions in permission sets and profiles.","s":"๐๏ธ Object Permissions","u":"/admin/permissions/","h":"","p":37},{"i":48,"t":"Field permissions specify the access level for each field in an object.","s":"๐๏ธ Field Permissions","u":"/admin/permissions/","h":"","p":37},{"i":50,"t":"Steedos supports application authorization based on permission sets, which can be used to restrict users under a certain permission set/profile to only see certain applications.","s":"๐๏ธ Application Permissions","u":"/admin/permissions/","h":"","p":37},{"i":52,"t":"Divisions let you segment your organization's data into logical sections, making searches, reports, and list views more meaningful to users. Divisions are useful for organizations with extremely large amounts of data.","s":"๐๏ธ Divisions","u":"/admin/permissions/","h":"","p":37},{"i":54,"t":"Restriction rules let you enhance your security by allowing certain users to access only specified records. They prevent users from accessing records that can contain sensitive data or information that isnโt essential to their work. Restriction rules filter the records that a user has access to so that they can access only the records that match the criteria you specify.","s":"๐๏ธ Restriction Rules","u":"/admin/permissions/","h":"","p":37},{"i":56,"t":"Use sharing rules to extend sharing access to users in public groups, roles, or territories. Sharing rules give particular users greater access by making automatic exceptions to your org-wide sharing settings.","s":"๐๏ธ Sharing Rules","u":"/admin/permissions/","h":"","p":37},{"i":58,"t":"While Steedos provides various built-in solutions to easily achieve precise field and record level permission control as described above, some permission requirements in unique project scenarios may not be met by these methods alone. Therefore, the Steedos permission engine also incorporates beforeFind triggers, which allow personalized and more advanced permission issues to be addressed through code.","s":"๐๏ธ Trigger managed permissions","u":"/admin/permissions/","h":"","p":37},{"i":60,"t":"Steedos supports application authorization based on permission sets, which can be used to restrict users under a certain permission set/profile to only see certain applications. To restrict the view of applications, go to the \"Company Settings > Permission Set/Profile\" section of the \"Settings\" application. Select the permission set or profile that you want to restrict from viewing applications, then choose the allowed applications in the \"Authorized Application\" field. Any applications that are not selected here will be restricted from view. If the authorized application field is left empty, all applications will be authorized for this permission set or profile.","s":"Application Permissions","u":"/admin/permissions/app-permissions","h":"","p":59},{"i":62,"t":"Divisions let you segment your organization's data into logical sections, making searches, reports, and list views more meaningful to users. Divisions are useful for organizations with extremely large amounts of data. tip Available on: Enterprise Edition","s":"Organize Data with Divisions","u":"/admin/permissions/division","h":"","p":61},{"i":64,"t":"Divisions can be assigned to users and other kinds of records. For example, you can create a report to show the opportunities for just the North American division to get accurate sales numbers for the North American sales team. Record-level divisionโDivision is a field on individual records that marks the record as belonging to a particular division. Default division โ Users are assigned a default division that applies to their newly created accounts, leads, and custom objects that are enabled for divisions.","s":"How Divisions Work","u":"/admin/permissions/division","h":"#how-divisions-work","p":61},{"i":66,"t":"Field permissions specify the access level for each field in an object.","s":"Field Permissions","u":"/admin/permissions/field-permissions","h":"","p":65},{"i":68,"t":"Several factors control whether users can view and edit specific fields in Steedos. You can control usersโ access to fields at the record type, user, or field level. Page layoutsโSet whether fields are visible, required, editable, or read only for a particular record type. Field-level securityโFurther restrict usersโ access to fields by setting whether those fields are visible, editable, or read only. These settings override field properties set in the page layout if the field-level security setting is more restrictive. PermissionsโSome user permissions override both page layouts and field-level security settings. For example, users with the โEdit Read Only Fieldsโ permission can always edit read-only fields regardless of any other settings. Object required fieldsโOverride field-level security or any less-restrictive settings on page layouts by making a custom field universally required. Lookup and system fieldsโIf you enable the Require permission to view record names in lookup fields setting, you restrict who can view record names in lookup and system fields. Users must have Read access to these records or the View All Lookup Record Names permission to view this data.","s":"What Determines Field Access?","u":"/admin/permissions/field-permissions","h":"#what-determines-field-access","p":65},{"i":70,"t":"Field-level security settings let you restrict usersโ access to view and edit specific fields. Page layouts and field-level security settings determine which fields a user sees. The most restrictive field access settings of the two always applies. For example, you can have a field thatโs required in a page layout but is read-only in the field-level security settings. The field-level security overrides the page layout, so the field remains read-only.","s":"Field-Level Security","u":"/admin/permissions/field-permissions","h":"#field-level-security","p":65},{"i":72,"t":"Steedos data sharing lets you expose specific data sets to individuals and groups of users. Permission sets, permission set groups, and profiles provide object-level and field-level security by controlling access. Record-level sharing settings, user roles, and sharing rules control the individual records that users can view and edit.","s":"Control Who Sees What","u":"/admin/permissions/overview","h":"","p":71},{"i":74,"t":"Object-level securityโor object permissionsโprovide the bluntest way to control data access. You can prevent a user from seeing, creating, editing, or deleting any instance of a particular object type, such as a lead or opportunity, by using object permissions. You can hide tabs and objects from selected users, so that they donโt even know that type of data exists. You can specify object permissions in permission sets and profiles. Permission sets and profiles are collections of settings and permissions that determine what a user can do in the application. The settings are similar to a group in a Windows network, where the members of the group have the same folder permissions and access to the same software. Typically, profiles are defined by a userโs job function, such as Steedos admin or sales representative. You can assign one profile to many users, but you can assign only one profile per user. You can use permission sets to grant more permissions and access settings to users. Now itโs easier to manage usersโ permissions and access because you can assign multiple permission sets to a single user.","s":"Object-Level Security (Permission Sets and Profiles)","u":"/admin/permissions/overview","h":"#object-level-security-permission-sets-and-profiles","p":71},{"i":76,"t":"Sometimes you want users to have access to an object while limiting their access to individual fields in that object. Field-level securityโor field permissionsโcontrol whether a user can see, edit, and delete the value for a particular field on an object. You can protect sensitive fields without hiding the entire object. You also can control field permissions in permission sets and profiles. Field permissions control the visibility of fields in any part of the app, including related lists, list views, reports, and search results. To ensure that a user canโt access a particular field, use field permissions. No other settings provide as much protection for a field. Page layouts only control the visibility of fields on detail and edit pages.","s":"Field-Level Security (Permission Sets and Profiles)","u":"/admin/permissions/overview","h":"#field-level-security-permission-sets-and-profiles","p":71},{"i":78,"t":"After setting object- and field-level access permissions, you can configure access settings for records. Record-level security lets you give users access to some object records, but not others. Every record is owned by a user or a queue. The owner has full access to the record. In a hierarchy, users higher in the hierarchy always have the same access to users below them in the hierarchy. This access applies to records owned by users and records shared with them. Sharing rulesโ With sharing rules you can make automatic exceptions to organization-wide sharing settings for sets of users. Use sharing rules to give these users access to records they donโt own or canโt normally see. Sharing rules, like role hierarchies, are only used to give more users access to recordsโthey canโt be stricter than your organization-wide default settings. Restriction rulesโ When a restriction rule is applied to a user, the data that they had read access to via your sharing settings is further scoped to only records matching the record criteria that you set. This behavior is similar to how you can filter results in a list view or report, except that itโs permanent. Trigger managed permissionsโ If sharing rules and manual sharing donโt provide the required control, you can use trigger managed sharing. trigger managed sharing allows developers to programmatically share custom objects.","s":"Record-Level Security (Sharing)","u":"/admin/permissions/overview","h":"#record-level-security-sharing","p":71},{"i":80,"t":"A permission set is a collection of settings and permissions that give users access to various tools and functions. Permission sets extend usersโ functional access without changing their profiles and are the recommended way to manage your usersโ permissions. Users can have only one profile but, they can have multiple permission sets. You can assign permission sets to various types of users, regardless of their profiles.","s":"Permission Sets","u":"/admin/permissions/permission-set","h":"","p":79},{"i":82,"t":"While Steedos provides various built-in solutions to easily achieve precise field and record level permission control as described above, some permission requirements in unique project scenarios may not be met by these methods alone. Therefore, the Steedos permission engine also incorporates beforeFind triggers, which allow personalized and more advanced permission issues to be addressed through code.","s":"Trigger managed permissions","u":"/admin/permissions/before-find","h":"","p":81},{"i":84,"t":"Object permissions specify the base-level access users have to create, read, edit, and delete records for each object. You can manage object permissions in permission sets and profiles. The following permissions specify the access that users have to objects. PERMISSION DESCRIPTION Read Users can only view records of this type. Create Users can read and create records. Edit Users can read and update records. Delete Users can read, edit, and delete records. View All Users can view all records associated with this object, regardless of sharing settings. Modify All Users can read, edit, delete, transfer, and approve all records associated with this object, regardless of sharing settings.","s":"Object Permissions","u":"/admin/permissions/object-permissions","h":"","p":83},{"i":86,"t":"Profiles define how users access objects and data, and what they can do within the application. When you create users, you assign a profile to each one. Every user is assigned only one profile, but can also have multiple permission sets. When determining access for your users, use profiles to assign the minimum permissions and access settings for specific groups of users. Then use permission sets to grant more permissions as needed. standard profilesโ Steedos comes with several standard profiles(adminใuserใsupplierใcustomer), and if more, additional custom profiles can be added to expand upon them.","s":"Profiles","u":"/admin/permissions/profile","h":"","p":85},{"i":88,"t":"Restriction rules let you enhance your security by allowing certain users to access only specified records. They prevent users from accessing records that can contain sensitive data or information that isnโt essential to their work. Restriction rules filter the records that a user has access to so that they can access only the records that match the criteria you specify.","s":"Restriction Rules","u":"/admin/permissions/restriction-rules","h":"","p":87},{"i":90,"t":"Use restriction rules when you want certain users to see only a specific set of records. Restriction rules can simplify controlling access to records with sensitive or confidential information. Access to contracts, tasks, and events can be difficult to make truly private using organization-wide defaults, making restriction rules the best way to configure this visibility. For example, you have competing sales teams that canโt see each otherโs activities, even though these activities are on the same account. With restriction rules, you can make sure that sales teams see only activities that belong to them and are relevant to their work. Or, if you provide confidential services to various individuals, use restriction rules so that only team members responsible for supporting these individuals can see related tasks.","s":"When Do I Use Restriction Rules?","u":"/admin/permissions/restriction-rules","h":"#when-do-i-use-restriction-rules","p":87},{"i":92,"t":"Enterprise Collaboration System (ECS) are comprehensive information systems designed to support communication, collaboration, and information sharing among employees within an organization. These systems typically offer a range of tools and features to support team collaboration, project management, document sharing, instant messaging, and other work-related activities. The core objectives of enterprise collaboration systems are to improve work efficiency, strengthen team collaboration, promote knowledge sharing, and help organizations better manage their internal processes and projects. By using these systems, organizations can overcome geographical and temporal barriers to achieve effective remote collaboration and communication. The main features of enterprise collaboration systems typically include: Instant Messaging: Support for real-time text, voice, and video communication among employees. File Sharing and Management: Allows team members to store, share, and collaboratively edit documents and other files. Task and Project Management: Provides tools to plan, assign, and track the progress of tasks and projects. Calendar and Meeting Scheduling: Helps team members schedule meetings, set reminders, and manage calendars. Knowledge Management: Supports the creation, storage, and sharing of knowledge bases and best practices. Social Networking Features: Offers social media-like features such as news feeds, team pages, and discussion forums to foster communication and team spirit. Video Conferencing: Supports face-to-face communication among remote team members through video conferencing. Workflow Automation: Automates common business processes such as approval workflows, expense reporting, etc. Integration and Extensibility: Integrates with other enterprise applications (such as CRM, ERP, etc.) and allows for extension through plugins or APIs.","s":"Collaboration Tools","u":"/apps/collaboration/","h":"","p":91},{"i":94,"t":"Approval King is an innovative process automation solution designed to streamline and simplify the approval workflows within an organization. By leveraging cutting-edge technology, Approval King transforms traditional, cumbersome approval processes into a seamless, efficient, and transparent system. It empowers organizations to manage approvals with ease, ensuring compliance, enhancing productivity, and accelerating decision-making.","s":"๐๏ธ Approval King","u":"/apps/collaboration/","h":"","p":91},{"i":96,"t":"The Steedos Project Task Management System is an application developed on the Steedos low-code platform, designed to help businesses efficiently plan, track, and manage project tasks. With its flexible customization features, it meets the project management needs of different enterprises, enhancing team collaboration efficiency and ensuring projects are completed on time and to quality standards.","s":"๐๏ธ Milestone","u":"/apps/collaboration/","h":"","p":91},{"i":98,"t":"Use sharing rules to extend sharing access to users in public groups, roles, or territories. Sharing rules give particular users greater access by making automatic exceptions to your org-wide sharing settings.","s":"Sharing Rules","u":"/admin/permissions/sharing-rules","h":"","p":97},{"i":100,"t":"Approval King is an innovative process automation solution designed to streamline and simplify the approval workflows within an organization. By leveraging cutting-edge technology, Approval King transforms traditional, cumbersome approval processes into a seamless, efficient, and transparent system. It empowers organizations to manage approvals with ease, ensuring compliance, enhancing productivity, and accelerating decision-making.","s":"Approval King: Streamlining Your Approval Processes","u":"/apps/collaboration/approval-king/","h":"","p":99},{"i":103,"t":"Drag-and-Drop Interface: Easily create and customize approval workflows with a user-friendly drag-and-drop interface. Templates and Customization: Choose from a variety of pre-built templates or create custom workflows tailored to your organization's specific needs.","s":"Intuitive Workflow Designer","u":"/apps/collaboration/approval-king/","h":"#intuitive-workflow-designer","p":99},{"i":105,"t":"Flexible Approval Hierarchies: Set up multi-level approval chains to reflect your organizational structure and approval policies. Conditional Routing: Implement conditional logic to route requests based on specific criteria, ensuring the right people review and approve each request.","s":"Multi-Level Approval Chains","u":"/apps/collaboration/approval-king/","h":"#multi-level-approval-chains","p":99},{"i":107,"t":"Status Tracking: Monitor the progress of approval requests in real-time, with clear visibility into each step of the process. Automated Notifications: Receive instant notifications at each stage of the approval process, ensuring timely responses and action.","s":"Real-Time Tracking and Notifications","u":"/apps/collaboration/approval-king/","h":"#real-time-tracking-and-notifications","p":99},{"i":109,"t":"Mobile App: Access Approval King on-the-go with a dedicated mobile app, allowing approvers to review and respond to requests from anywhere, at any time.","s":"Mobile Accessibility","u":"/apps/collaboration/approval-king/","h":"#mobile-accessibility","p":99},{"i":111,"t":"Seamless Integration: Integrate Approval King with your existing systems, such as ERP, CRM, HRM, and more, for a unified workflow experience. Cross-Platform Compatibility: Use Approval King across various platforms and devices, ensuring a consistent experience for all users.","s":"Integration and Compatibility","u":"/apps/collaboration/approval-king/","h":"#integration-and-compatibility","p":99},{"i":113,"t":"Role-Based Access Control: Implement role-based access to ensure sensitive information is only accessible to authorized personnel. Audit Trails: Maintain comprehensive audit trails for every approval request, supporting compliance and accountability.","s":"Security and Compliance","u":"/apps/collaboration/approval-king/","h":"#security-and-compliance","p":99},{"i":115,"t":"Custom Reports: Generate custom reports to gain insights into approval patterns, bottlenecks, and performance metrics. Data-Driven Decisions: Leverage analytics to make informed decisions, optimize workflows, and improve overall efficiency. Approval King is the ultimate solution for organizations seeking to modernize their approval processes. With its robust features, intuitive design, and seamless integration capabilities, Approval King is poised to revolutionize the way approvals are managed, making it an indispensable tool for businesses of all sizes.","s":"Reporting and Analytics","u":"/apps/collaboration/approval-king/","h":"#reporting-and-analytics","p":99},{"i":117,"t":"The Steedos Project Task Management System is an application developed on the Steedos low-code platform, designed to help businesses efficiently plan, track, and manage project tasks. With its flexible customization features, it meets the project management needs of different enterprises, enhancing team collaboration efficiency and ensuring projects are completed on time and to quality standards.","s":"Steedos Milestone: Project Task Management System","u":"/apps/collaboration/milestone/","h":"","p":116},{"i":120,"t":"Program Management: Organize related projects into programs for unified management. Task Breakdown: Decompose projects into manageable tasks and subtasks. Milestone Planning: Set key project milestones to monitor critical junctures.","s":"Project Organization","u":"/apps/collaboration/milestone/","h":"#project-organization","p":116},{"i":122,"t":"Task Assignment: Assign tasks to team members, clarifying responsibilities. Progress Tracking: Update task status in real-time and track progress. Priority Setting: Set priorities for tasks based on their importance.","s":"Task Management","u":"/apps/collaboration/milestone/","h":"#task-management","p":116},{"i":124,"t":"Issue Logging: Record issues and obstacles encountered in the project. Issue Resolution: Assign responsible parties and track the issue resolution process.","s":"Issue Tracking","u":"/apps/collaboration/milestone/","h":"#issue-tracking","p":116},{"i":126,"t":"Time Logging: Record the actual time spent on each task. Work Log: Keep a record of team members' daily work and achievements.","s":"Time Management","u":"/apps/collaboration/milestone/","h":"#time-management","p":116},{"i":128,"t":"Team Communication: Built-in instant messaging tools facilitate team member communication. File Sharing: Centrally manage project documents, supporting collaborative editing. Permission Control: Assign different access and editing permissions based on roles.","s":"Team Collaboration","u":"/apps/collaboration/milestone/","h":"#team-collaboration","p":116},{"i":130,"t":"Project Dashboard: Provide an overview of the project, including progress, budget, and resource utilization. Task Reports: Generate reports on task completion and time tracking. Data Analysis: Analyze project data to optimize resource allocation and processes.","s":"Reporting and Analysis","u":"/apps/collaboration/milestone/","h":"#reporting-and-analysis","p":116},{"i":132,"t":"Interface Customization: Customize the interface according to corporate branding and user habits. Workflow Automation: Automate common workflows, such as approval processes. System Integration: Integrate with other enterprise systems (such as CRM, ERP, etc.).","s":"Customization and Integration","u":"/apps/collaboration/milestone/","h":"#customization-and-integration","p":116},{"i":134,"t":"Low-Code Platform: Rapid development and deployment, reducing development costs. Flexible Customization: Customize functions and interfaces according to specific enterprise needs. Ease of Use: Intuitive user interface simplifies project management processes. Efficient Collaboration: Enhance team collaboration and improve project execution efficiency. The Steedos Project Task Management System is an ideal choice for enterprises looking to enhance their project management capabilities. With its powerful features and flexible customization, it helps businesses achieve digital transformation in project management.","s":"Product Advantages","u":"/apps/collaboration/milestone/","h":"#product-advantages","p":116},{"i":136,"t":"Customer Relationship Management (CRM) is a combination of strategies and technologies used by companies to manage and analyze customer interactions and data throughout the customer lifecycle. The primary goal of CRM is to improve business relationships with customers, assist in customer retention, and drive sales growth. A CRM system helps companies stay connected to customers, streamline processes, and improve profitability.","s":"Customer Relationship Management","u":"/apps/customer-relationship-management/","h":"","p":135},{"i":138,"t":"Contact Management: Record and maintain essential customer details such as name, address, phone number, email, etc. Sales Opportunity Tracking: Manage potential sales opportunities and monitor the progress of sales activities. Marketing Automation: Automate marketing tasks and workflows, such as email marketing and social media marketing. Customer Service and Support: Provide customer service and technical support, manage customer inquiries, and feedback. Reporting and Analytics: Generate reports on sales, marketing, and customer service activities, offering data-driven insights. Workflow Automation: Automate daily business processes like approval workflows and task assignments. Utilizing a CRM system can help businesses enhance their sales efficiency, elevate customer satisfaction, strengthen customer loyalty, and deliver a more personalized customer experience.","s":"Key Features:","u":"/apps/customer-relationship-management/","h":"#key-features","p":135},{"i":140,"t":"In today's rapidly changing business environment, delivering exceptional customer service is key to success. Steedos Service Management System is designed to provide businesses with a comprehensive service management solution. Built on the Steedos low-code platform, this system offers a highly customizable and user-friendly experience.","s":"Steedos Service Management System","u":"/apps/customer-relationship-management/service/","h":"","p":139},{"i":142,"t":"Customer Support and Service Request Management: Efficiently track and manage customer support requests and service cases. Automate case assignment and priority setting. Knowledge Base and Solution Management: Create and maintain a centralized knowledge base to help customers and service representatives quickly find solutions. Manage FAQs and best practice documentation. Service Contracts and Agreements Management: Manage service contracts and level agreements. Track service levels and customer satisfaction. Customer Feedback and Satisfaction Surveys: Collect and analyze customer feedback to improve service quality. Implement satisfaction surveys to measure service performance. Reporting and Analytics: Generate real-time service reports and dashboards. Gain insights into service performance and customer satisfaction trends. Mobile Accessibility: Access the system on-the-go with a mobile-friendly interface. Respond to customer needs promptly, no matter where you are. Integration Capabilities: Seamlessly integrate with other business systems like CRM, sales, and marketing automation platforms. Customization and Scalability: Tailor the system to meet your unique business needs. Scale the system as your business grows.","s":"Key Features:","u":"/apps/customer-relationship-management/service/","h":"#key-features","p":139},{"i":144,"t":"User-Friendly Interface: Designed for ease of use, ensuring quick adoption by service teams. Automated Workflows: Adapt the system to your service processes for maximum efficiency. Data Security and Compliance: Robust security features to protect sensitive customer data. Collaboration Tools: Foster teamwork and communication within the service team. The Steedos Service Management System is not just a tool; it's a service optimizer. It's designed to streamline your service processes, enhance customer satisfaction, and drive customer loyalty. Whether you're a small business or a large enterprise, this system is built to adapt to your needs and scale with your success.","s":"Product Highlights:","u":"/apps/customer-relationship-management/service/","h":"#product-highlights","p":139},{"i":146,"t":"Follow these steps to deploy Steedos Apps on Docker.","s":"Self Hosting","u":"/apps/getting-started/deploy","h":"","p":145},{"i":148,"t":"Docker (version 20.10.7 or later) Docker-Compose (version 1.29.2 or later) Steedos Enterprise License","s":"Prerequisites","u":"/apps/getting-started/deploy","h":"#prerequisites","p":145},{"i":150,"t":"Create a folder named steedos-apps on your machine for deployment and data storage. Then, navigate to this folder using the cd command and follow the steps below: Contact us to request a trial license key. Create a new file docker-compose.yml version: \"3.9\" services: steedos-enterprise: image: steedos/steedos-enterprise:latest container_name: steedos-enterprise ports: - \"80:80\" - \"443:443\" - \"9001:9001\" environment: - ROOT_URL=http://127.0.0.1 - TRANSPORTER=redis://redis:6379 - CACHER=redis://redis:6379/1 - STEEDOS_LICENSE=trial - STEEDOS_LOG_LEVEL=info tty: true volumes: - \"./storage:/steedos-storage\" depends_on: redis: condition: service_started steedos-apps: image: steedos/steedos-apps:latest container_name: steedos-apps environment: - TRANSPORTER=redis://redis:6379 - CACHER=redis://redis:6379/1 depends_on: redis: condition: service_started redis: image: ecr.aws.steedos.cn/dockerhub/redis:6.2 command: \"redis-server --save \\\"\\\" --appendonly no --loglevel warning\" This saves the file in the current directory. Start the Docker container using the following command. You may need to run with sudo if you don't have permission to run docker-compose. docker-compose up -d If the image doesn't exist locally, this command downloads the necessary Docker image and starts the container. Open http://localhost and wait for the server to come up. This can take up to 5 minutes. Once the server is up and running, you can access Steedos at http://localhost. If you continue to face issues, reach out to support@steedos.com.","s":"Install Steedos Apps","u":"/apps/getting-started/deploy","h":"#install-steedos-apps","p":145},{"i":152,"t":"Configure Steedos instance","s":"Further reading","u":"/apps/getting-started/deploy","h":"#further-reading","p":145},{"i":154,"t":"In traditional enterprise application development, every feature and module required coding from scratch. This not only consumed a significant amount of time but also incurred high development costs. Moreover, when business requirements changed, modifying and optimizing the application became complex and challenging. The advent of Low-code App has completely transformed this scenario. Developed based on the Steedos low-code platform and metadata, it means businesses can easily customize and extend the application to meet their unique business needs. Compared to traditional application development, Low-code App offers greater flexibility and scalability.","s":"What is Low-code App?","u":"/apps/getting-started/overview","h":"","p":153},{"i":156,"t":"The core advantage of Low-code App lies in its exceptional customizability, enabling every enterprise to build a solution that perfectly matches their unique requirements without the need for complex coding. Personalized Object Model: You can create or modify any data object based on business requirements, ensuring the data structure aligns perfectly with your business model. Granular Permission Management: Allows you to assign specific permissions to different users or user groups, ensuring data security and compliance while meeting the different roles and responsibilities within the organization. Customizable Interface Design: With visual interface design tools, you can flexibly adjust every system interface, ensuring the best user experience. Customizable Automated Processes: From simple task automation to complex business processes, you can easily design and implement, ensuring efficient workflow. In-depth Report Analysis: Offering various report templates, it helps you deeply analyze business data, ensuring you're always updated with the latest business insights.","s":"Low-code driven, easily customizable.","u":"/apps/getting-started/overview","h":"#low-code-driven-easily-customizable","p":153},{"i":158,"t":"In the competitive landscape of sales, efficiency and customer relationship are key. The Steedos Sales Management System, is designed to empower sales teams with the tools they need for success. Built on the Steedos low-code platform, this system offers a highly customizable and user-friendly experience.","s":"Steedos Sales Management System","u":"/apps/customer-relationship-management/sales/","h":"","p":157},{"i":160,"t":"Lead and Opportunity Management: Track and manage sales leads and opportunities. Monitor the sales pipeline and forecast sales trends. Account and Contact Management: Maintain comprehensive records of customers and contacts. Segment customers for targeted marketing and sales efforts. Activity Tracking: Log and monitor all sales-related activities, including calls, meetings, and emails. Set reminders and follow-up tasks. Quote and Order Management: Generate quotes and manage orders efficiently. Track order fulfillment and invoicing. Product and Price Book Management: Manage product catalogs and pricing structures. Set up discounts and promotions. Reporting and Analytics: Generate real-time reports and dashboards. Gain insights into sales performance and customer behavior. Mobile Accessibility: Access the system on-the-go with a mobile-friendly interface. Stay connected with your sales team and customers from anywhere. Integration Capabilities: Seamlessly integrate with other business systems like ERP, marketing automation, and customer service platforms. Customization and Scalability: Tailor the system to meet your unique business needs. Scale the system as your business grows.","s":"Key Features","u":"/apps/customer-relationship-management/sales/","h":"#key-features","p":157},{"i":162,"t":"User-Friendly Interface: Designed for ease of use, ensuring quick adoption by sales teams. Customizable Workflows: Adapt the system to your sales processes for maximum efficiency. Data Security and Compliance: Robust security features to protect sensitive sales data. Collaboration Tools: Foster teamwork and communication within the sales team. The Steedos Sales Management System is not just a tool; it's a sales accelerator. It's designed to streamline your sales processes, enhance customer relationships, and drive revenue growth. Whether you're a small business or a large enterprise, this system is built to adapt to your needs and scale with your success.","s":"Product Highlights","u":"/apps/customer-relationship-management/sales/","h":"#product-highlights","p":157},{"i":164,"t":"HCM, standing for Human Capital Management, is an integrated approach that covers the entire lifecycle of an employee within an organization. It encompasses activities related to recruiting, onboarding, training, performance management, compensation, benefits, and offboarding.","s":"HCM (Human Capital Management)","u":"/apps/human-capital-management/","h":"","p":163},{"i":166,"t":"Recruitment Management: This involves job postings, resume screening, interviews, and the overall hiring process. Onboarding: Ensuring smooth integration of new employees into the organization, which includes training, equipment allocation, and other induction procedures. Performance Management: Regularly evaluating employee performance and providing feedback and guidance. Learning and Development: Offering training and development opportunities to help employees enhance their skills and knowledge. Compensation and Benefits Management: Administering employee salaries, bonuses, benefits, and other forms of compensation. Time and Attendance Management: Tracking employee working hours, leaves, and absences. Talent Management: Identifying and nurturing key talents to ensure the long-term success of the organization. Offboarding: Handling the procedures related to employees leaving the organization, including exit interviews and knowledge transfer. The goal of HCM is to help organizations maximize the value of their employees. This involves ensuring that the skills and capabilities of employees are optimally utilized, and that they receive appropriate training and development opportunities to meet the long-term needs of the organization. ๐๏ธ Employee Management In modern enterprise management, the Employee Lifecycle Management System (ELMS) plays a crucial role. It not only enhances the efficiency of human resource management but also strengthens employees' sense of belonging and satisfaction. Based on the Steedos low-code platform, we have designed a comprehensive employee lifecycle management system aimed at simplifying and optimizing every stage from onboarding to offboarding. ๐๏ธ Attendance Steedos Attendance Management System is an efficient and modern attendance management software, designed specifically to meet the attendance management needs of various enterprises. Developed on the Steedos low-code platform, the system not only inherits the platform's flexibility and high customizability but also supports private deployment, ensuring absolute security and privacy of enterprise data. ๐๏ธ Performance Evaluation In the modern corporate landscape, ensuring the continuous growth of a company and the professional development of its employees is paramount. Performance evaluation plays a crucial role in this process. With the Steedos low-code platform, we present a comprehensive solution for performance evaluation, ensuring that each employee's performance is assessed fairly and accurately.","s":"Key components of HCM include:","u":"/apps/human-capital-management/","h":"#key-components-of-hcm-include","p":163},{"i":168,"t":"In modern enterprise management, the Employee Lifecycle Management System (ELMS) plays a crucial role. It not only enhances the efficiency of human resource management but also strengthens employees' sense of belonging and satisfaction. Based on the Steedos low-code platform, we have designed a comprehensive employee lifecycle management system aimed at simplifying and optimizing every stage from onboarding to offboarding.","s":"๐๏ธ Employee Management","u":"/apps/human-capital-management/","h":"","p":163},{"i":170,"t":"Steedos Attendance Management System is an efficient and modern attendance management software, designed specifically to meet the attendance management needs of various enterprises. Developed on the Steedos low-code platform, the system not only inherits the platform's flexibility and high customizability but also supports private deployment, ensuring absolute security and privacy of enterprise data.","s":"๐๏ธ Attendance","u":"/apps/human-capital-management/","h":"","p":163},{"i":172,"t":"In the modern corporate landscape, ensuring the continuous growth of a company and the professional development of its employees is paramount. Performance evaluation plays a crucial role in this process. With the Steedos low-code platform, we present a comprehensive solution for performance evaluation, ensuring that each employee's performance is assessed fairly and accurately.","s":"๐๏ธ Performance Evaluation","u":"/apps/human-capital-management/","h":"","p":163},{"i":174,"t":"In modern enterprise management, the Employee Lifecycle Management System (ELMS) plays a crucial role. It not only enhances the efficiency of human resource management but also strengthens employees' sense of belonging and satisfaction. Based on the Steedos low-code platform, we have designed a comprehensive employee lifecycle management system aimed at simplifying and optimizing every stage from onboarding to offboarding.","s":"Employee Lifecycle Management System","u":"/apps/human-capital-management/employee/","h":"","p":173},{"i":176,"t":"Recruitment and Onboarding Management: Automate job posting and resume collection. Streamline interview scheduling and candidate evaluation processes. Provide new employee orientation training and adaptation guidance. Regularization and Career Development: Set probationary goals and evaluation criteria. Track employee training progress and career development paths. Support employee career planning and internal promotion opportunities. Transfer and Position Management: Manage internal transfer applications and approval processes. Track position changes and organizational structure adjustments. Keep employee personal information and position information up-to-date. Offboarding Management: Simplify the resignation application and approval process. Support exit interviews and knowledge handover. Ensure the completeness and compliance of offboarding procedures.","s":"System Features","u":"/apps/human-capital-management/employee/","h":"#system-features","p":173},{"i":178,"t":"Low-Code Platform: Based on the Steedos low-code platform, quick to deploy, easy to maintain and upgrade. High Customizability: Customize processes and interfaces according to specific enterprise needs. Data-Driven Decision Making: Provide comprehensive data analysis and reporting features to help management make more informed decisions. User-Friendly: Intuitive user interface and operation process, reducing training costs and improving user acceptance. By implementing this employee lifecycle management system, enterprises can manage human resources more effectively, enhance employee satisfaction, and thereby promote the organization's continuous development and success.","s":"Product Advantages","u":"/apps/human-capital-management/employee/","h":"#product-advantages","p":173},{"i":180,"t":"Steedos Attendance Management System is an efficient and modern attendance management software, designed specifically to meet the attendance management needs of various enterprises. Developed on the Steedos low-code platform, the system not only inherits the platform's flexibility and high customizability but also supports private deployment, ensuring absolute security and privacy of enterprise data.","s":"Attendance Management","u":"/apps/human-capital-management/attendance/","h":"","p":179},{"i":183,"t":"Attendance Rule Configuration: Customizable attendance rules to cater to various working hours, shifts, and holiday arrangements. Clock-in Management: Supports various clock-in methods, including mobile device clock-in and location-based clock-in, catering to both fixed and mobile workspaces. Leave, Outing, and Business Trip Management: Comprehensive management of leave, outings, and business trips, including application, approval, and recording. Data Statistics and Analysis: Automatic aggregation and analysis of attendance data, providing clear attendance reports for the management. Automatic Report Generation: Capability to generate daily, monthly, and annual attendance reports as needed.","s":"Core Features","u":"/apps/human-capital-management/attendance/","h":"#core-features","p":179},{"i":185,"t":"Based on Low-code Platform: Leveraging the Steedos low-code platform, the system is highly customizable, quickly adjustable, and can be extended to meet specific needs. Support for Private Deployment: Recognizing the importance of enterprise data, offers private deployment options ensuring data is stored exclusively on the enterprise's servers. Integration Capabilities: Seamless integration with other enterprise systems, such as HR systems, payroll systems, etc., ensuring uninterrupted data flow. User-friendly Interface: A clean and intuitive user interface ensures ease of use for both employees and management.","s":"Key Highlights","u":"/apps/human-capital-management/attendance/","h":"#key-highlights","p":179},{"i":188,"t":"Attendance rules are fundamental to ensuring employees clock in and out on time. With the Steedos Attendance Management System, you can: Set standard working hours. Define tolerance periods for lateness and early departures. Set calculation methods and strategies for overtime.","s":"Setting Attendance Rules","u":"/apps/human-capital-management/attendance/","h":"#setting-attendance-rules","p":179},{"i":190,"t":"For companies with shift systems, setting attendance intervals is crucial. Within the Steedos Attendance Management System, you can: Create multiple shifts, such as morning, afternoon, and night shifts. Define specific start and end times for each shift. Set rest periods and durations for each shift.","s":"Configuring Attendance Intervals","u":"/apps/human-capital-management/attendance/","h":"#configuring-attendance-intervals","p":179},{"i":192,"t":"Setting public holidays and special dates ensures employees adhere to different attendance rules on these dates. Features include: Marking public holidays and company-specific significant dates. Defining specific attendance rules for these special dates, such as whether clock-ins are needed or if working hours are counted. Quickly viewing upcoming special dates to ensure management and employees are prepared in advance.","s":"Holidays and Special Dates","u":"/apps/human-capital-management/attendance/","h":"#holidays-and-special-dates","p":179},{"i":195,"t":"To ensure clock-in accuracy, companies can set valid ranges or locations for clock-ins, such as office buildings, factories, etc. Mobile Device Clock-inโ For employees who often travel or work remotely, Steedos offers a mobile device clock-in feature: GPS Location Clock-in: The system records the exact location of the employee during clock-in, ensuring they are at the specified work location. Photo Clock-in: Employees can clock-in by taking a photo of their working environment as proof. Network IP Clock-in: Allows employees to clock-in within a specified network IP range. This feature requires the installation of related Steedos apps on the employee's mobile device, ensuring the app can access location, camera permissions, etc. Handling Clock-in Anomaliesโ Clock-in anomalies refer to situations where employees do not clock in according to stipulated times or locations, including but not limited to tardiness, leaving early, and missed clock-ins. In Steedos: The system automatically flags and logs clock-in anomalies. Administrators or superiors can view an employee's clock-in anomaly records. Employees can provide valid explanations or evidence for their anomalies. Depending on company policies, clock-in anomalies might impact an employee's attendance statistics and performance evaluations.","s":"Configuring Clock-in Methods and Locations","u":"/apps/human-capital-management/attendance/","h":"#configuring-clock-in-methods-and-locations","p":179},{"i":198,"t":"To standardize and streamline the leave-taking process, the Steedos Attendance Management System offers comprehensive leave procedure settings: Setting Leave Types: Define different types of leaves, such as personal leave, sick leave, annual leave, etc., based on company policies. Leave Duration Calculation: The system can automatically calculate the leave duration or allow employees to input manually. Reminders & Notifications: Upon an employee's leave application submission, the system can automatically notify the approvers or relevant departments.","s":"Setting Leave Procedures","u":"/apps/human-capital-management/attendance/","h":"#setting-leave-procedures","p":179},{"i":200,"t":"Outings and business trips are also integral parts of attendance management. Steedos offers a streamlined application process: Reason for Outing/Business Trip: Employees need to provide specific reasons and estimated times for outings or business trips. Associated Documents: Employees can upload related documents or images, such as a business trip plan or meeting notice. Location and Route: For business trips, employees also need to provide the destination and the planned route.","s":"Applying for Outings and Business Trips","u":"/apps/human-capital-management/attendance/","h":"#applying-for-outings-and-business-trips","p":179},{"i":202,"t":"To ensure compliance, the Steedos system offers a clear approval workflow for leave, outing, and business trip applications: Defined Approvers: Determine who in the organization has the authority to approve such requests. Approval Procedures: Specify the approval flow, i.e., how the application moves from one approver to the next. Notifications & Reminders: Once an application is approved or rejected, the system will send notifications to the relevant parties.","s":"Approval and Status Tracking","u":"/apps/human-capital-management/attendance/","h":"#approval-and-status-tracking","p":179},{"i":204,"t":"In the modern working environment, attendance management is crucial to ensuring productivity and employee satisfaction. Steedos Attendance Management System offers a comprehensive suite of features tailored to meet the needs of diverse enterprises, ensuring that both employees and management can maintain a harmonious working relationship.","s":"Summary","u":"/apps/human-capital-management/attendance/","h":"#summary","p":179},{"i":206,"t":"Spend Management refers to the process by which enterprises manage and control all their expenditures, including direct expenses (such as raw materials and production costs) and indirect expenses (such as office supplies, travel, and entertainment costs). The goal of spend management is to reduce costs and improve the financial performance of the enterprise by optimizing procurement processes, negotiating more favorable supplier contracts, implementing cost control measures, and more. Spend management typically includes the following aspects: Procurement Management: Ensuring that the enterprise purchases goods and services at the best prices and terms. Contract Management: Monitoring and managing contracts with suppliers to ensure compliance with contract terms. Expense Reimbursement: Managing employee travel and other expense reimbursements to ensure reasonableness and compliance. Budget Control: Monitoring and controlling expenditures in line with the enterprise's budgetary goals. Supplier Management: Assessing and selecting suppliers, establishing and maintaining good supplier relationships. Risk Management: Identifying and managing risks associated with expenditures, such as supplier risks, price fluctuation risks, etc. Data Analysis: Using data analysis tools to identify cost-saving opportunities and optimize expenditures. Spend management not only helps in reducing costs but also improves operational efficiency and financial transparency of the enterprise, thereby supporting strategic decision-making for the enterprise.","s":"Spend Management","u":"/apps/spend-management/","h":"","p":205},{"i":208,"t":"The Project Cost Management System is an application developed on the Steedos low-code platform, designed to help businesses effectively track and manage project costs. This system offers a comprehensive set of tools for monitoring project budgets, actual expenditures, labor costs, travel expenses, etc., ensuring that project costs are kept within budget, thereby enhancing project profitability and management efficiency.","s":"๐๏ธ Project Cost Management","u":"/apps/spend-management/","h":"","p":205},{"i":210,"t":"In the modern business landscape, contract management is paramount, impacting a company's profits, compliance, and risk management. Leveraging the Steedos low-code platform, we offer a comprehensive solution for managing the entire lifecycle of a contract, ensuring every phase is efficiently handled.","s":"๐๏ธ Contract","u":"/apps/spend-management/","h":"","p":205},{"i":212,"t":"In daily corporate operations, reimbursement management is often a tedious part of financial tasks. Steedos Expense Solution, based on Steedos' low-code platform, builds a comprehensive, intelligent reimbursement process management system for you, focusing on providing an efficient, standardized reimbursement experience for enterprises.","s":"๐๏ธ Expense","u":"/apps/spend-management/","h":"","p":205},{"i":214,"t":"In modern enterprise management, invoice processing is a key financial process. The Steedos Invoice Management System is a solution developed on a low-code platform, designed to simplify and automate the invoice processing workflow, increase efficiency, reduce errors, and ensure financial compliance.","s":"๐๏ธ Invoice Management","u":"/apps/spend-management/","h":"","p":205},{"i":216,"t":"In today's globalized business environment, selecting the right suppliers and maintaining good supplier relationships is crucial. The Steedos Supplier Management System offers businesses a centralized solution to systematically manage supplier information, evaluate their qualifications, and optimize interactions with them.","s":"๐๏ธ Supplier","u":"/apps/spend-management/","h":"","p":205},{"i":218,"t":"The Steedos Tender Management System, developed on the Steedos low-code platform, is a highly customizable solution designed to streamline the tendering process for businesses and government agencies. It aims to simplify the tendering workflow, enhance efficiency and transparency, and ensure fairness and compliance in tendering activities.","s":"๐๏ธ Tender Management","u":"/apps/spend-management/","h":"","p":205},{"i":220,"t":"In the modern business landscape, contract management is paramount, impacting a company's profits, compliance, and risk management. Leveraging the Steedos low-code platform, we offer a comprehensive solution for managing the entire lifecycle of a contract, ensuring every phase is efficiently handled.","s":"Steedos Contract Lifecycle Management System","u":"/apps/spend-management/contract/","h":"","p":219},{"i":222,"t":"Contract Template Library: A collection of predefined contract templates with customization capabilities, ensuring standardized and efficient contract drafting. Dynamic Approval Workflows: Adjusts approval processes based on contract type and value, ensuring compliance. Electronic Signature Integration: Integrated with leading e-signature services, supporting online signing to expedite the contract signing process. Contract Execution Tracking: Real-time monitoring of contract execution status, such as payments and deliveries, ensuring adherence to contract terms. Expiration Alerts & Auto-Renewal: Automated reminders for contract expiration dates with auto-renewal features, ensuring business continuity. Contract Amendment Management: Document and track all contract modifications, ensuring transparency and traceability. Contract Analytics & Reporting: Visualized contract data reports, assisting management in understanding overall contract trends and status. Integration & Automation: Seamless integration with other enterprise systems (e.g., CRM, ERP) and supports automated workflows like auto-invoicing and payments.","s":"Key Features","u":"/apps/spend-management/contract/","h":"#key-features","p":219},{"i":224,"t":"Flexibility & Customizability: With the Steedos low-code platform, easily customize and extend system functionalities to meet specific business needs. Security & Compliance: Multi-layered security measures ensure the safety and privacy of contract data, with support for compliance reporting and audit trails. Cloud-Native & Mobile Support: Supports both cloud and on-premises deployment, with mobile applications ensuring access and management anytime, anywhere. With the Steedos Contract Lifecycle Management System, businesses can manage their contracts more efficiently and securely, reducing risks, enhancing contract execution efficiency, and achieving digital and automated contract management.","s":"Why Choose the Steedos Contract Lifecycle Management System?","u":"/apps/spend-management/contract/","h":"#why-choose-the-steedos-contract-lifecycle-management-system","p":219},{"i":226,"t":"In the modern corporate landscape, ensuring the continuous growth of a company and the professional development of its employees is paramount. Performance evaluation plays a crucial role in this process. With the Steedos low-code platform, we present a comprehensive solution for performance evaluation, ensuring that each employee's performance is assessed fairly and accurately.","s":"Steedos Performance Evaluation System","u":"/apps/human-capital-management/performance/","h":"","p":225},{"i":228,"t":"Goal Setting & Tracking: Allows employees and managers to collaboratively set clear, measurable performance objectives and monitor progress in real-time. 360-Degree Feedback: Collect feedback from colleagues, subordinates, and superiors to provide a holistic view of performance. Self-Assessment: Employees can conduct self-assessments, comparing them with manager evaluations. Performance Scoring: Based on predefined criteria, score each aspect of an employee's performance. Development Plans: Based on evaluation results, devise personal development and training recommendations for employees. Performance Reporting: Generate performance evaluation reports, assisting management in understanding both overall and individual performance trends. Performance History: Store records of each performance evaluation for easy retrospection and analysis.","s":"Key Features:","u":"/apps/human-capital-management/performance/","h":"#key-features","p":225},{"i":230,"t":"Flexibility & Customizability: With the Steedos low-code platform, easily customize and extend system functionalities to meet specific enterprise needs. Integration & Automation: Seamlessly integrate with other enterprise systems (e.g., HR management, training systems) and support automated workflows, such as auto-reminders and report generation. Cloud-native & Mobile Support: Offers both cloud and on-premises deployment options, along with mobile applications, ensuring access and management anytime, anywhere. With the Steedos Performance Evaluation System, companies can efficiently and systematically conduct employee performance evaluations, ensuring transparency and fairness, while continuously providing opportunities for employee development.","s":"Why Choose the Steedos Performance Evaluation System?","u":"/apps/human-capital-management/performance/","h":"#why-choose-the-steedos-performance-evaluation-system","p":225},{"i":232,"t":"In modern enterprise management, invoice processing is a key financial process. The Steedos Invoice Management System is a solution developed on a low-code platform, designed to simplify and automate the invoice processing workflow, increase efficiency, reduce errors, and ensure financial compliance.","s":"Steedos Invoice Management System","u":"/apps/spend-management/invoice/","h":"","p":231},{"i":234,"t":"Invoice Entry: Supports manual and automatic entry of invoice information (via scanning or email), reducing the workload of manual input. Invoice Verification: Automatically verifies the accuracy of invoice information, including supplier details, amounts, tax rates, etc. Invoice Approval Workflow: Customizable and flexible approval workflows to ensure that each invoice undergoes proper review and approval. Invoice Matching: Matches invoices with related purchase orders and receiving records to ensure the accuracy and completeness of invoices. Payment Processing: Automatically triggers the payment process after invoice approval, supporting multiple payment methods. Tax Compliance: Automatically calculates and reports tax information, ensuring compliance with local tax regulations. Data Analysis and Reporting: Provides real-time financial reporting and analysis to help businesses better understand and manage their invoices and expenditures. Integration and Extensibility: Integrates with other financial systems (such as ERP, accounting software, etc.) and allows for expansion through plugins or APIs.","s":"Core Features","u":"/apps/spend-management/invoice/","h":"#core-features","p":231},{"i":236,"t":"Increased Efficiency: The automated invoice processing workflow significantly reduces the time and errors associated with manual operations. Enhanced Visibility: Real-time data analysis and reporting provide deep insights into business expenditures. Ensured Compliance: Automated tax calculations and approval workflows ensure that businesses comply with all relevant financial and tax regulations. Flexibility and Extensibility: The design based on a low-code platform makes the system easy to customize and expand to meet the ever-changing needs of businesses. The Steedos Invoice Management System is a tailor-made solution for modern enterprises, aimed at enhancing the efficiency and transparency of financial management through technological innovation.","s":"Advantages","u":"/apps/spend-management/invoice/","h":"#advantages","p":231},{"i":238,"t":"In today's globalized business environment, selecting the right suppliers and maintaining good supplier relationships is crucial. The Steedos Supplier Management System offers businesses a centralized solution to systematically manage supplier information, evaluate their qualifications, and optimize interactions with them.","s":"Steedos Supplier Management System","u":"/apps/spend-management/supplier/","h":"","p":237},{"i":240,"t":"Supplier Information Management: Input and update basic supplier details such as company name, address, contact information, etc. Qualification Review: Evaluate the documentation provided by suppliers, including company credentials, business licenses, product or service quality certificates, etc. Set review standards and processes to ensure suppliers meet the company's requirements. Onboarding Process: Define supplier onboarding criteria and processes. Includes initial cooperation negotiations, price and contract term discussions, pilot projects, or sample testing. Evaluation and Scoring: Conduct regular supplier evaluations. Score suppliers based on various criteria. Reporting and Analysis: Auto-generate supplier performance reports. Analyze supplier data to provide insights and recommendations.","s":"Key Features:","u":"/apps/spend-management/supplier/","h":"#key-features","p":237},{"i":242,"t":"User-friendly Interface: A clear and intuitive interface design allows users to navigate and use the system with ease. High Customizability: Built on the Steedos low-code platform, businesses can customize the system according to their needs. Integration Capabilities: Easily integrates with other enterprise systems (e.g., ERP, financial software). Data Security and Compliance: Offers multi-level security measures to ensure the safety and compliance of supplier data. The Steedos Supplier Management System provides businesses with a comprehensive tool to manage supplier relationships more efficiently and systematically. Whether you're an SME or a large multinational corporation, this system can assist you in optimizing your supply chain and maximizing value.","s":"Product Highlights:","u":"/apps/spend-management/supplier/","h":"#product-highlights","p":237},{"i":244,"t":"The Project Cost Management System is an application developed on the Steedos low-code platform, designed to help businesses effectively track and manage project costs. This system offers a comprehensive set of tools for monitoring project budgets, actual expenditures, labor costs, travel expenses, etc., ensuring that project costs are kept within budget, thereby enhancing project profitability and management efficiency.","s":"Project Cost Management System","u":"/apps/spend-management/project/","h":"","p":243},{"i":246,"t":"By using the Project Cost Management System, businesses can more effectively control project costs, improve project profitability and management efficiency, and thus gain an advantage in the fierce market competition.","s":"Overview","u":"/apps/spend-management/project/","h":"#overview","p":243},{"i":248,"t":"Project Budget Management: Set project budgets, including labor costs, material expenses, travel expenses, etc., to ensure project costs are controlled within budget limits. Expense Tracking: Record and track all expenses related to the project, including direct and indirect costs, and update the project cost status in real-time. Labor Cost Management: Track the working hours of project team members, calculate labor costs, and analyze the efficiency of human resource utilization. Travel Expense Management: Manage the travel expenses of the project team, including transportation, accommodation, meals, etc., ensuring that travel expenses are reasonable and transparent. Contract Management: Manage all contracts related to the project, including supplier contracts, procurement contracts, etc., to ensure the execution of contract terms. Reporting and Analysis: Provide rich reporting and analysis tools to help management understand the project cost status and make more informed decisions. Alert Mechanism: When project costs exceed the budget or approach the budget limit, the system automatically issues alerts to help project managers take timely measures. Integration and Extensibility: The system can be integrated with other enterprise applications (such as financial systems, human resource systems, etc.) to provide a more comprehensive project cost management.","s":"Core Features","u":"/apps/spend-management/project/","h":"#core-features","p":243},{"i":250,"t":"IT companies managing the cost expenditures of software projects. Construction companies managing the costs of engineering projects. Manufacturing enterprises managing the costs of product development projects. Consulting firms managing the costs of client projects.","s":"Application Scenarios","u":"/apps/spend-management/project/","h":"#application-scenarios","p":243},{"i":252,"t":"The Steedos Tender Management System, developed on the Steedos low-code platform, is a highly customizable solution designed to streamline the tendering process for businesses and government agencies. It aims to simplify the tendering workflow, enhance efficiency and transparency, and ensure fairness and compliance in tendering activities.","s":"Steedos Tender Management System","u":"/apps/spend-management/tender/","h":"","p":251},{"i":255,"t":"Easily create and manage tender projects. Customize tendering processes and rules. Track project progress and status updates.","s":"1. Tender Project Management","u":"/apps/spend-management/tender/","h":"#1-tender-project-management","p":251},{"i":257,"t":"Design and publish tender announcements. Utilize various announcement templates for quick document generation. Set announcement release dates and bidding deadlines.","s":"2. Tender Announcement Publication","u":"/apps/spend-management/tender/","h":"#2-tender-announcement-publication","p":251},{"i":259,"t":"Securely store and manage all bid documents. Support for uploading and downloading various file formats. Offer version control and audit tracking for documents.","s":"3. Bid Document Management","u":"/apps/spend-management/tender/","h":"#3-bid-document-management","p":251},{"i":261,"t":"Register and manage supplier information. Automatically verify supplier qualifications and past performance. Allow suppliers to self-register and update their details.","s":"4. Supplier Management","u":"/apps/spend-management/tender/","h":"#4-supplier-management","p":251},{"i":263,"t":"Set evaluation criteria and scoring systems. Support online bid evaluations and record evaluation meetings. Provide statistical analysis of bid results.","s":"5. Bid Evaluation & Decision Support","u":"/apps/spend-management/tender/","h":"#5-bid-evaluation--decision-support","p":251},{"i":265,"t":"Automatically generate award notices and contract documents. Publish award results online. Manage changes and extensions during contract execution.","s":"6. Contract Award & Management","u":"/apps/spend-management/tender/","h":"#6-contract-award--management","p":251},{"i":267,"t":"Implement strict permission controls and user authentication. Maintain comprehensive operation logs and audit trails. Support data backups and disaster recovery.","s":"7. System Security & Audit","u":"/apps/spend-management/tender/","h":"#7-system-security--audit","p":251},{"i":269,"t":"High Customizability: Built on the Steedos low-code platform, it can be quickly customized to fit specific organizational needs. Efficiency Boost: Automated processes significantly reduce manual operations, enhancing tendering efficiency. Enhanced Transparency: All tendering information and processes are conducted online, ensuring openness and transparency. Risk Mitigation: Security measures and audit functions help prevent fraudulent activities and reduce tendering risks. Centralized Management: Centralize all tendering activities for better oversight and control. The Steedos Tender Management System is the ideal tool for businesses and government agencies to conduct their tendering activities. It not only improves the efficiency and transparency of the tendering process but also helps users mitigate risks and elevate their management standards.","s":"System Benefits","u":"/apps/spend-management/tender/","h":"#system-benefits","p":251},{"i":271,"t":"Deploy quickly, monitor effectively, and continuously optimize various business processes. Approval King provides a graphical interface for form and process design, helping users quickly transform various approval processes in the company into electronically enforceable workflows. tip Available on: Professional Edition","s":"Approval King","u":"/automation/approval-king/","h":"","p":270},{"i":274,"t":"The forms we refer to here are actually application forms. When users submit an application, administrators define where users can input information, what information they need to provide, whether it should be entered or selected, and so on in the backend settings.","s":"Form design","u":"/automation/approval-king/admin-guide","h":"#form-design","p":272},{"i":276,"t":"After designing the form, administrators need to define the flow of the approval process, including the approval steps and designated approvers for each stage. In Approval King, each approval stage is called a \"node,\" which is linked to other nodes through connectors. A node may have only one following approval stage, or it can have multiple possible following stages through various connectors. The following approval nodes can be designated by the previous step's approver or automatically determined based on preset condition settings.","s":"Flow design","u":"/automation/approval-king/admin-guide","h":"#flow-design","p":272},{"i":278,"t":"Upon logging into the system, you can access the \"Process\" module, where you can initiate, approve, and inquire about application forms. You can get an overview of the application form's progress by checking the \"Process Diagram\" located at the top of the page. The highlighted node on the process diagram indicates the current step of the application form.","s":"Users Started","u":"/automation/approval-king/getting-started","h":"","p":277},{"i":280,"t":"In daily corporate operations, reimbursement management is often a tedious part of financial tasks. Steedos Expense Solution, based on Steedos' low-code platform, builds a comprehensive, intelligent reimbursement process management system for you, focusing on providing an efficient, standardized reimbursement experience for enterprises.","s":"Steedos Expense: Smart, Efficient, One-stop Reimbursement Experience","u":"/apps/spend-management/expense/","h":"","p":279},{"i":282,"t":"Steedos Expense Solution is a low-code application developed on the Steedos platform, aiming to provide businesses with an efficient, convenient reimbursement management tool. Through this solution, users can easily complete the entire process from reimbursement application, approval to financial payment.","s":"Introduction","u":"/apps/spend-management/expense/","h":"#introduction","p":279},{"i":284,"t":"This solution mainly targets financial departments, administrative departments of medium to large enterprises, and employees who need reimbursement. Whether it's the headquarters or branches, they can achieve centralized management and auditing through this system.","s":"Target Users","u":"/apps/spend-management/expense/","h":"#target-users","p":279},{"i":286,"t":"Invoice Scanning & Recognition: Employees only need to scan the invoice, and the system automatically reads and fills in related information, simplifying the data input process. Authenticity Verification: Automatically verifies the authenticity of scanned invoices, ensuring the compliance and authenticity of each reimbursement. One-click Reimbursement Submission: Streamlines the reimbursement application process. Employees can easily submit reimbursements with one click, with automated approval routing. Real-time Approval & Notification: Reimbursement approval is progressed in real-time, with instant notifications to the relevant personnel, avoiding reimbursement delays. Financial Settlement & Analysis: Automates financial settlement, provides multi-dimensional reimbursement data analysis, aiding financial decisions.","s":"Core Features","u":"/apps/spend-management/expense/","h":"#core-features","p":279},{"i":288,"t":"Flexibility: Based on the Steedos low-code platform, companies can deeply customize according to their business needs. Automation: Supports invoice scanning recognition and authenticity verification, significantly reducing manual input workload. Transparency: Every step of the reimbursement process has clear records and tracking, ensuring compliant funds transfer. Integration: Can easily integrate with other financial, ERP systems for seamless data integration. Data Security & Confidentiality: Strict data protection measures to ensure the security and privacy of each reimbursement data. Mobile-friendly: Whether on PC or mobile devices, smooth user experience meets the needs of modern mobile enterprises.","s":"Key Highlights","u":"/apps/spend-management/expense/","h":"#key-highlights","p":279},{"i":291,"t":"Ensure you have collected and organized all the invoices and related proofs for reimbursement.","s":"Preparation","u":"/apps/spend-management/expense/","h":"#preparation","p":279},{"i":293,"t":"On the \"Create Reimbursement\" page, fill in the basic reimbursement information, such as reimbursement amount, category, etc. If it involves travel expenses or hospitality expenses, make sure to fill in detailed travel or hospitality reasons and personnel list.","s":"Fill in Reimbursement Information","u":"/apps/spend-management/expense/","h":"#fill-in-reimbursement-information","p":279},{"i":295,"t":"Choose \"Upload Invoice\" and take a clear photo of the front side of the invoice. The system will automatically scan and recognize the invoice, and you only need to confirm if the recognized results are correct. For manually input invoices, ensure that the entered information matches the details on the invoice.","s":"Invoice Upload & Scan","u":"/apps/spend-management/expense/","h":"#invoice-upload--scan","p":279},{"i":297,"t":"Check that all the information is complete and ensure that the invoice matches the reimbursement details. Click the \"Submit\" button, and your reimbursement application will enter the approval process. You can check the status of your reimbursement in \"My Reimbursements\" at any time.","s":"Submit Reimbursement Application","u":"/apps/spend-management/expense/","h":"#submit-reimbursement-application","p":279},{"i":300,"t":"Steedos expense management solution supports automatic scanning and recognition of invoices, making the data entry faster and more accurate. Here's how: In the \"Invoice Management\" module, choose \"Scan Invoice\". Place the front side of the invoice on a clear background for capture or scanning. Upload the invoice image, and the system will automatically scan and recognize the content of the invoice. Once recognized, the system will display the recognized invoice information, such as invoice number, amount for user confirmation.","s":"Invoice Scanning & Auto Recognition","u":"/apps/spend-management/expense/","h":"#invoice-scanning--auto-recognition","p":279},{"i":302,"t":"Although the auto-recognition feature greatly improves efficiency, you might need to manually input invoice information in certain situations. Here are the steps: In the \"Invoice Management\" module, choose \"Add Invoice\". Based on the actual content of the invoice, fill in the invoice number, date, amount, buyer, seller, and other relevant information. If you have a digital version of the invoice image or scanned copy, you can choose to upload it as an attachment. After ensuring that the entered information is correct, click \"Save\".","s":"Manual Invoice Entry","u":"/apps/spend-management/expense/","h":"#manual-invoice-entry","p":279},{"i":304,"t":"To ensure compliance in financial management, the Steedos expense management solution also provides an invoice authenticity verification feature. By matching data with the National Taxation Bureau, you can quickly determine the authenticity of the invoice. In the \"Invoice Management\" module, select the invoice entry you want to verify. Click the \"Verify Authenticity\" button. The system will automatically compare the data with the National Tax Bureau, and quickly return the verification result. If the invoice is genuine, you can proceed with the subsequent reimbursement process. If the invoice is fake, the system will flag the invoice and notify the user.","s":"Invoice Authenticity Verification","u":"/apps/spend-management/expense/","h":"#invoice-authenticity-verification","p":279},{"i":307,"t":"Once you submit a reimbursement application, it will be routed based on a pre-set process. Each step in the process might involve one or multiple approvers. After application submission, the system will automatically notify the first approver. The approver can view pending reimbursement applications through email, SMS, or in-system notifications.","s":"Reimbursement Routing & Notification","u":"/apps/spend-management/expense/","h":"#reimbursement-routing--notification","p":279},{"i":309,"t":"As an approver, you can take the following actions on a reimbursement application: Agree: If you find the reimbursement request reasonable, you can choose to agree. Reject: If you find issues with the reimbursement request, you can choose to reject. When rejecting, you need to provide a reason. Reply: If you have doubts about the reimbursement content or need further information, you can choose to reply and ask questions.","s":"Approval Actions & Responses","u":"/apps/spend-management/expense/","h":"#approval-actions--responses","p":279},{"i":311,"t":"If the reimbursement application is rejected, the applicant can modify the reimbursement content based on feedback from the approver: Access the details page of the rejected reimbursement application. Modify the relevant content. Resubmit the reimbursement application.","s":"Reimbursement Modification & Resubmission","u":"/apps/spend-management/expense/","h":"#reimbursement-modification--resubmission","p":279},{"i":314,"t":"On the \"Reimbursement Management\" page, you can see the current status of each reimbursement, such as \"Pending Approval\", \"Approved\", \"Rejected\".","s":"Check Reimbursement Status","u":"/apps/spend-management/expense/","h":"#check-reimbursement-status","p":279},{"i":316,"t":"Click on any reimbursement record to view detailed content of that reimbursement, including: Reimbursement amount Reason for reimbursement Submission date Approval history","s":"Reimbursement Details & History","u":"/apps/spend-management/expense/","h":"#reimbursement-details--history","p":279},{"i":318,"t":"To export reimbursement records as an electronic document, follow these steps: On the \"Reimbursement Management\" page, select the reimbursement records you want to export. Click the \"Export\" button. Choose the export format, such as Excel or PDF. Confirm the export.","s":"Export Reimbursement Records","u":"/apps/spend-management/expense/","h":"#export-reimbursement-records","p":279},{"i":320,"t":"The Steedos Expense Solution, built on the Steedos low-code platform, offers an efficient, streamlined, and standardized process for enterprises. With advanced features like invoice scanning recognition, authenticity verification, and mobile compatibility, this solution not only simplifies the reimbursement process but also brings greater convenience to both financial personnel and employees. Embrace the future of smart financial management with Steedos!","s":"Conclusion","u":"/apps/spend-management/expense/","h":"#conclusion","p":279},{"i":322,"t":"Instead of relying on your users to perform each part of a business process, automate it! The benefits are two-fold: your users can spend their time on other tasks, and you can trust that the process is always done just so. Steedos offers tools to automate several kinds of business processes: behind-the-scenes automation, and approval automation. You'll be happy to know that these tools don't require you to write codeโthey're all point-and-click.","s":"Automate Your Business Processes","u":"/automation","h":"","p":321},{"i":324,"t":"An automated action is a reusable component that performs some sort of action behind the scenesโlike updating a field or sending an email. After you create an automated action, add it to a process, milestone, or other automated process.","s":"๐๏ธ Automated Actions","u":"/automation","h":"","p":321},{"i":326,"t":"Workflow rules let you automate standard internal procedures and processes to save time across your org. A workflow rule is the main container for a set of workflow instructions. These instructions can always be summed up in an if/then statement.","s":"๐๏ธ Workflow Rules","u":"/automation","h":"","p":321},{"i":328,"t":"Itโs likely that youโre familiar with process automation in the form of workflow rules. Approval processes take automation one step further, letting you specify a sequence of steps that are required to approve a record.","s":"๐๏ธ Approval Processes","u":"/automation","h":"","p":321},{"i":330,"t":"2 items","s":"๐๏ธ Approval King","u":"/automation","h":"","p":321},{"i":332,"t":"Itโs likely that youโre familiar with process automation in the form of workflow rules. Approval processes take automation one step further, letting you specify a sequence of steps that are required to approve a record. An approval process automates how records are approved in Steedos. An approval process specifies each step of approval, including from whom to request approval and what to do at each point of the process. EXAMPLE Your org has a three-tier process for approving expenses. This approval process automatically assigns each request to right person in your org, based on the amount requested. If an expense record is submitted for approval, lock the record so that users canโt edit it and change the status to Submitted. If the amount is $50 or less, approve the request. If the amount is greater than $50, send an approval request to the direct manager. If the amount is greater than $5,000 and the first approval request is approved, send an approval request to the vice president. If all approval requests are approved, change the status to Approved and unlock the record. If any approval requests are rejected, change the status to Rejected and unlock the record.","s":"Approval Processes","u":"/automation/approval-process","h":"","p":331},{"i":335,"t":"This document will guide you on how to deploy the Steedos platform on your server using Docker.","s":"๐๏ธ Docker","u":"/deploy","h":"","p":333},{"i":337,"t":"Follow the steps below to deploy Steedos in an Ubuntu 20.04 intranet environment.","s":"๐๏ธ Intranet","u":"/deploy","h":"","p":333},{"i":339,"t":"Gitpod is an online Integrated Development Environment (IDE) which is used for software development. It's a cloud-based service that allows developers to work on their projects directly from their web browser. This service provides a complete dev environment for every Git project, including pull requests and branches.","s":"๐๏ธ Try with Gitpod","u":"/deploy","h":"","p":333},{"i":341,"t":"This page provides instructions on how to configure your self-hosted Steedos instance.","s":"๐๏ธ Instance Configuration","u":"/deploy","h":"","p":333},{"i":343,"t":"Workflow rules let you automate standard internal procedures and processes to save time across your org. A workflow rule is the main container for a set of workflow instructions. These instructions can always be summed up in an if/then statement. or example: If itโs raining, then bring an umbrella. Workflow rules can be broken into two main components. Criteria: the โifโ part of the โif/thenโ statement. In other words, what must be true of the record for the workflow rule to execute the associated actions. Actions: the โthenโ part of the โif/thenโ statement. In other words, what to do when the record meets the criteria. In the raining example, the criteria is โitโs rainingโ and the action is โbring an umbrellaโ. If the criteria isnโt met (it isnโt raining), then the action isnโt executed (you donโt bring an umbrella).","s":"Workflow Rules","u":"/automation/workflow-rules","h":"","p":342},{"i":345,"t":"This document will guide you on how to deploy the Steedos platform on your server using Docker.","s":"Steedos Docker Deployment Guide","u":"/deploy/deploy-docker","h":"","p":344},{"i":347,"t":"Before you begin, ensure that your system meets the following requirements: Docker (version 20.10.7 or higher) Docker-Compose (version 1.29.2 or higher) Ensure that server ports (such as 80, 443) are open for external access If deploying Steedos Enterprise Edition, you need to obtain a license first","s":"Prerequisites","u":"/deploy/deploy-docker","h":"#prerequisites","p":344},{"i":350,"t":"Create a file named docker-compose.yml and fill in the following content: Community Edition Enterprise Edition version: \"3.9\" services: steedos: image: steedos/steedos-community:latest ports: - \"80:80\" # Steedos - \"27017:27017\" # MongoDB - \"9001:9001\" # Supervisor - \"6379:6379\" # Redis environment: - ROOT_URL=http://127.0.0.1 - NPM_REGISTRY_URL=https://registry.npmmirror.com volumes: - \"./steedos-storage:/steedos-storage\" version: \"3.9\" services: steedos-enterprise: image: steedos/steedos-enterprise:latest container_name: steedos-enterprise ports: - \"80:80\" # Steedos - \"27017:27017\" # MongoDB - \"9001:9001\" # Supervisor - \"6379:6379\" # Redis environment: - ROOT_URL=http://127.0.0.1 - NPM_REGISTRY_URL=https://registry.npmmirror.com - STEEDOS_LICENSE=trial tty: true volumes: - \"./steedos-storage:/steedos-storage\" Please adjust the environment variables and ports according to your actual situation.","s":"1. Prepare Configuration File","u":"/deploy/deploy-docker","h":"#1-prepare-configuration-file","p":344},{"i":352,"t":"In the directory containing the docker-compose.yml file, run the following command to start the Steedos and MongoDB containers: docker-compose up -d","s":"2. Start Containers","u":"/deploy/deploy-docker","h":"#2-start-containers","p":344},{"i":354,"t":"After deployment, you can verify that Steedos is running successfully by accessing http://localhost (or your configured address) through a browser.","s":"3. Verify Deployment","u":"/deploy/deploy-docker","h":"#3-verify-deployment","p":344},{"i":356,"t":"Security: To enhance security, it is recommended to configure SSL/TLS and ensure that all communications are conducted via HTTPS. Backup: Regularly back up your MongoDB database to prevent data loss. Performance Monitoring: Use Docker or third-party tools to monitor the performance and resource usage of Steedos containers.","s":"Configuration and Optimization","u":"/deploy/deploy-docker","h":"#configuration-and-optimization","p":344},{"i":358,"t":"If you encounter problems during deployment, check the following: Ensure all environment variables are correctly set. Check the Docker container logs for error messages. Ensure server ports are not blocked by a firewall.","s":"Troubleshooting","u":"/deploy/deploy-docker","h":"#troubleshooting","p":344},{"i":360,"t":"When Steedos releases a new version, you can update your deployment with the following steps: Stop the currently running containers: docker-compose down Pull the latest Steedos image: docker-compose pull Restart the containers: docker-compose up -d Ensure you back up your data before updating.","s":"Updates and Maintenance","u":"/deploy/deploy-docker","h":"#updates-and-maintenance","p":344},{"i":362,"t":"Configuring Steedos Instances","s":"Further Reading","u":"/deploy/deploy-docker","h":"#further-reading","p":344},{"i":364,"t":"An automated action is a reusable component that performs some sort of action behind the scenesโlike updating a field or sending an email. After you create an automated action, add it to a process, milestone, or other automated process.","s":"Automated Actions","u":"/automation/automated-actions","h":"","p":363},{"i":366,"t":"Gitpod is an online Integrated Development Environment (IDE) which is used for software development. It's a cloud-based service that allows developers to work on their projects directly from their web browser. This service provides a complete dev environment for every Git project, including pull requests and branches. You can use Gitpod to run this steedos project remotely. https://gitpod.io/#https://github.com/steedos-labs/contract","s":"Try with Gitpod","u":"/deploy/gitpod","h":"","p":365},{"i":368,"t":"Steedos Developer Experience (DX) is a new way of managing and developing applications on the Steedos low-code platform throughout their entire lifecycle. It combines the best features of a low-code platform, achieving source-driven development, team collaboration with governance, and a new level of custom app development on Steedos.","s":"How Steedos Developer Experience Changes Your Way of Working","u":"/developer","h":"","p":367},{"i":371,"t":"Track changes and history with version control systems like Git. Provide a single source of truth for your organization's metadata, ensuring consistency across environments.","s":"1. Source-driven development","u":"/developer","h":"#1-source-driven-development","p":367},{"i":373,"t":"Supports concurrent development, promoting teamwork and parallel workflows. Reduces conflicts through isolated development environments and clear insight into changes.","s":"2. Team Collaboration","u":"/developer","h":"#2-team-collaboration","p":367},{"i":375,"t":"Integrates with popular CI/CD tools for automated testing and deployment. Encourages a robust development cycle through continuous feedback and iterative improvements.","s":"3. Continuous Integration and Deployment (CI/CD)","u":"/developer","h":"#3-continuous-integration-and-deployment-cicd","p":367},{"i":377,"t":"Run your packages on different Steedos environments for various purposes (development, testing, staging). Ensures isolation between production and non-production environments.","s":"4. Environment Management","u":"/developer","h":"#4-environment-management","p":367},{"i":379,"t":"Organize metadata and settings into logical units (packages) that are easy to manage and deploy. Handle dependencies cleanly, ensuring coordinated functioning and deployment when necessary.","s":"5. Package and Dependency Management","u":"/developer","h":"#5-package-and-dependency-management","p":367},{"i":381,"t":"Allows for deploying specific features or updates without a full-scale deployment. Enhances agility and responsiveness to business requirements.","s":"6. Modular Deployment","u":"/developer","h":"#6-modular-deployment","p":367},{"i":383,"t":"Steedos is a powerful low-code development platform, offering extensive no-code development capabilities enabling even non-technical users to create complex business applications. Here are some core features of Steedos in no-code development:","s":"No-Code Development","u":"/developer","h":"#no-code-development","p":367},{"i":385,"t":"Steedos allows users to create custom business objects through its intuitive interface, without writing any code. These custom objects can represent any entity in business operations (e.g., customers, projects, contracts, etc.). Users can define their own fields for these objects, accommodating various data types (such as text, numbers, dates, etc.), ensuring structured and organized data. By establishing relationships between objects, one can simulate real-world business relationships, enhancing data coherence and usability.","s":"Custom Objects","u":"/developer","h":"#custom-objects","p":367},{"i":387,"t":"Steedos offers various tools and components, allowing users to customize the user interface of applications. For example, users can use \"Page Layouts\" and \"Page Builders\" to control how information is presented and the layout of interfaces. The \"Page Builder\" also allows users to create attractive and responsive page designs by dragging and dropping interface components, without needing professional front-end development skills. Additionally, users can create custom navigation menus, buttons, and actions, enhancing application interactivity and user experience.","s":"Custom User Interface","u":"/developer","h":"#custom-user-interface","p":367},{"i":389,"t":"With Steedos's \"Automation Actions\" and \"Workflow Rules,\" users can design and automate business processes, such as sending automated email notifications, updating record fields, assigning tasks, etc. The \"Process Designer\" is a powerful tool providing a visual interface where users can set trigger conditions and define automated sequences of steps (known as processes). Besides standard automation features, users can also introduce complex business logic through formulas and business rules, ensuring the flexibility and accuracy of processes.","s":"Automated Workflows","u":"/developer","h":"#automated-workflows","p":367},{"i":391,"t":"Steedos DX changes the way low-code application development lifecycle management is approached, offering a more modern, source-driven development method. It includes a whole set of tools enabling developers to collaborate more efficiently, and to build Steedos apps in a more organized manner, more in line with best practices.","s":"Source-Driven Development with Steedos DX","u":"/developer","h":"#source-driven-development-with-steedos-dx","p":367},{"i":393,"t":"The Steedos Developer Experience (DX) is a new approach for managing and developing applications on the Steedos low-code platform, spanning the entire application lifecycle. It brings together the best features of low-code platforms, enabling source-driven development, governed team collaboration, and a new level of custom application development on Steedos.","s":"Project Setup","u":"/developer","h":"#project-setup","p":367},{"i":395,"t":"Steedos packages store custom objects and custom object translations in intuitive subdirectories. The source format makes it easier for you to find what you want to change or update. Say goodbye to messy merges.","s":"Package Development","u":"/developer","h":"#package-development","p":367},{"i":397,"t":"The Steedos platform is based on the Moleculer microservices architecture, where each package is a Moleculer Service. You can define REST APIs, triggers, actions, methods, and subscribe to events in the service.","s":"Package Microservice Development","u":"/developer","h":"#package-microservice-development","p":367},{"i":399,"t":"Introducing Steedos Micro Page Builder, a powerful micro page development toolkit rooted in Baidu's AMIS technology. this platform facilitates the creation of custom pages and components and makes it easier with its visual design tool.","s":"Micro Page Builder","u":"/developer","h":"#micro-page-builder","p":367},{"i":401,"t":"Steedos offers a rich set of APIs allowing integration with external systems and third-party applications. This ensures that your Steedos instance can seamlessly connect with your entire enterprise technology stack.","s":"API Integration","u":"/developer","h":"#api-integration","p":367},{"i":403,"t":"This page provides instructions on how to configure your self-hosted Steedos instance.","s":"Instance Configuration","u":"/deploy/steedos-config","h":"","p":402},{"i":405,"t":"# Platform PORT=80 ROOT_URL=http://localhost # Database MONGO_URL=mongodb://127.0.0.1:27017/steedos MONGO_OPLOG_URL=mongodb://127.0.0.1:27017/local # Microservices communication [https://moleculer.services/docs/0.14/networking.html](https://moleculer.services/zh/docs/0.14/networking.html) TRANSPORTER=redis://127.0.0.1:6379 # Caching https://moleculer.services/zh/docs/0.14/caching.html CACHER=redis://127.0.0.1:6379/1","s":"Required Configuration","u":"/deploy/steedos-config","h":"#required-configuration","p":402},{"i":407,"t":"Configure login screen related parameters, such as whether registration is allowed, whether password modification is permitted, whether company creation is allowed. # Allow account creation, default is true when the database is empty STEEDOS_TENANT_ENABLE_REGISTER=true # Allow password recovery, setting to true will display a link to retrieve the password, default is false. STEEDOS_TENANT_ENABLE_FORGET_PASSWORD=true # Allow creation of companies, by default only allowed when the database is empty STEEDOS_TENANT_ENABLE_CREATE_TENANT=false # Allow password login, enabled by default for both registration and login. Default is true STEEDOS_TENANT_ENABLE_PASSWORD_LOGIN=true # Mandatory email binding, email input and verification required after login. Default is false STEEDOS_TENANT_ENABLE_BIND_EMAIL=false # Mandatory mobile number binding, mobile number input and verification required after login. Default is false STEEDOS_TENANT_ENABLE_BIND_MOBILE=false # Allow login using email verification code, default method for both registration and login when enabled. STEEDOS_TENANT_ENABLE_EMAIL_CODE_LOGIN=false # Allow login using mobile verification code, default method for both registration and login when enabled. STEEDOS_TENANT_ENABLE_MOBILE_CODE_LOGIN=false # Default is a 43-character string, a new value is generated each time the service is restarted STEEDOS_TENANT_TOKEN_SECRET= # Default is 90d STEEDOS_TENANT_ACCESS_TOKEN_EXPIRES_IN= # Default is 7d STEEDOS_TENANT_REFRESH_TOKEN_EXPIRES_IN=","s":"Login Screen","u":"/deploy/steedos-config","h":"#login-screen","p":402},{"i":409,"t":"METADATA_SERVER=http://localhost:5000 METADATA_APIKEY=","s":"Metadata Synchronization","u":"/deploy/steedos-config","h":"","p":402},{"i":411,"t":"Configure parameters related to attachment storage.","s":"Attachment Storage","u":"/deploy/steedos-config","h":"#attachment-storage","p":402},{"i":413,"t":"STEEDOS_CFS_STORE=local STEEDOS_STORAGE_DIR=/steedos-storage","s":"Local File System","u":"/deploy/steedos-config","h":"#local-file-system","p":402},{"i":415,"t":"Attachments can be stored on servers supporting the S3 protocol, including AWS, Alibaba Cloud, Tencent Cloud storage services, or privately deployed minio services. STEEDOS_CFS_STORE=S3 STEEDOS_CFS_AWS_S3_ENDPOINT=http://minio:9000 STEEDOS_CFS_AWS_S3_FORCE_PATH_STYLE=true STEEDOS_CFS_AWS_S3_BUCKET=steedos-prod STEEDOS_CFS_AWS_S3_ACCESS_KEY_ID=${MINIO_ROOT_USER:-steedos} STEEDOS_CFS_AWS_S3_SECRET_ACCESS_KEY=${MINIO_ROOT_PASSWORD:-steedos123}","s":"S3","u":"/deploy/steedos-config","h":"#s3","p":402},{"i":417,"t":"By default, uploaded avatars, images, and attachments in the system require login for download. The following variable can be set for anonymous downloads. # Options include avatars, images, files, default is avatars STEEDOS_CFS_DOWNLOAD_PUBLIC=avatars,images","s":"Attachment Anonymous Download","u":"/deploy/steedos-config","h":"#attachment-anonymous-download","p":402},{"i":419,"t":"Configure parameters for mobile push notifications, used for receiving notification messages on the Steedos mobile app. # iOS STEEDOS_PUSH_APN_DATA= # Andriod STEEDOS_GCM_APIKEY= STEEDOS_GCM_PROJECT_NUMBER= # Huawei STEEDOS_PUSH_HUAWEI_APPID= STEEDOS_PUSH_HUAWEI_APPPKGNAME= STEEDOS_PUSH_HUAWEI_APPSECRET= # Xiaomi STEEDOS_PUSH_MI_APPSECRET= STEEDOS_PUSH_MI_PRODUCTION=","s":"Push Notifications","u":"/deploy/steedos-config","h":"#push-notifications","p":402},{"i":421,"t":"Configure SMTP service parameters for system push emails. STEEDOS_EMAIL_FROM= STEEDOS_EMAIL_URL= STEEDOS_EMAIL_HOST= STEEDOS_EMAIL_PORT= STEEDOS_EMAIL_USERNAME= STEEDOS_EMAIL_PASSWORD= STEEDOS_EMAIL_SECURE= STEEDOS_EMAIL_SIGNNAME=","s":"Email Configuration","u":"/deploy/steedos-config","h":"#email-configuration","p":402},{"i":423,"t":"Enterprise Edition: Configure parameters for OpenID Connect single sign-on, can connect to Keycloak server. # OpenID Connect STEEDOS_IDENTITY_OIDC_ENABLED=true STEEDOS_IDENTITY_OIDC_CONFIG_URL=https://id.steedos.cn/realms/master/.well-known/openid-configuration STEEDOS_IDENTITY_OIDC_CLIENT_ID=steedos-oidc-public STEEDOS_IDENTITY_OIDC_CLIENT_SECRET=none STEEDOS_IDENTITY_OIDC_NAME=Steedos ID STEEDOS_IDENTITY_OIDC_LOGO= STEEDOS_IDENTITY_OIDC_REQUIRE_LOCAL_ACCOUNT=false","s":"OIDC Authentication","u":"/deploy/steedos-config","h":"#oidc-authentication","p":402},{"i":425,"t":"Configure the properties for scheduled tasks. # Time to execute database indexing, like โ0 0 * * * *โ above means indexing operation is performed once every hour. Existing indexes are not recreated. STEEDOS_CRON_BUILD_INDEX=\"0 0 * * * *\" # Execution time for workflow rule queue, time-based workflow actions depend on this configuration, like โ*/10 * * * * *โ above means it's executed every 1 minutes. STEEDOS_CRON_WORKFLOW_RULE='*/1 * * * *' # Polling interval for the mail queue, in milliseconds. STEEDOS_CRON_MAILQUEUE_INTERVAL=10000 # Polling interval for the push notification queue, in milliseconds. STEEDOS_CRON_PUSH_INTERVAL=1000 # Polling interval for the webhook queue, in milliseconds. STEEDOS_CRON_WEBHOOKQUEUE_INTERVAL=10000 # Polling interval for the instance record queue, in milliseconds. STEEDOS_CRON_INSTANCERECORDQUEUE_INTERVAL=10000 # Polling interval for the SMS queue, in milliseconds. STEEDOS_CRON_SMSQUEUE_INTERVAL=1000 # Polling interval for the object webhooks queue, in milliseconds. STEEDOS_CRON_OBJECTWEBHOOKSQUEUE_INTERVAL=10000 # Polling interval of the object & workflow synchronization queue, in milliseconds. STEEDOS_CRON_INSTANCERECORDQUEUE_INTERVAL=10000","s":"Scheduled Tasks","u":"/deploy/steedos-config","h":"#scheduled-tasks","p":402},{"i":427,"t":"STEEDOS_GRAPHQL_ENABLE_CONSOLE=true STEEDOS_UNPKG_URL=https://unpkg.steedos.cn STEEDOS_AMIS_VERSION=2.9.0 STEEDOS_PUBLIC_PAGE_ASSETURLS=http://127.0.0.1:8080/@steedos-widgets/amis-object/dist/assets-dev.json STEEDOS_ENABLE_PROCESS_TRIGGER=true","s":"Developer Options","u":"/deploy/steedos-config","h":"#developer-options","p":402},{"i":429,"t":"Configure parameters related to accounts. accounts: mobile_phone_locales: ['zh-CN'] mobile_regexp: '^[0-9]{11}$' is_username_skip_minrequiredlength: true UTF8_Names_Validation: '[A-Za-z0-9-_.\\u00C0-\\u017F\\u4e00-\\u9fa5]' mobile_phone_locales: This parameter takes precedence. Mobile phone localization, setting it to zh-CN means using the 11-digit mobile number in China. To support mobile numbers from other countries, please refer to validator. mobile_regexp: Regular expression for mobile phone format, using a regular expression to describe the correct mobile phone format. is_username_skip_minrequiredlength: Whether to skip the minimum character requirement for usernames, which is typically 6 characters by default. UTF8_Names_Validation: Regular expression for username rules.","s":"Account-related","u":"/deploy/steedos-config","h":"#account-related","p":402},{"i":431,"t":"The complexity of passwords is controlled through the password.policy attribute, which takes a regular expression as its value. public: password: policy: ^[A-Za-z0-9]{8,}$ policyError: \"Password cannot be less than 8 characters\" policies: - policy: 123 policyError: \"Password must include 123\" - policy: 456 policyError: \"Password must include 456\" policyFunction: ! function(password){ if(password === '12345678'){ throw new Error('Password cannot be 12345678'); } } public.password.policyFunction: string Function. Custom validation function (1 parameter: the user-entered password), you can import validation libraries or directly write validation rules. If the password does not meet the rules, throw an error directly. public.password.policies: Array<{policy: 'regular expression', policyError: 'error message when the expression is not met'}> When multiple password rules are configured, they will take effect simultaneously. The rules in the example above are effective at the same time.","s":"Password Policy Configuration","u":"/deploy/steedos-config","h":"#password-policy-configuration","p":402},{"i":433,"t":"Steedos, recognized as a trailblazer in low-code development platform, also provides a comprehensive suite of robust APIs, allowing a plethora of opportunities for enterprise integration, development, and functionality enhancement.","s":"API Guide","u":"/developer/api/","h":"","p":432},{"i":435,"t":"Steedos provides a comprehensive suite of robust APIs, allowing a plethora of opportunities for enterprise integration, development, and functionality enhancement.","s":"๐๏ธ Overview","u":"/developer/api/","h":"","p":432},{"i":437,"t":"Before calling an api, api authentication must be performed first. Steedos supports multiple ways to authenticate apis, making api calls easy and flexible. Moreover, it can also achieve functions such as single sign-on, validating login status, and logging out, making interface calls even more flexible and convenient.","s":"๐๏ธ API Authentication","u":"/developer/api/","h":"","p":432},{"i":439,"t":"GraphQL Console","s":"๐๏ธ GraphQL API","u":"/developer/api/","h":"","p":432},{"i":441,"t":"- OpenAPI API Documentation","s":"๐๏ธ OpenAPI","u":"/developer/api/","h":"","p":432},{"i":443,"t":"็ป่ฎกๅๆ็ๆฅ่กจAPI๏ผ็จไบ่ทๅๆฅ่กจๆฐๆฎใ","s":"๐๏ธ ๆฅ่กจ API","u":"/developer/api/","h":"","p":432},{"i":445,"t":"ๆ นๆฎๆต็จ็ๅ
ๆฐๆฎๅฎไน๏ผ่ชๅจ็ๆๅฎกๆน็ธๅ
ณAPIใ","s":"๐๏ธ Process API","u":"/developer/api/","h":"","p":432},{"i":447,"t":"Follow the steps below to deploy Steedos in an Ubuntu 20.04 intranet environment.","s":"Intranet","u":"/deploy/intranet","h":"","p":446},{"i":449,"t":"Ubuntu (Version 20.04) intranet server. A Linux server with a pre-installed Docker service, which requires access to the external network.","s":"Prerequisites","u":"/deploy/intranet","h":"#prerequisites","p":446},{"i":451,"t":"Please download on a connected Linux server: Visit the link: https://download.docker.com/linux/ubuntu/dists/focal/pool/stable/ Based on the applicable architecture (amd64, armhf, arm64, or s390x), download the required deb files for the intranet environment and upload them to the tmp directory of the intranet server. # Docker Engine docker-ce_24.0.7-1~ubuntu.20.04~focal_amd64.deb # Docker CLI docker-ce-cli_24.0.7-1~ubuntu.20.04~focal_amd64.deb # Docker Container containerd.io_1.6.9-1_amd64.deb # Docker Compose docker-compose-plugin_2.6.0~ubuntu-focal_amd64.deb Navigate to the tmp directory on the intranet server and install the .deb packages. sudo dpkg -i ./containerd.io_1.6.9-1_amd64.deb \\ ./docker-ce_24.0.7-1~ubuntu.20.04~focal_amd64.deb \\ ./docker-ce-cli_24.0.7-1~ubuntu.20.04~focal_amd64.deb \\ ./docker-compose-plugin_2.6.0~ubuntu-focal_amd64.deb After installation, check the Docker version. docker -v Docker version 24.0.7, build afdd53b","s":"Installing Docker","u":"/deploy/intranet","h":"#installing-docker","p":446},{"i":453,"t":"On your intranet server, create a folder named steedos for deployment and data storage. Create docker-compose.yml file: version: \"3.9\" services: steedos: image: steedos/steedos-community:2.6 ports: - \"5000:5000\" # Steedos - \"27017:27017\" # MongoDB - \"9001:9001\" # Supervisor - \"6379:6379\" # Redis env_file: - .env volumes: - \"./steedos-storage:/steedos-storage\" Create .env file: PORT=80 ROOT_URL=http://serverip View the docker-compose.yml file and download the relevant images. docker pull steedos/steedos-community:2.6 docker pull redis:6.2.10 docker pull mongo:4.4 Save the downloaded images as rar format files and upload them to the tmp directory of the intranet server. docker save -o steedos-community.rar steedos/steedos-community:2.6 docker save -o redis.rar redis:6.2.10 docker save -o mongo.rar mongo:4.4 Navigate to the tmp directory on the intranet server and sequentially load the images. docker load < steedos-community.rar docker load < redis.rar docker load < mongo.rar Navigate to the steedos directory on the intranet server and use the following command to start the Docker containers. If you don't have permission to run docker compose, you might need to use sudo. docker compose up -d","s":"Installing Steedos","u":"/deploy/intranet","h":"#installing-steedos","p":446},{"i":455,"t":"Specifications for Low-code platform's workflow engine related API interfaces, including rules for request parameters and return values, are stipulated in this agreement.","s":"Process API","u":"/developer/api/api-process","h":"","p":454},{"i":457,"t":"To call the API interfaces, user authentication information must be added to the request headers. For details, please refer to Interface Validation.","s":"Interface Validation","u":"/developer/api/api-process","h":"#interface-validation","p":454},{"i":459,"t":"Name Request Operation Start Approval POST Save Approval as Draft POST Submit Draft Application POST Submit Approval Request POST","s":"API List","u":"/developer/api/api-process","h":"#api-list","p":454},{"i":461,"t":"Below are the detailed specifications for each workflow API.","s":"API Specifications","u":"/developer/api/api-process","h":"#api-specifications","p":454},{"i":463,"t":"Create a new approval request in draft status. URIโ /api/workflow/v2/draft Methodโ POST Request Parametersโ The following parameters are required when requesting this interface. Name Type Description instance object Approval Form Field Values The 'instance' attribute is described as follows: Name Type Description space string Workspace ID flow string Process ID applicant string Applicant ID { \"instance\": { \"space\": \"hKdnwE55WcnWveYxS\", \"flow\": \"BayiYu3sk2hv3M2HW\", \"applicant\": \"62ede4f62161e377e35de58c\" } } Responseโ The format of the return value when the API interface request is successful is as follows: Name Type Description instance object Approval form field value Where the instance property is described as follows: Name Type Description _id string The successfully created application form ID space string Workspace ID flow string Workflow ID flow_version string Workflow version ID form string Form ID form_version string Form version ID { \"instance\": { \"_id\": \"zMiGNe2sJm9KuruvM\", \"space\": \"hKdnwE55WcnWveYxS\", \"flow\": \"BayiYu3sk2hv3M2HW\", \"flow_version\": \"Nvc5wjsgHYkXnNHhk\", \"form\": \"Pdq8neQvT7fv5aTyd\", \"form_version\": \"thX4kKBAx6iCgciWD\" } } The instance returned in the response contains information about the successfully created approval record.","s":"Start Approval","u":"/developer/api/api-process","h":"#start-approval","p":454},{"i":465,"t":"URIโ /api/workflow/v2/instance/save Methodโ POST Request parameters.โ The following parameters need to be passed when requesting this API. Name Type Description instance object Approval Form Field Values { \"instance\": { \"_id\": \"zMiGNe2sJm9KuruvM\", \"space\": \"hKdnwE55WcnWveYxS\", \"flow\": \"BayiYu3sk2hv3M2HW\", \"flow_version\": \"Nvc5wjsgHYkXnNHhk\", \"form\": \"Pdq8neQvT7fv5aTyd\", \"form_version\": \"thX4kKBAx6iCgciWD\", \"applicant\": \"62ede4f62161e377e35de58c\", \"applicant_name\": \"xxx\", \"applicant_organization\": \"XypyNbzGCJbHMNyWv\", \"applicant_organization_name\": \"xxx\", \"applicant_organization_fullname\": \"xxx\", \"code\": \"\", \"traces\": [ { \"_id\": \"7f316cb404fddf2098c8fd2d\", \"approves\": [ { \"_id\": \"97628d0b9a33b541816caeeb\", \"description\": \"\", \"values\": { \"field1\": \"xx\", \"field2\": \"xx\", \"field3\": \"xx\" }, \"next_steps\": [ { \"step\": \"e28faf97-a1c4-4bdd-90e5-1b43d42aa10b\", \"users\": [] } ] } ] } ], \"submit_date\": xxx } } Responseโ The format of the successful API interface request response is as follows: Name Type Description instance boolean Was the operation successful? { \"instance\": true }","s":"Save Draft Approval Form","u":"/developer/api/api-process","h":"#save-draft-approval-form","p":454},{"i":467,"t":"Submit an application in draft status to the next step URIโ /api/workflow/submit Methodโ POST Request Parametersโ The following parameters need to be passed when requesting this API. Name Type Description Instances object[] The content of the application form. { \"Instances\": [{ \"_id\": \"e6viWhvARgo4xSxBC\", \"inbox_users\": [], \"name\": \"Test\", \"submitter\": \"62ede4f62161e377e35de58c\", \"flow\": \"BayiYu3sk2hv3M2HW\", \"applicant\": \"62ede4f62161e377e35de58c\", \"traces\": [{ \"_id\": \"0aed02a8113d7e1a22d5a245\", \"step\": \"Ryu58zkQKrFLdvWpw\", \"approves\": [{ \"_id\": \"5865e212c0e80024005090f9\", \"description\": \"\", \"values\": { \"field1\": \"xxx\", \"field2\": \"xxx\", \"field3\": \"xxx\" }, \"next_steps\": [{ \"step\": \"e28faf97-a1c4-4bdd-90e5-1b43d42aa10b\", \"users\": [ \"62ede4f62161e377e35de58c\" ] }] }] }] }] } The traces contains the signature history for each step, while approves contains the approval process within each signature history, which records detailed information about the approval form. Responseโ When this API interface is requested successfully, the format of the return value is as follows: { \"result\": [...] } The result returns an array of objects. The key-value information contained in this array is shown as follows: Name Type Description alerts string Prompt messages The alerts mainly prompts whether the process version has been upgraded. When this API interface fails to request, the format of the return value is as follows: { errors: [{ errorMessage: \"...\" }] }","s":"Submitting a Draft Application","u":"/developer/api/api-process","h":"#submitting-a-draft-application","p":454},{"i":469,"t":"Submit an application in approval status to the next step. URIโ /api/workflow/engine Methodโ POST Request Parametersโ The following parameters need to be passed when requesting this API. Name Type Description Approvals object[] The content of the approval Responseโ When this API interface is requested successfully, an empty object is returned. When this API interface fails to request, the format of the return value is as follows: { errors: [{ errorMessage: \"...\" }] }","s":"Submitting an Approval Application","u":"/developer/api/api-process","h":"#submitting-an-approval-application","p":454},{"i":471,"t":"Before calling an api, api authentication must be performed first. Steedos supports multiple ways to authenticate apis, making api calls easy and flexible. Moreover, it can also achieve functions such as single sign-on, validating login status, and logging out, making interface calls even more flexible and convenient.","s":"API Authentication","u":"/developer/api/api-validate","h":"","p":470},{"i":473,"t":"POST /accounts/password/login { \"user\": { \"email\": \"test@example.com\"}, \"password-unencrypted\": \"xxx\" } This interface returns the token. Use ${spaceId} and ${token} to verify Authorization : Bearer ${spaceId},${token}","s":"Call the login api to obtain user identity","u":"/developer/api/api-validate","h":"#call-the-login-api-to-obtain-user-identity","p":470},{"i":475,"t":"The current browser has user login information stored in the localStorage, which includes: steedos:userId steedos:token steedos:spaceId Use ${spaceId} and ${token} to verify Authorization : Bearer ${spaceId},${token}","s":"Use current browser user identity verification","u":"/developer/api/api-validate","h":"#use-current-browser-user-identity-verification","p":470},{"i":477,"t":"If you need to call the interface uniformly as an administrator, you can log in to the system as an administrator, and on the Settings-Advanced Settings-API Key menu, get the administrator's API Key. Authorization : Bearer apikey,${apikey} The administrator API Key needs to be properly kept and this method can only be used for server-side calls.","s":"Use administrator API key verification","u":"/developer/api/api-validate","h":"#use-administrator-api-key-verification","p":470},{"i":479,"t":"OpenAPI API Documentation OpenAPI specification","s":"OpenAPI","u":"/developer/api/openapi","h":"","p":478},{"i":481,"t":"Sometimes your users need to work with data and services that are outside your Steedos org. Thereโs a variety of ways you can provide seamless access across org boundaries.","s":"Extend the Reach of Your Organization","u":"/developer/integration/","h":"","p":480},{"i":483,"t":"้่ฟjwtๅฎ็ฐๅคๆฅๅบ็จไธ้ญๆนๅนณๅฐๅๅๅ็น็ปๅฝใ","s":"๐๏ธ SSO API","u":"/developer/integration/","h":"","p":480},{"i":485,"t":"Node-RED is a process-oriented programming tool that allows you to effortlessly connect IoT devices, APIs and online services together. It employs a browser-based editor which allows users to drag and drop different nodes onto a canvas, and connect them to create a flow. Node-RED also offers a plethora of nodes which enable users to easily interact with a diverse range of devices and services.https://Node-Red.org/ใ","s":"๐๏ธ Node-Red","u":"/developer/integration/","h":"","p":480},{"i":487,"t":"Steedos provides a comprehensive suite of robust APIs, allowing a plethora of opportunities for enterprise integration, development, and functionality enhancement.","s":"Introduction to Steedos API","u":"/developer/api/overview","h":"","p":486},{"i":489,"t":"APIs (Application Programming Interfaces) are the backbone of modern digital interaction. Through Steedos's diverse set of APIs, organizations can now integrate Steedos with other external services, systems, and data sources seamlessly. This integration is pivotal for companies to automate processes, synchronize data, and expand the core functionalities of their Steedos solutions.","s":"Overview","u":"/developer/api/overview","h":"#overview","p":486},{"i":491,"t":"Steedos offers a variety of APIs, each designed for specific purposes, ensuring that developers can find an API perfect for their requirements. Some of the prominent Steedos APIs include:","s":"Types of Steedos APIs","u":"/developer/api/overview","h":"#types-of-steedos-apis","p":486},{"i":493,"t":"Steedos's REST API allows developers to use standard HTTP methods such as GET, POST, DELETE, and PATCH to manipulate data. It's accessible via URI paths, and users can send requests and receive responses in JSON or XML format. This API is perfect for when you're using mobile applications and web projects.","s":"REST API","u":"/developer/api/overview","h":"#rest-api","p":486},{"i":495,"t":"GraphQL, a query language created by Facebook, enables declarative data fetching where a client can specify exactly what data it needs from an API. Instead of multiple endpoints returning fixed data structures, a GraphQL server operates a single endpoint and responds with precisely the data the client asked for. The Steedos GraphQL API integrates this powerful query language, enabling a more efficient way to work with the rich data stored in the Steedos environment. This API allows developers to read, create, modify, and delete Steedos data using GraphQL. It's designed to deliver smoother, more intuitive, and more developer-friendly interactions with Steedos's vast array of business data.","s":"GraphQL API","u":"/developer/api/overview","h":"#graphql-api","p":486},{"i":497,"t":"The Metadata API is a powerhouse for developers who need to retrieve, deploy, create, update, or delete the customizations of organization metadata. It's invaluable for managing customizations and for building tools that can manage the metadata model, not the data itself.","s":"Metadata API","u":"/developer/api/overview","h":"#metadata-api","p":486},{"i":499,"t":"Seamless Integration: Easily connect Steedos with other platforms, services, and software, breaking silos and encouraging cross-platform functionalities. Automation and Efficiency: Automate data transfers, synchronize across systems in real-time, and update data without manual intervention, leading to increased operational efficiency. Customization: Developers can build custom solutions atop the Steedos platform, ensuring the CRM aligns perfectly with business needs and workflows.","s":"Benefits of Steedos APIs","u":"/developer/api/overview","h":"#benefits-of-steedos-apis","p":486},{"i":501,"t":"Steedos APIs are indispensable for modern businesses, empowering them to go beyond the standard functionalities and create tailored, integrated, and automated solutions. By leveraging these APIs, companies can significantly enhance their operational efficiency, customer relationship management, and overall productivity.","s":"Conclusion","u":"/developer/api/overview","h":"#conclusion","p":486},{"i":505,"t":"1ใ Steedos needs to be configured with environment variables enabled for single sign-on. Add the following to the .env.local file: # JWT SSO STEEDOS_IDENTITY_JWT_ENABLED=true","s":"Preparation","u":"/developer/integration/api-jwt-sso","h":"#preparation","p":502},{"i":507,"t":"1ใThe external application generates a JWT in the custom server interface. 2ใThe external application redirects to Steedos interface using the following GET request: {root_url}/accounts/jwt/login?t={jwt}&redirect={redirectURL} to achieve single sign-on.","s":"Next","u":"/developer/integration/api-jwt-sso","h":"#next","p":502},{"i":509,"t":"1ใTo create a new application in Steedos, you need to specify an API name (e.g. finance) and an API key (e.g. app_api_secret). 2ใThe external application's frontend button calls the custom API (e.g. GET /api/get/token) to generate a JWT. module.exports = { sso: function (object_name, record_id) { const getTokenURL = '/api/get/token'; const result = Steedos.authRequest(getTokenURL, { type: 'GET', async: false, contentType: 'application/json' }); const token = result.token; const PLATFORM_ROOT_URL = 'https://5000-steedos-steedosprojectt-5apf195eq37.ws-us77.gitpod.io' window.open(`${PLATFORM_ROOT_URL}/accounts/jwt/login?t=${token}&redirect=${PLATFORM_ROOT_URL}`, '_blank') }, ssoVisible: function () { return true } } 3ใA custom server-side API needs to be implemented. const express = require(\"express\"); const router = express.Router(); const core = require('@steedos/core'); const jwt = require('jsonwebtoken'); router.get('/api/get/token', core.requireAuthentication, async function (req, res) { const userSession = req.user; var secret = 'app_api_secret' var options = { expiresIn: 30 } var token = jwt.sign({ profile: { email: userSession.email }, app_code: 'finance' }, secret, options); res.status(200).send({ token: token }); }); exports.default = router;","s":"Example","u":"/developer/integration/api-jwt-sso","h":"#example","p":502},{"i":512,"t":"1ใCreate a new application in Steedos, specifying the external link and API key. 2ใClick on the external application in the launcher and redirect to the external link, passing the \"t\" parameter in the URL. 3ใThe external application parses the \"t\" parameter and redirects the user to the application.","s":"Process Description","u":"/developer/integration/api-jwt-sso","h":"#process-description","p":502},{"i":514,"t":"1ใCreate a new application in Steedos and specify the external link (e.g. GET https://5000-steedos-steedosprojectt-5apf195eq37.ws-us77.gitpod.io/api/sso) and API key (e.g. app_api_secret). 2ใIn the application launcher, click on the external application and you will be redirected to the external link. https://5000-steedos-steedosprojectt-5apf195eq37.ws-us77.gitpod.io/api/sso?t=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJvYmplY3RfbmFtZSI6InNwYWNlX3VzZXJzIiwiZG9jIjp7Il9pZCI6IkFGTkVuQ3hiU29HRWc0b2NmIiwibmFtZSI6Inh4eCIsInVzZXJuYW1lIjoieHh4eHh4IiwiZW1haWwiOiJzQHMuY29tIn0sImlhdCI6MTY2OTI2NjA0NiwiZXhwIjoxNjY5MjY5NjQ2fQ.qeld2kTl5zjLGjCWgk3cb6UPEPlqmzMaME20mo_t-t4 3ใTo parse the token in the external application const express = require(\"express\"); const router = express.Router(); const jwt = require('jsonwebtoken') router.get('/api/sso', async function (req, res) { console.log(req.query) // { // t: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJvYmplY3RfbmFtZSI6InNwYWNlX3VzZXJzIiwiZG9jIjp7Il9pZCI6IkFGTkVuQ3hiU29HRWc0b2NmIiwibmFtZSI6Inh4eCIsInVzZXJuYW1lIjoieHh4eHh4IiwiZW1haWwiOiJzQHMuY29tIn0sImlhdCI6MTY2OTI2NjA0NiwiZXhwIjoxNjY5MjY5NjQ2fQ.qeld2kTl5zjLGjCWgk3cb6UPEPlqmzMaME20mo_t-t4' // } const payload = jwt.verify(req.query.t, 'app_api_secret') console.log(payload) // { // profile: { // name: 'xxx', // username: 'xxxxxx', // email: 's@s.com' // }, // iat: 1669266046, // exp: 1669269646 // } res.status(200).send({ message: 'router ok' }); }); exports.default = router;","s":"Example","u":"/developer/integration/api-jwt-sso","h":"#example-1","p":502},{"i":517,"t":"The GraphQL console can be accessed on the browser to query and manipulate data in the system. The website address is: ${server_address}/graphql. GraphQL interface has built-in access control. Before executing a query, you must first log in to the system. The query's access permission is based on the current logged-in account.","s":"GraphQL Console","u":"/developer/api/graphql-api","h":"#graphql-console","p":515},{"i":519,"t":"Before calling an interface, interface authentication must first be performed. Please refer to Interface Verification.ใ","s":"ๆฅๅฃ้ช่ฏ","u":"/developer/api/graphql-api","h":"#ๆฅๅฃ้ช่ฏ","p":515},{"i":521,"t":"When using GraphQL to query data, you can set the object, field, pagination, sorting, and filtering conditions to be queried. All queries are based on the range of data authorized for viewing by the currently logged-in user.","s":"Querying Data","u":"/developer/api/graphql-api","h":"#querying-data","p":515},{"i":523,"t":"By inputting the object and field names, you can query all records in the object. For example, the following query can query information about branches. { company{ _id, name, admins } } and return { \"data\": { \"company\": [ { \"_id\": \"CqY8Dy4MCFgXCbMjT\", \"name\": \"ๅ็่ฝฏไปถ\", \"admins\": [ \"60f6a630d5d0f30031bba318\" ] }, { \"_id\": \"EX4Ro64TjLaMnves8\", \"name\": \"ๅ็็ฝ็ป\", \"admins\": [ \"60f6a630d5d0f30031bba318\" ] } ] } }","s":"Querying Objects and Fields","u":"/developer/api/graphql-api","h":"#querying-objects-and-fields","p":515},{"i":525,"t":"You can define a skip parameter to specify how many records to skip, and a top parameter to specify how many records to return in a query. The following query will only return the second record: query{ space_users(top:1, skip:1){ name, mobile } }","s":"Query parameter: Pagination","u":"/developer/api/graphql-api","h":"#query-parameter-pagination","p":515},{"i":527,"t":"You can define how to sort the results using the sort parameter. The keyword desc indicates descending order, and the keyword asc indicates ascending order. Example: Sorting in descending order by the field name. query{ space_users(sort:\"name asc\"){ name, mobile } }","s":"Query parameter: Sorting","u":"/developer/api/graphql-api","h":"#query-parameter-sorting","p":515},{"i":529,"t":"You can add filters to query for specific records. Example: Query records where the branch name contains 'steedos'. query{ company(filters: [\"name\",\"contains\",\"steedos\"]){ _id, name, } }","s":"Query parameter: Filtering","u":"/developer/api/graphql-api","h":"#query-parameter-filtering","p":515},{"i":531,"t":"For lookup and master/detail type fields, you can use the ${field_api_name}__expand syntax to expand the query to include data from related tables. If the related table field is a multi-select type, the returned data will also be an array. { company{ _id, name, admins__expand{ name mobile } } } and return { \"data\": { \"company\": [ { \"_id\": \"CqY8Dy4MCFgXCbMjT\", \"name\": \"ๅ็่ฝฏไปถ\", \"admins__expand\": [ { \"_id\": \"60f6a630d5d0f30031bba318\", \"name\": \"็ฎก็ๅ\", \"mobile\": \"18600000000\" } ] } ] } }","s":"Expanding Related Tables in Query","u":"/developer/api/graphql-api","h":"#expanding-related-tables-in-query","p":515},{"i":533,"t":"For boolean, select, date, datetime, and lookup type fields, you can use the _display{field_api_name} syntax to format the queried data. In the formatted result, the values of 0, null, and false will be replaced with an empty string. query{ space_users(top:1, skip:1){ name, # boolean null email_verified # boolean false mobile_verified # boolean true is_supplier # lookup ๅ้ organization # lookup ๅค้ organizations_parents # select locale # number sort_no # date last_logon # datetime created _display{ email_verified mobile_verified is_supplier organization organizations_parents locale sort_no last_logon created }, _ui{ organization organizations_parents } } } and return { \"data\": { \"space_users\": [ { \"name\": \"็ๅฐๆ\", \"email_verified\": null, \"mobile_verified\": false, \"is_supplier\": null, \"organization\": \"n7Yv6i5fg3acnmm5d\", \"organizations_parents\": [ \"n7Yv6i5fg3acnmm5d\", \"XypyNbzGCJbHMNyWv\" ], \"locale\": \"zh-cn\", \"sort_no\": null, \"last_logon\": null, \"created\": \"2022-08-09T04:08:28.313Z\", \"_display\": { \"email_verified\": \"\", \"mobile_verified\": \"\", \"is_supplier\": \"\", \"organization\": \"ไธๆตทๅๅ
ฌๅธ\", \"organizations_parents\": \"ไธๆตทๅๅ
ฌๅธ,็ฑๅค้ฆ\", \"locale\": \"็ฎไฝไธญๆ\", \"sort_no\": \"\", \"last_logon\": \"\", \"created\": \"2022-08-09 12:08\" }, \"_ui\": { \"organization\": { \"objectName\": \"organizations\", \"value\": \"n7Yv6i5fg3acnmm5d\", \"label\": \"ไธๆตทๅๅ
ฌๅธ\" }, \"organizations_parents\": [ { \"objectName\": \"organizations\", \"value\": \"n7Yv6i5fg3acnmm5d\", \"label\": \"ไธๆตทๅๅ
ฌๅธ\" }, { \"objectName\": \"organizations\", \"value\": \"XypyNbzGCJbHMNyWv\", \"label\": \"็ฑๅค้ฆ\" } ] } } ] } }","s":"Returning formatted data","u":"/developer/api/graphql-api","h":"#returning-formatted-data","p":515},{"i":535,"t":"When other tables are related to the current table, you can query the related subtable information at the same time. Query Syntax: _related_${object_api_name}_${field_api_name} For example, the following query can retrieve a list of personnel within the current division, i.e. the records in the \"space_users\" object where the \"company_ids\" field is associated with the \"company\": { company{ _id, name, admins__expand{ _id name mobile } space_users: _related_space_users_company_ids(filters: [\"job_number\",\"=\",\"10\"]) { name mobile } } } Note: For the purpose of enhancing the readability of the returned results, an alias named \"space_users\" is used for the returned results. and return { \"data\": { \"company\": [ { \"_id\": \"CqY8Dy4MCFgXCbMjT\", \"name\": \"ๅ็่ฝฏไปถ\", \"admins__expand\": [ { \"_id\": \"60f6a630d5d0f30031bba318\", \"name\": \"็ฎก็ๅ\", \"mobile\": \"18600000000\" } ], \"space_users\": [ { \"name\": \"ๅฐๆ\", \"mobile\": \"18600000000\" } ] } ] } }","s":"Querying Related Subtables","u":"/developer/api/graphql-api","h":"#querying-related-subtables","p":515},{"i":537,"t":"GraphQL can be utilized to perform CRUD (Create, Retrieve, Update, Delete) operations on data. All data-related operations are executed based on the current user's authorized data scope.","s":"Working with Data","u":"/developer/api/graphql-api","h":"#working-with-data","p":515},{"i":539,"t":"When calling the GraphQL API to create new data, the system first verifies whether the current user has the permission to perform the corresponding create action. Creating a Single Recordโ To create a single record, use the syntax mutation.{object_api_name}__insert and provide the value for the doc parameter. mutation { tasks__insert(doc:{name:\"Task One\", assignees: []}) { name _id } } In this case, tasks represents the object name of the record you want to insert, and {name:\"Task One\", assignees: []} represents the JSON data to be inserted. The keyword __insert indicates that a record will be added to the system via the GraphQL API. and return { \"data\": { \"tasks__insert\": { \"name\": \"Task One\", \"_id\": \"5cb98489d09a343e14daae95\" } } }","s":"Creating Data","u":"/developer/api/graphql-api","h":"#creating-data","p":515},{"i":541,"t":"When calling the GraphQL API to modify data, the system first verifies whether the current user has the corresponding edit permissions. Modifying a single recordโ To modify a single record, use the syntax mutation.{object_api_name}__update and provide the values for the id and doc parameters. mutation { tasks__update(id:\"5cb98489d09a343e14daae95\", doc:{name:\"Task Important\"}) { name _id } } In this case, tasks represents the object name of the record you want to modify, the value 5cb98489d09a343e14daae95 for id represents the _id of the record you want to modify, and {name:\"Task Important\"} represents the JSON data to be updated. The keyword __update indicates that a record will be updated in the system via the GraphQL API. and return { \"data\": { \"tasks__update\": { \"name\": \"Task Important\", \"_id\": \"5cb98489d09a343e14daae95\" } } }","s":"Modifying record","u":"/developer/api/graphql-api","h":"#modifying-record","p":515},{"i":543,"t":"When calling the GraphQL API to delete data, the system will first verify if the current user has the corresponding deletion permissions. Deleting a single recordโ To delete a single piece of data, use the mutation.{object_api_name}__delete syntax and provide the id parameter value. mutation { tasks__delete(id:\"5cb98489d09a343e14daae95\") } In which tasks represents the name of the object to delete a record from, and the value 5cb98489d09a343e14daae95 of id represents the _id of the record to be deleted. The keyword __delete represents deleting a record in the system through the GraphQL API. and return { \"data\": { \"tasks__delete\": 1 } } Reference to๏ผGraphQL","s":"Deleting record","u":"/developer/api/graphql-api","h":"#deleting-record","p":515},{"i":546,"t":"ๅจ่ฎพ็ฝฎ-็ป่ฎกๅๆ-ๆฅ่กจ ๆฐๅปบๆฅ่กจๅนถไฟๅญ ๅจ่ฎพ็ฝฎ-็ป่ฎกๅๆ-ๆฅ่กจ ๆฅ่กจ่ฏฆ็ป้กต๏ผๅผๅๆ ็ญพไธๅคๅถAPI API ๆ ผๅผ๏ผ {ROOT_URL}/analytics/api/amis/question/{questionId}","s":"่ทๅAPI","u":"/developer/api/analytics-api","h":"#่ทๅapi","p":544},{"i":548,"t":"ๅจๆต่งๅจ่ฎฟ้ฎAPI๏ผ่ทๅๆฅ่กจๆฐๆฎ ่ฟๅ็ปๆไธบJSONๆ ผๅผ","s":"่ทๅ็ปๆ","u":"/developer/api/analytics-api","h":"#่ทๅ็ปๆ","p":544},{"i":550,"t":"{ \"status\": 0, // 0 ่กจ็คบๆๅ \"msg\": \"ok\", \"data\": { \"count\": {count}, // ๆฐๆฎ่กๆฐ \"rows\": [ // ๆฐๆฎ { \"{key}\": \"{value}\", ... }, ], \"cols\": [ // ๆฐๆฎๅๅฎไน { \"id\": \"\", \"name\": \"\", \"display_name\": \"\", \"base_type\": \"\", \"effective_type\": \"\", \"semantic_type\": null, \"field_ref\": [ \"field\", \"\", null ], \"source\": \"\", \"visibility_type\": \"\", \"table_id\": \"\", ... }, ] } }","s":"ๆฅ่กจๆฐๆฎ็ปๆ","u":"/developer/api/analytics-api","h":"#ๆฅ่กจๆฐๆฎ็ปๆ","p":544},{"i":552,"t":"{ \"status\": 0, \"msg\": \"ok\", \"data\": { \"count\": 10, \"rows\": [ { \"_id\": \"65d6a69b1b9cab05bf584fc5_65a49dca55d1b305bf065324\", \"category\": \"65d6a69b1b9cab05bf584fc5_659cb4a972192405bf822170\", \"type\": \"็ซ่ฝฆ็ฅจ\", \"invoice_date\": \"2023-07-05T00:00:00.000Z\", \"invoice_num\": \"149Z058272\", \"invoice_amount\": 91.5, \"seller_name\": null, \"purchaser_name\": null, \"name\": \"Demo-FP-00001\", \"verify_status\": \"ไธๆฅ้ช\", \"created\": \"2024-02-22T09:42:52.159Z\", \"external_category\": \"ไบค้่ดน\" }, { \"_id\": \"65d6a69b1b9cab05bf584fc5_65a49e1f55d1b305bf06532a\", \"category\": \"65d6a69b1b9cab05bf584fc5_659cb4a972192405bf822170\", \"type\": \"ๅบ็ง่ฝฆ็ฅจ\", \"invoice_date\": \"2023-06-07T00:00:00.000Z\", \"invoice_num\": \"02833771\", \"invoice_amount\": 26, \"seller_name\": null, \"purchaser_name\": null, \"name\": \"Demo-FP-00002\", \"verify_status\": \"ไธๆฅ้ช\", \"created\": \"2024-02-22T09:42:52.159Z\", \"external_category\": \"ไบค้่ดน\" }, ], \"cols\": [ { \"description\": null, \"database_type\": \"java.lang.String\", \"semantic_type\": \"type/PK\", // ไธป้ฎ \"table_id\": \"invoices\", \"coercion_strategy\": null, \"name\": \"_id\", \"fingerprint_version\": 0, \"has_field_values\": \"search\", \"settings\": null, \"caveats\": null, \"fk_target_field_id\": null, \"dimensions\": [], \"dimension_options\": [], \"updated_at\": \"2023-08-04T05:39:33.039939\", \"custom_position\": 0, \"effective_type\": \"type/Text\", \"active\": true, \"nfc_path\": null, \"parent_id\": null, \"id\": \"invoices._id\", \"last_analyzed\": null, \"database_is_auto_increment\": false, \"position\": 0, \"visibility_type\": \"normal\", \"default_dimension_option\": null, \"target\": null, \"preview_display\": true, \"display_name\": \"ID\", \"database_position\": 0, \"database_required\": false, \"fingerprint\": null, \"created_at\": \"2023-08-04T05:39:33.039939\", \"base_type\": \"type/Text\", \"points_of_interest\": null }, { \"id\": \"invoices.category\", \"name\": \"category\", \"display_name\": \"่ดน็จ็ฑปๅซ\", \"base_type\": \"type/Text\", \"effective_type\": \"type/Text\", \"semantic_type\": \"type/FK\", // ๅค้ฎ \"field_ref\": [ \"field\", \"invoices.category\", null ], \"source\": \"fields\", \"visibility_type\": \"normal\", \"table_id\": \"invoices\", \"remapped_to\": \"external_category\" }, { \"id\": \"invoices.type\", \"name\": \"type\", \"display_name\": \"ๅ็ฅจ็ฑปๅ\", \"base_type\": \"type/Text\", \"effective_type\": \"type/Text\", \"semantic_type\": null, \"field_ref\": [ \"field\", \"invoices.type\", null ], \"source\": \"fields\", \"visibility_type\": \"normal\", \"table_id\": \"invoices\" }, { \"id\": \"invoices.invoice_date\", \"name\": \"invoice_date\", \"display_name\": \"ๅ็ฅจๆฅๆ\", \"base_type\": \"type/Date\", \"effective_type\": \"type/Date\", \"semantic_type\": null, \"field_ref\": [ \"field\", \"invoices.invoice_date\", null ], \"source\": \"fields\", \"visibility_type\": \"normal\", \"table_id\": \"invoices\" }, { \"id\": \"invoices.invoice_num\", \"name\": \"invoice_num\", \"display_name\": \"ๅ็ฅจๅท็ \", \"base_type\": \"type/Text\", \"effective_type\": \"type/Text\", \"semantic_type\": null, \"field_ref\": [ \"field\", \"invoices.invoice_num\", null ], \"source\": \"fields\", \"visibility_type\": \"normal\", \"table_id\": \"invoices\" }, { \"id\": \"invoices.invoice_amount\", \"name\": \"invoice_amount\", \"display_name\": \"ๅ็ฅจๅซ็จ้้ข\", \"base_type\": \"type/Float\", \"effective_type\": \"type/Float\", \"semantic_type\": \"type/Score\", \"field_ref\": [ \"field\", \"invoices.invoice_amount\", null ], \"source\": \"fields\", \"visibility_type\": \"normal\", \"table_id\": \"invoices\" }, { \"id\": \"invoices.seller_name\", \"name\": \"seller_name\", \"display_name\": \"้ๅฎๆนๅ็งฐ\", \"base_type\": \"type/Text\", \"effective_type\": \"type/Text\", \"semantic_type\": null, \"field_ref\": [ \"field\", \"invoices.seller_name\", null ], \"source\": \"fields\", \"visibility_type\": \"normal\", \"table_id\": \"invoices\" }, { \"id\": \"invoices.purchaser_name\", \"name\": \"purchaser_name\", \"display_name\": \"่ดญๆนๅ็งฐ\", \"base_type\": \"type/Text\", \"effective_type\": \"type/Text\", \"semantic_type\": null, \"field_ref\": [ \"field\", \"invoices.purchaser_name\", null ], \"source\": \"fields\", \"visibility_type\": \"normal\", \"table_id\": \"invoices\" }, { \"id\": \"invoices.name\", \"name\": \"name\", \"display_name\": \"ๅ็ฅจ็ผๅท\", \"base_type\": \"type/Text\", \"effective_type\": \"type/Text\", \"semantic_type\": null, \"field_ref\": [ \"field\", \"invoices.name\", null ], \"source\": \"fields\", \"visibility_type\": \"normal\", \"table_id\": \"invoices\" }, { \"id\": \"invoices.verify_status\", \"name\": \"verify_status\", \"display_name\": \"ๆฅ้ช็ถๆ\", \"base_type\": \"type/Text\", \"effective_type\": \"type/Text\", \"semantic_type\": null, \"field_ref\": [ \"field\", \"invoices.verify_status\", null ], \"source\": \"fields\", \"visibility_type\": \"normal\", \"table_id\": \"invoices\" }, { \"id\": \"invoices.created\", \"name\": \"created\", \"display_name\": \"ๅๅปบๆถ้ด\", \"base_type\": \"type/DateTime\", \"effective_type\": \"type/DateTime\", \"semantic_type\": null, \"field_ref\": [ \"field\", \"invoices.created\", null ], \"source\": \"fields\", \"visibility_type\": \"normal\", \"table_id\": \"invoices\" }, { \"description\": null, \"semantic_type\": \"type/Name\", \"table_id\": \"expense_category\", \"coercion_strategy\": null, \"name\": \"external_category\", \"settings\": null, \"source\": \"fields\", \"remapped_from\": \"category\", \"fk_field_id\": \"category\", \"field_ref\": [ \"field\", \"expense_category.name\", { \"source-field\": \"invoices.category\" } ], \"effective_type\": \"type/Text\", \"nfc_path\": null, \"parent_id\": null, \"id\": \"expense_category.name\", \"visibility_type\": \"normal\", \"display_name\": \"่ดน็จ็ฑปๅซ\" } ] } }","s":"ๆฅ่กจๆฐๆฎ็คบไพ","u":"/developer/api/analytics-api","h":"#ๆฅ่กจๆฐๆฎ็คบไพ","p":544},{"i":554,"t":"ไฝฟ็จdevextreme-datagridๆงไปถๅฑ็คบๆฐๆฎ๏ผไปฅfeikongwang้กน็ฎ็ๅ็ฅจๅฏน่ฑกไธบไพ๏ผ ๅจ่ฎพ็ฝฎ-็ป่ฎกๅๆ-ๆฅ่กจ ๆฐๅปบๆฅ่กจๅ็ฅจๅนถไฟๅญ ๅจ่ฎพ็ฝฎ-็ป่ฎกๅๆ-ๆฅ่กจ ๅ็ฅจๆฅ่กจ่ฏฆ็ป้กต๏ผๅผๅๆ ็ญพไธๅคๅถAPI ็ไฝๅค็จ ๅจ่ฎพ็ฝฎ-่ชๅฎไนๅบ็จ-ๅพฎ้กต้ข ๆฐๅปบ็ฑปๅไธบๅบ็จ็จๅบ้กต้ข็ๅพฎ้กต้ข ่ฟๅ
ฅ่ฎพ่ฎกๅจๅฏๅจ่ชๅฎไน็ปไปถๆ ็ญพไธๆฅ็ๅฐDataGrid็ปไปถ ๅฆๆๆฒก็ๅฐ็ปไปถ๏ผ่ฏดๆ็ปไปถๆชๅ ่ฝฝ๏ผ้่ฆๅจ้กน็ฎ็.envๆไปถไธญ้
็ฝฎ็ฏๅขๅ้STEEDOS_WIDGETS_ADDITIONAL=@steedos-widgets/devextreme ๅฐไปฅไธ็คบไพไปฃ็ ๆท่ด่ณไปฃ็ ๆกไธญ๏ผๅนถไฟฎๆนservice็ปไปถ็ๆฐๆฎๆฅๅฃๅฐๅไธบๅ็ฅจๆฅ่กจไธญๅคๅถ็API๏ผๆๅไฟๅญๅนถๅๅธๅพฎ้กต้ข { \"type\": \"page\", \"title\": \"Welcome to Steedos\", \"body\": [ { \"type\": \"service\", \"body\": [ { \"type\": \"devextreme-datagrid\", \"className\": \"\", \"config\": { \"keyExpr\": \"_id\", \"columns\": [ { \"dataField\": \"_id\", \"caption\": \"ID\", \"name\": \"_id\" }, { \"dataField\": \"name\", \"name\": \"name\" } ], \"allowColumnResizing\": true, \"columnAutoWidth\": true, \"groupPanel\": { \"visible\": true }, \"columnChooser\": { \"enabled\": true }, \"filterRow\": { \"visible\": true }, \"searchPanel\": { \"visible\": true } }, \"id\": \"u:a38c09bec4a6\", \"dataFilter\": \"config.dataSource = data.rows;\\nconfig.columns = [];\\n\\ndata.cols.forEach((col) => {\\n if (\\\"type/FK\\\" === col.semantic_type || \\\"type/PK\\\" === col.semantic_type) { \\n return\\n }\\n config.columns.push({\\n name: col.name,\\n caption: col.display_name,\\n dataField: col.name\\n })\\n})\\nconsole.log(config)\\nreturn config;\" } ], \"id\": \"u:70563d1bcdba\", \"messages\": {}, \"api\": { \"url\": \"https://5000-sapphire-felidae-9bexhf1x.ws.vscode.steedos.cn/analytics/api/amis/question/65d6a9b81b9cab05bf584fc6\", \"method\": \"get\", \"messages\": {}, \"requestAdaptor\": \"\", \"adaptor\": \"\" }, \"initFetch\": true } ], \"regions\": [ \"body\" ], \"data\": { \"initialValues\": {}, \"appId\": \"builder\", \"title\": \"\", \"context\": { \"rootUrl\": \"https://5000-fuchsia-mackerel-vjg1ha6z.ws.vscode.steedos.cn\", \"userId\": \"222dcc20-1adf-49c0-83e6-8eb7b4df673e\", \"tenantId\": \"65b9c01273b2ae064641fc81\", \"authToken\": \"\" } }, \"id\": \"u:b84e5ec519fa\" } ๅจ่ฎพ็ฝฎ-่ชๅฎไนๅบ็จ-้้กนๅกไธญๆฐๅปบ้้กนๅก ๅจ่ฎพ็ฝฎ-่ชๅฎไนๅบ็จ-ๅบ็จ็จๅบไธญๆฐๅปบๅบ็จ็จๅบ๏ผๅจ้้กนๅก-่ฎพ็ฝฎ้้กนๅกไธญ้ๆฉๅๅๆฐๅปบ็้้กนๅก ็นๅปๅทฆไธ่งๅบ็จ็จๅบๅฏๅจๅจ่ฟๅ
ฅๅๅๆฐๅปบ็ๅบ็จๅณๅฏ็ๅฐๅ็ฅจๆฐๆฎใ","s":"APIๅบ็จ็คบไพ","u":"/developer/api/analytics-api","h":"#apiๅบ็จ็คบไพ","p":544},{"i":557,"t":"AMIS is a low-code frontend framework based on JSON configuration, enabling developers to quickly build data-driven applications through declarative programming. It offers a rich component library and flexible interface layout options, allowing developers to define interfaces and interactions with simple JSON configurations, significantly improving development efficiency and reducing development costs.","s":"Introduction to AMIS","u":"/developer/micro-page/amis/","h":"#introduction-to-amis","p":555},{"i":559,"t":"The core design philosophy of AMIS is \"simplifying frontend development,\" allowing developers to focus on business logic rather than interface details. By providing a declarative interface description language, AMIS makes the definition of interfaces and logic clearer and more concise. It aims to reduce the repetitive workload of coding and achieve rapid development through preset templates and components while maintaining a high degree of flexibility.","s":"Design Philosophy of AMIS","u":"/developer/micro-page/amis/","h":"#design-philosophy-of-amis","p":555},{"i":561,"t":"Declarative JSON Configuration: Use JSON configurations to define interfaces and logic instead of writing extensive code. Rich Component Library: Includes a variety of components such as forms, tables, lists, and charts to meet most UI requirements. Flexible Data Binding and Transformation: Supports two-way data binding and can perform data transformation and formatting through built-in functions. Powerful Event and Action System: Allows defining actions triggered by events to implement complex interaction logic. Theme and Style Customization: Supports theme customization to easily change the application's appearance and style. Extensibility and Plugins: Add new features and components through extensions and plugin mechanisms.","s":"Core Features of AMIS","u":"/developer/micro-page/amis/","h":"#core-features-of-amis","p":555},{"i":563,"t":"AMIS is suitable for various application scenarios, especially for rapid development of enterprise-level applications, backend management systems, data visualization interfaces, and complex forms. It helps enterprises quickly build systems like CRM, ERP, CMS, and is also suitable for quickly creating prototypes and MVPs (Minimum Viable Products) to validate business hypotheses or for early-stage product feature demonstrations.","s":"Application Scenarios of AMIS","u":"/developer/micro-page/amis/","h":"#application-scenarios-of-amis","p":555},{"i":565,"t":"info The code content is extensive; you can create a micro page to try using it. On the designer page, click the code button on the left to see the component JSON configuration.","s":"Hands-on Practice","u":"/developer/micro-page/amis/","h":"#hands-on-practice","p":555},{"i":568,"t":"The concepts of Data Scope and Data Chain are among the most important in AMIS. They ensure consistency and predictability in data interaction and management between components. It can be likened to the concept of scope in programming, where the data scope of a parent component is visible to its child components, similar to how variables are visible within their scope. Here is a simplified explanation: In AMIS, components are organized into a tree-like structure, and each component can have its own data scope. A data scope can be understood as a container for storing data, determining which data is available in specific parts of the component tree. Reference document: AMIS Data Scope, Data Chain","s":"Basic Concepts: Data Scope and Data Chain","u":"/developer/micro-page/amis/data","h":"#basic-concepts-data-scope-and-data-chain","p":566},{"i":570,"t":"App Combo Cards Chart CRUD CRUD2 Dialog Drawer List Page PaginationWrapper Service Wizard InputArray Table Table2","s":"Components with Data Scope","u":"/developer/micro-page/amis/data","h":"#components-with-data-scope","p":566},{"i":572,"t":"The data scope can be initialized in two main ways:","s":"1. Initializing the Data Scope","u":"/developer/micro-page/amis/data","h":"#1-initializing-the-data-scope","p":566},{"i":574,"t":"Assign an initApi property to the component, instructing AMIS to fetch data from a specified endpoint and populate the component's data scope with the response. Components can obtain basic data through the specified initApi, assuming we have an API endpoint: /amis/api/initData { \"type\": \"page\", \"initApi\": \"/amis/api/initData\", \"body\": \"Hello ${text}\" } References: Page component: Page Component, Initialize Data API: AMIS API","s":"Component Initialization Interface","u":"/developer/micro-page/amis/data","h":"#component-initialization-interface","p":566},{"i":576,"t":"Static data comes from the data configured when defining the component. For example, when defining a Page component, the data property can define data to be used by child components { \"type\": \"page\", \"body\": [ { \"type\": \"tpl\", \"tpl\": \"I am ${name}, ${age} years old\", \"id\": \"u:3a18f25bc36b\" } ], \"data\": { \"age\": 18, \"name\": \"Li Gang\" }, \"id\": \"u:randomid\" } When both initialization interface and data property are configured, the data scope will merge the data property values and the data returned by the initialization interface.","s":"Explicit Data Property Configuration","u":"/developer/micro-page/amis/data","h":"#explicit-data-property-configuration","p":566},{"i":578,"t":"Certain interactions or behaviors of some components will update the current component's data scope: { \"type\": \"page\", \"body\": { \"type\": \"form\", \"api\": \"/amis/api/mock2/form/saveForm\", \"body\": [ { \"type\": \"input-text\", \"name\": \"name\", \"label\": \"Name:\" }, { \"type\": \"input-text\", \"name\": \"age\", \"label\": \"Age:\" }, { \"type\": \"static-tpl\", \"tpl\": \"The generated id is: ${id}\" } ] } } The /api/saveForm interface will save the data submitted by the current form and return the id generated by the backend service to the frontend, in the following format; { \"status\": 0, \"msg\": \"Saved successfully\", \"data\": { \"id\": 1 } } At this point, AMIS will merge the data with the current form component's data scope, and the static-tpl component in the form will display the id as 1. Components with similar features include Formula, etc.","s":"2. Updating the Data Scope","u":"/developer/micro-page/amis/data","h":"#2-updating-the-data-scope","p":566},{"i":580,"t":"In AMIS, updates to the top-level data scope trigger synchronous updates of child components with data scopes to ensure data consistency. However, such comprehensive updates may bring unnecessary performance overhead. For example, updating only the top-level name variable would cause all child components to refresh. To optimize this process, AMIS by default detects changes in two levels of data scope (direct upper and upper-upper) to decide whether to update the current layer's data. There are two potential issues with this mechanism: Unnecessary Updates: The current component may not need to respond to changes in the upper-level data, making the refresh operation redundant. Insufficient Updates: The current component may need to respond to changes in higher-level data, but the default detection mechanism cannot obtain the latest value. Introducing the trackExpression Property To address these issues, starting from version 3.2.0, AMIS introduced the trackExpression property, allowing developers to actively configure the upper-level data that the component needs to pay attention to. Thus, we can: Set trackExpression to \"none\" to indicate that the current component does not track any data changes. Set trackExpression to \"${xxxVariable}\" to specify that the current component's data chain should be updated when xxxVariable changes. trackExpression supports complex expression syntax, allowing monitoring of multiple variables (such as \"${xxx1},${xxx2}\") or writing conditional expressions (such as \"${xxx ? xxx : yyy}\"). AMIS will decide whether to update the data chain based on the result of the expression calculation. Considerations: Avoid using random functions or the current time in expressions, which would lead to different results each time and thus unnecessary updates to the data chain. If the variable is an array or object, it is recommended to convert it to a JSON string (such as ${xxxObject | json}) to improve the accuracy of change detection. Since trackExpression is used to monitor upper-level data, it should not reference the current layer's data variables in the expression.","s":"3. Updating the Data Chain","u":"/developer/micro-page/amis/data","h":"#3-updating-the-data-chain","p":566},{"i":583,"t":"Query parameters in the URL will enter the top-level data scope. For example, if the micro-page is on the page https://abcd.com/yyyyy?bookId=29891, then bookId will be at the top of the data scope. (The top-level data scope also means that all components can use the bookId variable.)","s":"URL Parameters","u":"/developer/micro-page/amis/data","h":"#url-parameters","p":566},{"i":585,"t":"Data mapping is a powerful feature that allows users to fetch variable values from the current data chain by using template strings, such as ${xxx} or $xxx. This method is mainly used in scenarios like template strings, customizing API request body formats, etc.","s":"Data Mapping","u":"/developer/micro-page/amis/data_mapping","h":"","p":584},{"i":587,"t":"When submitting a form via an API, if the default request body data format of AMIS does not meet your expectations, you can use data mapping to customize the required data format. For example, if your backend API only supports a specific input data structure, you can customize the data format by configuring the data attribute of the API. For instance: { \"type\": \"page\", \"body\": { \"type\": \"form\", \"api\": { \"method\": \"post\", \"url\": \"/amis/api/mock2/form/saveForm\", \"data\": { \"userName\": \"${name}\", \"userEmail\": \"${email}\" } }, \"body\": [ { \"type\": \"input-text\", \"name\": \"name\", \"label\": \"Name:\" }, { \"name\": \"email\", \"type\": \"input-text\", \"label\": \"Email:\" } ] } }","s":"Customizing API Request Body Data Format","u":"/developer/micro-page/amis/data_mapping","h":"#customizing-api-request-body-data-format","p":584},{"i":589,"t":"AMIS allows the use of & as a key in data mapping to expand the configured variables. This means you can expand all the properties of an object and concatenate them in the data. For example: { \"type\": \"page\", \"body\": { \"type\": \"form\", \"data\": { \"a\": \"1\", \"b\": \"2\", \"c\": { \"e\": \"3\", \"f\": \"4\", \"g\": \"5\" } }, \"api\": { \"url\": \"/amis/api/mock2/form/saveForm\", \"method\": \"post\", \"data\": { \"name\": \"${name}\", \"email\": \"${email}\", \"e\": \"${c.e}\", \"f\": \"${c.f}\", \"g\": \"${c.g}\" } }, \"body\": [ { \"type\": \"input-text\", \"name\": \"name\", \"label\": \"Name:\" }, { \"name\": \"email\", \"type\": \"input-text\", \"label\": \"Email:\" } ] } }","s":"Complex Configuration","u":"/developer/micro-page/amis/data_mapping","h":"#complex-configuration","p":584},{"i":591,"t":"You can configure the API's data attribute to extract only specific variables from an array and form a new array. { \"type\": \"page\", \"body\": { \"type\": \"form\", \"api\": { \"method\": \"post\", \"url\": \"/amis/api/mock2/form/saveForm\", \"data\": { \"items\": { \"$table\": { \"a\": \"${a}\", \"c\": \"${c}\" } } } }, \"body\": [ { \"type\": \"input-table\", \"name\": \"table\", \"label\": \"Table\", \"columns\": [ { \"label\": \"A\", \"name\": \"a\" }, { \"label\": \"B\", \"name\": \"b\" } ], \"value\": [ { \"a\": \"a1\", \"b\": \"b1\", \"c\": \"c1\" }, { \"a\": \"a2\", \"b\": \"b2\", \"c\": \"c2\" } ] } ] } }","s":"Extracting Values from Arrays","u":"/developer/micro-page/amis/data_mapping","h":"#extracting-values-from-arrays","p":584},{"i":593,"t":"AMIS supports fetching data from different namespaces, such as global variables, localStorage, sessionStorage, and cookies. window refers to global variables. ls refers to localStorage. If the value is a JSON object, it can be used directly as an object, for example: ${ls:xxxxxlocalStrorageKey.xxxx} ss refers to sessionStorage, similar to the above. cookie refers to cookies, similar to the above. For example: { \"type\": \"page\", \"body\": \"The current page title is: ${window:document[title]}\" }","s":"Namespace","u":"/developer/micro-page/amis/data_mapping","h":"#namespace","p":584},{"i":595,"t":"Welcome to the AMIS documentation. In this section, we will delve into the core concept of schema, which is the key element for defining the structure and behavior of components in AMIS.","s":"Configuration and Components","u":"/developer/micro-page/amis/base_config","h":"","p":594},{"i":597,"t":"An example of the most basic AMIS configuration is as follows: { \"type\": \"page\", \"body\": \"Hello World!\" } This is a piece of JSON configuration, at the heart of which are two fields: type and body. The type field is the most crucial part of an AMIS node, indicating that the current node needs to render a Page component. The body field, as an attribute of the Page component, is responsible for guiding how the component renders the page content.","s":"The Simplest AMIS Configuration","u":"/developer/micro-page/amis/base_config","h":"#the-simplest-amis-configuration","p":594},{"i":599,"t":"In AMIS, the configuration of a component is always composed of a type field (identifying the current component) and other properties. For example: { \"type\": \"xxx\", ...other properties }","s":"The Core of Components: Type and Properties","u":"/developer/micro-page/amis/base_config","h":"#the-core-of-components-type-and-properties","p":594},{"i":601,"t":"Let's look at a slightly more complex configuration: { \"type\": \"page\", \"body\": { \"type\": \"tpl\", \"tpl\": \"Hello World!\" } } This configuration indicates through the type field that a component named Tpl, which is a template rendering component, will be rendered in the body content area. In body, besides the configuration object, it can also be an array, thus adding more components, such as divider and form components.","s":"Component Tree: The Foundation for Building Complex Interfaces","u":"/developer/micro-page/amis/base_config","h":"#component-tree-the-foundation-for-building-complex-interfaces","p":594},{"i":603,"t":"AMIS implements the production of complex pages through a tree structure, for example: Page โโโ Toolbar โ โโ Form โโโ Grid โ โโ Panel โ โ โโ Tabs โ โ โโ Chart โ โโ Panel โ โโ Chart โโโ CRUD With this hierarchical combination, AMIS can easily achieve complex layout effects.","s":"Tree Layout: The Key to Implementing Complex Pages","u":"/developer/micro-page/amis/base_config","h":"#tree-layout-the-key-to-implementing-complex-pages","p":594},{"i":605,"t":"In AMIS, events and actions are key to implementing complex UI interactions. They allow developers to listen for component events and respond with corresponding actions without worrying about component hierarchy. The capabilities of events and actions include, but are not limited to: HTTP Requests: Sending HTTP requests. Popup Notifications: Executing popups, drawer openings, and Toast notifications. Page Navigation: Implementing page link navigation. Browser Operations: Includes back, forward, refresh, etc. Component Refresh: Linkage refresh of form data, i.e., data reloaded. Component State Control: Controlling the display/hide, enable/disable, and view/edit states of a specified component. Component-Specific Actions: Executing proprietary actions of a specified component, such as submitting a form. Component Data Update: Updating the data domain of a specified component. Broadcast: Multiple components listen to the same event and respond differently. JS Scripts: Implementing required logic by writing JS code snippets, also supports executing actions within JS code. Logic Orchestration: Logical operations such as conditions, loops, exclusivity, parallelism, etc.","s":"Event Actions","u":"/developer/micro-page/amis/event","h":"","p":604},{"i":607,"t":"The onEvent property can be used to bind renderer events to response actions. Within onEvent, configure the event and action mapping relationship, where actions is a collection of response actions corresponding to the event. The event system is the cornerstone of implementing interactive logic in AMIS. It allows developers to listen to and respond to user actions or system-triggered events. This section will delve into AMIS's event system, including types of events, listening, and handling. For example: Listen to the click event of a button and execute a toast action. The code is as follows: Events usually carry parameters, which contain information related to the event. Here it is passed through args. { \"type\": \"page\", \"body\": [ { \"type\": \"button\", \"label\": \"Toggle\", \"onEvent\": { \"click\": { \"actions\": [ { \"actionType\": \"toast\", \"args\": { \"msg\": \"I am a global message\" } } ] } }, \"id\": \"u:e127ddcd70c4\" } ], \"id\": \"u:94c822247387\" }","s":"Basic Usage","u":"/developer/micro-page/amis/event","h":"#basic-usage","p":604},{"i":609,"t":"When executing actions, you can obtain the event object's data through ${event.data} and the component's current data domain through ${__rendererData}.","s":"Context","u":"/developer/micro-page/amis/event","h":"#context","p":604},{"i":611,"t":"View the runtime log in the browser console to see the process and result of the action execution.","s":"Runtime Log","u":"/developer/micro-page/amis/event","h":"#runtime-log","p":604},{"i":613,"t":"Events include renderer events and broadcast events. Actions include general actions, component actions, broadcast actions, and custom actions, which can be specified by configuring actionType.","s":"Classification of Events and Actions","u":"/developer/micro-page/amis/event","h":"#classification-of-events-and-actions","p":604},{"i":615,"t":"General actions include sending HTTP requests, jumping links, browser operations, popup notifications, copying, sending emails, refreshing, controlling display and hide, controlling enable and disable states, updating data, etc.","s":"Triggering General Actions","u":"/developer/micro-page/amis/event","h":"#triggering-general-actions","p":604},{"i":617,"t":"Trigger specific component's actions by configuring componentId or componentName.","s":"Triggering Component's Actions","u":"/developer/micro-page/amis/event","h":"#triggering-components-actions","p":604},{"i":619,"t":"Implement triggering a broadcast by configuring actionType: 'broadcast'.","s":"Triggering Broadcast Actions","u":"/developer/micro-page/amis/event","h":"#triggering-broadcast-actions","p":604},{"i":621,"t":"Implement action orchestration by configuring different logical actions, supporting nesting.","s":"Orchestration of Actions","u":"/developer/micro-page/amis/event","h":"#orchestration-of-actions","p":604},{"i":623,"t":"On the AMIS official website's \"Components\" page, you can find more events that each component can trigger. For example, for the key-value pair component, you can find the corresponding component introduction page, then scroll to the \"Event Table\" section. You can see there are add and delete events.","s":"More Events","u":"/developer/micro-page/amis/event","h":"#more-events","p":604},{"i":625,"t":"Triggering General Actions: Can be found on the AMIS official website at amis event actions - triggering general actions. Component-Specific Actions: Can be found on the component detail page. References amis event actions amis actions Through this section, you should have a basic understanding of the AMIS event system. Mastering event listening and handling will enable you to build dynamic interfaces that respond to user operations. In the following chapters, we will explore how to combine the event system with other features of AMIS to implement more complex interaction logic.","s":"More Actions","u":"/developer/micro-page/amis/event","h":"#more-actions","p":604},{"i":627,"t":"Node-RED is a process-oriented programming tool that allows you to effortlessly connect IoT devices, APIs and online services together. It employs a browser-based editor which allows users to drag and drop different nodes onto a canvas, and connect them to create a flow. Node-RED also offers a plethora of nodes which enable users to easily interact with a diverse range of devices and services.https://Node-Red.org/ใ","s":"Node-Red","u":"/developer/integration/node-red","h":"","p":626},{"i":630,"t":"Reference to๏ผsteedos-project-template.git","s":"Developing an application","u":"/developer/integration/node-red","h":"#developing-an-application","p":626},{"i":632,"t":"We can see the package.json file in the newly created node-red-app folder, which is an independent NPM project. To run the Node-Red project, we need to cd to that folder, execute yarn to install the project dependencies, and finally execute yarn start. Once running successfully, the service can be accessed through the address with port 1880.","s":"Executing","u":"/developer/integration/node-red","h":"#executing","p":626},{"i":634,"t":"we need to store static resources, we can create a static resource directory under the node-red-app folder with a self-chosen file name. Here, we use \"public\" as an example. At the same time, add the following code to the setting.js file under the node-red-app folder๏ผ httpStatic: path.join(__dirname, 'public'), httpAdminRoot: \"/admin\" example๏ผ To access the stored resources, the URL only needs to be accessed using \"/\". The URL for the Node-Red control page has been changed to:http://127.0.0.1:1880/admin","s":"Static Resource Storage","u":"/developer/integration/node-red","h":"#static-resource-storage","p":626},{"i":636,"t":"After running the Node-Red service, we can access the Node-Red by entering the address displayed on the console in a browser. Upon the first access to the service, we will see an initialization configuration wizard interface, where we can set up the account and password for accessing the Node-Red service, etc. We only need to follow the prompts to complete the configuration. After completing the initialization configuration, we will be automatically redirected to the homepage named \"Node-RED on Steedos\". On this page, we can see a tutorial on how to customize Node-Red.","s":"Initialization Configuration","u":"/developer/integration/node-red","h":"#initialization-configuration","p":626},{"i":638,"t":"On the homepage of the running Node-Red service, we can see a button named \"Go to your Node-RED flow editor\" on the right side. Clicking on it will open an editor named \"Flow Builder\". We can access the official Node-Red website tutorial at https://Node-Red.org/docs/user-guide/ to learn how to configure, debug, and deploy flows in the editor.","s":"Flow Designer","u":"/developer/integration/node-red","h":"#flow-designer","p":626},{"i":640,"t":"We can use the aforementioned Flow Designer to configure the integration of existing business systems. If we need to connect mainstream business systems such as SAP, UFIDA, and Kingdee to integrate related businesses into Steedos, we can use a variety of nodes specially developed by us, which can easily realize various integration business requirements.","s":"Steedos Node","u":"/developer/integration/node-red","h":"#steedos-node","p":626},{"i":642,"t":"Steedos Event refers to the function of event subscription and publication using the Steedos Event service in the Steedos platform. Through Steedos Event, we can subscribe to specific events, such as record creation, update or deletion events, in order to execute custom operations when the events occur. In Steedos Event, we need to specify the following parameters: Broker ๏ผa parameter used in Node-RED to specify the message broker used. In Node-RED, we can connect to Steedos projects by configuring the broker. Usually, NATS is used as the message broker. To configure the broker, we need to make corresponding configurations in the .env file under the Node-RED-app folder and reference it in Node-RED. For more details about NATS as a message broker, please refer to the following link:https://moleculer.services/zh/docs/0.14/networking.html#NATS-Transporterใ Service๏ผspecifies the name of the service used. Name๏ผspecifies the name of the node, such as the name of the node subscribing to events. Topic๏ผspecifies the topic or event name to subscribe to, such as creating records or updating records. Group๏ผspecifies the group where events are subscribed, which can be one or more groups separated by commas. By configuring these parameters, we can use Steedos Event in the Steedos platform to implement the function of event subscription and publication, so as to execute custom operations when events occur. For example, we can subscribe to record creation events, and send notifications to Slack or WeChat when events occur, or execute custom JavaScript code when events occur to achieve more complex operations.","s":"steedos-event","u":"/developer/integration/node-red","h":"#steedos-event","p":626},{"i":644,"t":"Steedos Emit is a node within Node-RED, used for sending event messages to the Steedos project. This node requires the following parameters to be configured: Broker: Specifies the name of the message broker being used; Name: Specifies the name of the node; Topic: Specifies the event topic/name, which can be overridden by msg.topic; Broadcast: Specifies whether the event should be broadcast, which can be overridden by msg.broadcast; Group: Specifies the group(s) to which the event belongs, with multiple group names separated by commas. This can be overridden by msg.group. By configuring these parameters, we can use the Steedos Emit node in Node-RED to send event messages to the Steedos project, enabling communication between different components.","s":"steedos-emit","u":"/developer/integration/node-red","h":"#steedos-emit","p":626},{"i":646,"t":"Steedos Call is a Node-RED node used for invoking the APIs provided by the Steedos platform. It can invoke the APIs of the Steedos platform by configuring Broker and Action. The value of Action can also be overridden by the msg.action property. Additionally, some JSON format options can be set in Options to better control the behavior of API invocation. For more information on the APIs provided by the Steedos platform, please refer to the API documentation of the Steedos platform. You can find more information about this in the steedos-template project.","s":"steedos-call","u":"/developer/integration/node-red","h":"#steedos-call","p":626},{"i":648,"t":"Steedos Request is a Node-RED node used for sending HTTP requests to the ObjectQL microservices and GraphQL microservices of the Steedos platform. This node requires the following parameters to be configured: Broker: Message broker. Service: Name of the microservice to be called. Name: The name of the node, used to identify the node within Node-RED. Action: The name of the operation to be performed, such as querying, creating, updating, or deleting objects. If the msg.action property is included in the message, it will override this parameter. REST: This attribute can customize the API according to JSON values. The \"method\" is the request method and the \"path\" is the routing URL address. Trigger๏ผThis attribute can customize the trigger according to JSON values. The \"listenTo\" is the object being listened to, and the \"when\" is the triggering timing. Detailed values can be found in the trigger section of the official documentation of the Steedos platform:https://beta.steedos.cn/docs/developer/action-trigger When the node receives input messages, it sends the data in the messages as parameters for the request to the Steedos platform and sends the response data as output messages to the next node. You can find more information about this in the steedos-template project. For example, you can customize an API in Node-RED with Steedos Request. The API Endpoint:http://127.0.0.1:5000/service/api/example-service/+path Example๏ผ","s":"steedos-request","u":"/developer/integration/node-red","h":"#steedos-request","p":626},{"i":650,"t":"Steedos Response is a Node-RED node used for sending response messages to the initiator of an HTTP request. This node requires the following parameters to be configured: Name: The name of the node, used to identify the node within Node-RED. When the node receives input messages, it sends the data in the messages back to the initiator of the HTTP request as the response body. The options of the node can be configured to set the status code, HTTP headers, and content type of the response. This node is typically used in conjunction with the Steedos Request node to respond to requests from the ObjectQL microservices and GraphQL microservices of the Steedos platform. More details can be found in the steedos-template project.","s":"steedos-response","u":"/developer/integration/node-red","h":"#steedos-response","p":626},{"i":652,"t":"Steedos API Gateway (APIGW) is an open-source API gateway in Steedos that helps enterprises integrate multiple microservices into a unified API. Broker:refers to the message broker Name๏ผspecifies the name of the node Action: is the name of the operation to be performed It provides a range of functionalities, such as API management, security authentication, traffic control, logging, and monitoring. In Steedos, APIGW is an independent service that can be configured through configuration files and used in conjunction with other services. This node requires the following parameters. More details can be found in the steedos-template project.","s":"steedos-api-gw","u":"/developer/integration/node-red","h":"#steedos-api-gw","p":626},{"i":654,"t":"Steedos Instance is a Node-RED node that allows you to inject a Steedos instance into the flow or global context. It enables you to perform various operations using the API of the Steedos platform, such as querying, creating, updating, and deleting data. Before using the Steedos Instance node, you need to create an application on the Steedos platform and configure its data model. Then, you need to specify the name of the application and the access token in the configuration of the Steedos Instance node. This way, when you call the Steedos instance in the flow or global context, it will automatically authenticate you with the credentials you provide and allow you to perform application-related operations. More details can be found in the steedos-template project.","s":"steedos-instance","u":"/developer/integration/node-red","h":"#steedos-instance","p":626},{"i":656,"t":"use msg.call in your Node-RED flow. msg.call('api.graphql', { query: `query { space_users(filters: [\"user\", \"=\", \"${msg.meta.user.userId}\"]) { name organization } }` }, { meta: { } } ).then((data) => { msg.payload = data node.send(msg) }).catch((err) => { node.error(err, msg) })","s":"To invoke GraphQL","u":"/developer/integration/node-red","h":"#to-invoke-graphql","p":626},{"i":658,"t":"There are two ways to invoke ObjectQL in Node-RED:","s":"To invoke ObjectQL","u":"/developer/integration/node-red","h":"#to-invoke-objectql","p":626},{"i":660,"t":"msg.call('objectql.find', { \"objectName\": \"space_users\", \"query\": { // \"fields\": [\"name\", \"orgranizations\"], \"filters\": [\"user\", \"=\", msg.meta.user.userId] } }, { meta: {} } ).then((data) => { msg.payload = data node.send(msg) }).catch((err) => { node.error(err, msg) })","s":"Invoke using msg.call","u":"/developer/integration/node-red","h":"#invoke-using-msgcall","p":626},{"i":662,"t":"const broker = global.get('broker'); msg.payload = await broker.call('objectql.find', { \"objectName\": \"space_users\", \"query\": { \"fields\": [\"name\", \"organizations\"] } }, { meta: {} } )","s":"Invoke using a broker","u":"/developer/integration/node-red","h":"#invoke-using-a-broker","p":626},{"i":664,"t":"Example๏ผ [ { \"id\": \"7350d7b42b233ab6\", \"type\": \"steedos-request-action\", \"z\": \"c10017b236a162fd\", \"broker\": \"ce147b46c731d342\", \"service\": \"5ab5acead56ffaea\", \"name\": \"trigger\", \"topic\": \"space_users_triggers\", \"rest\": \"{}\", \"restType\": \"json\", \"trigger\": \"{\\\"listenTo\\\":\\\"space_users\\\",\\\"when\\\":[\\\"beforeInsert\\\",\\\"beforeUpdate\\\"]}\", \"triggerType\": \"json\", \"params\": \"{}\", \"paramsType\": \"json\", \"x\": 100, \"y\": 120, \"wires\": [ [ \"0441d3a1237dcd50\", \"6f988203ee0b8323\" ] ] }, { \"id\": \"0441d3a1237dcd50\", \"type\": \"function\", \"z\": \"c10017b236a162fd\", \"name\": \"trigger\", \"func\": \"const doc = msg.payload.doc;\\nif ([doc.name](http://doc.name/) && doc.name.length < 2) {\\n msg.error = { message: \\\"ๅงๅๆๅฐไธคไฝ.\\\" };\\n}\\n\\nreturn msg;\", \"outputs\": 1, \"noerr\": 0, \"initialize\": \"\", \"finalize\": \"\", \"libs\": [], \"x\": 350, \"y\": 160, \"wires\": [ [ \"dd4a70227645def5\", \"1a4631e22fdbdc5d\" ] ] }, { \"id\": \"dd4a70227645def5\", \"type\": \"debug\", \"z\": \"c10017b236a162fd\", \"name\": \"debug 5\", \"active\": true, \"tosidebar\": true, \"console\": false, \"tostatus\": false, \"complete\": \"error\", \"targetType\": \"msg\", \"statusVal\": \"\", \"statusType\": \"auto\", \"x\": 680, \"y\": 80, \"wires\": [] }, { \"id\": \"1a4631e22fdbdc5d\", \"type\": \"steedos-response-action\", \"z\": \"c10017b236a162fd\", \"name\": \"\", \"x\": 700, \"y\": 220, \"wires\": [] }, { \"id\": \"6f988203ee0b8323\", \"type\": \"debug\", \"z\": \"c10017b236a162fd\", \"name\": \"debug 6\", \"active\": true, \"tosidebar\": true, \"console\": false, \"tostatus\": false, \"complete\": \"payload\", \"targetType\": \"msg\", \"statusVal\": \"\", \"statusType\": \"auto\", \"x\": 340, \"y\": 60, \"wires\": [] }, { \"id\": \"ce147b46c731d342\", \"type\": \"steedos-config\", \"name\": \"steedos\", \"transporter\": \"${TRANSPORTER}\", \"namespace\": \"steedos\", \"options\": \"{}\", \"optionsType\": \"json\" }, { \"id\": \"5ab5acead56ffaea\", \"type\": \"steedos-service-config\", \"name\": \"example-nodered\", \"version\": \"\", \"settings\": \"{}\", \"rest\": \"\", \"settingsType\": \"json\" } ]","s":"Trigger","u":"/developer/integration/node-red","h":"#trigger","p":626},{"i":666,"t":"In AMIS, the linkage mechanism is an important feature for achieving dynamic page interactions. Through linkage, components can be controlled to show, hide, or disable based on certain conditions, or to trigger interface requests. Linkage configurations are usually based on expressions.","s":"Linkage Mechanism","u":"/developer/micro-page/amis/linkage","h":"","p":665},{"i":668,"t":"Basic linkage mainly involves the display, hiding, and disabling states of components. For example, when a specific option is selected in a radio button, a text box is shown or hidden; or when a certain option is selected, another text box becomes disabled. In form item linkage, the value of hidden form items is not removed from the current data domain by default, but can be removed upon submission by adding the clearValueOnHidden property. Suppose we have a form that includes a radio button (radio) and two text boxes (text1 and text2). We want to achieve the following linkage effects: Text1 is only displayed when radio selects type 1. When radio selects type 2, text2 becomes disabled. To achieve this linkage effect, we can use expressions to configure the linkage rules. Here is an example of the corresponding JSON configuration: { \"type\": \"page\", \"body\": { \"type\": \"form\", \"body\": [ { \"type\": \"radios\", \"name\": \"foo\", \"label\": false, \"options\": [ { \"label\": \"Type 1\", \"value\": 1 }, { \"label\": \"Type 2\", \"value\": 2 } ] }, { \"type\": \"input-text\", \"name\": \"text1\", \"label\": false, \"placeholder\": \"Visible when Type 1 is selected\", \"visibleOn\": \"${foo == 1}\" }, { \"type\": \"input-text\", \"name\": \"text2\", \"label\": false, \"placeholder\": \"Disabled when Type 2 is selected\", \"disabledOn\": \"${foo == 2}\" } ] } } In this configuration: The visibleOn property controls the display of the text1 text box. When the value of the radio button is \"type1\", the text1 text box will be displayed. The disabledOn property controls the disabled state of the text2 text box. When the value of the radio button is \"type2\", the text2 text box will be disabled. With such a configuration, we have achieved a basic linkage effect, allowing the form's behavior to dynamically change based on user selection.","s":"Basic Linkage","u":"/developer/micro-page/amis/linkage","h":"#basic-linkage","p":665},{"i":670,"t":"Interface linkage is another common scenario, for example, when selecting an option from a dropdown, it triggers a new request for another dropdown's options. This is achieved by using data mapping in the initialization interface link. When the referenced variable value changes, the interface automatically requests again. Interface linkage is often applicable to initialization interfaces, such as the form's initApi, the source option source interface URL of the select component, etc. Suppose we have a form that includes a dropdown box (select) and a cascading dropdown box (cascader). We want to achieve the following linkage effect: When the user selects an option in the first dropdown box, the cascading dropdown box triggers an interface request based on the selected item, dynamically loading the corresponding options. To achieve this linkage effect, we can use data mapping in the source property of the cascading dropdown box to dynamically construct the interface request. Here is an example of the corresponding JSON configuration: { \"type\": \"page\", \"body\": { \"title\": \"\", \"type\": \"form\", \"mode\": \"horizontal\", \"body\": [ { \"label\": \"Option 1\", \"type\": \"radios\", \"name\": \"a\", \"inline\": true, \"options\": [ { \"label\": \"Option A\", \"value\": 1 }, { \"label\": \"Option B\", \"value\": 2 }, { \"label\": \"Option C\", \"value\": 3 } ] }, { \"label\": \"Option 2\", \"type\": \"select\", \"size\": \"sm\", \"name\": \"b\", \"source\": \"/amis/api/mock2/options/level2?a=${a}\", \"description\": \"Switching the value of Option 1
will trigger the source
interface of Option 2
to fetch again\" } ], \"actions\": [] } } In this configuration: The first dropdown box (select) allows the user to choose a category. The source property of the second dropdown box (select) uses data mapping ${category} to dynamically construct the URL for the interface request. When the value of category changes (i.e., the user selects an option in the first dropdown box), the second dropdown box triggers an interface request based on the new URL, loading the options for the corresponding category. With such a configuration, we have achieved an interface linkage effect, allowing the component's data to dynamically update based on user selection. Configuring Request Conditionsโ By default, the linked interface is always requested when the variable changes. However, request conditions can be configured so that the interface is only requested when a certain value in the current data domain meets specific conditions. Suppose we have a form that","s":"Interface Linkage","u":"/developer/micro-page/amis/linkage","h":"#interface-linkage","p":665},{"i":672,"t":"In many components, there is a className property. By setting the component's className, you can change its style. Below are two ways to customize styles.","s":"Custom Styles","u":"/developer/micro-page/amis/styles","h":"","p":671},{"i":674,"t":"The className can be directly set to TailwindCSS class names. Suppose we need a 30px red font, we can find in the TailwindCSS documentation that: font-size: 30px is equivalent to text-3xl color: rgb(239 68 68); is equivalent to text-red-500 { \"type\": \"tpl\", \"tpl\": \"I am a big red text\", \"className\": \"text-3xl text-red-500\", \"id\": \"u:b351a84d8d36\" } The effect in the designer: For more TailwindCSS class names, you can refer to the following documentation: TailwindCSS Class Names AMIS Class Names","s":"1. Specifying TailwindCSS Class Names","u":"/developer/micro-page/amis/styles","h":"#1-specifying-tailwindcss-class-names","p":671},{"i":676,"t":"You can customize styles through the Page component's CSS in combination with className. Suppose we need a green font CSS style: .green-text { color: green; } Then you can configure it by: Setting the CSS style in the page component, which will insert a