{"id":857,"date":"2026-04-16T10:43:20","date_gmt":"2026-04-16T10:43:20","guid":{"rendered":"https:\/\/www.devopsschool.com\/tutorials\/oracle-cloud-visual-builder-tutorial-architecture-pricing-use-cases-and-hands-on-guide-for-application-development\/"},"modified":"2026-04-16T10:43:20","modified_gmt":"2026-04-16T10:43:20","slug":"oracle-cloud-visual-builder-tutorial-architecture-pricing-use-cases-and-hands-on-guide-for-application-development","status":"publish","type":"post","link":"https:\/\/www.devopsschool.com\/tutorials\/oracle-cloud-visual-builder-tutorial-architecture-pricing-use-cases-and-hands-on-guide-for-application-development\/","title":{"rendered":"Oracle Cloud Visual Builder Tutorial: Architecture, Pricing, Use Cases, and Hands-On Guide for Application Development"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Category<\/h2>\n\n\n\n<p>Application Development<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">1. Introduction<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">What this service is<\/h3>\n\n\n\n<p>Visual Builder is Oracle Cloud\u2019s low-code service for building and delivering web and mobile applications with a visual, declarative development experience\u2014while still allowing you to extend behavior with JavaScript and integrate with REST APIs.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">One-paragraph simple explanation<\/h3>\n\n\n\n<p>If you can describe your app as pages, forms, lists, and actions\u2014and your data comes from REST services or simple data objects\u2014Visual Builder helps you assemble the UI quickly, connect it to data, add basic logic, and publish the result without standing up your own app servers.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">One-paragraph technical explanation<\/h3>\n\n\n\n<p>Technically, Visual Builder provides a browser-based IDE for designing UIs (typically using Oracle\u2019s component model) and binding those UIs to data sources via \u201cservice connections\u201d (often REST). It also provides an application runtime and lifecycle features (environments, publishing, and access control). For certain scenarios, it includes \u201cbusiness objects\u201d to model and persist application data without requiring you to build your own database schema and API layer (verify the exact capabilities for your tenancy in the official docs).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">What problem it solves<\/h3>\n\n\n\n<p>Many teams spend weeks building \u201cstandard\u201d enterprise app plumbing\u2014UI scaffolding, CRUD screens, API wiring, authentication, environments, and deployment. Visual Builder reduces that effort by providing a managed, integrated, low-code platform so you can focus on the app\u2019s workflow and data rather than app infrastructure.<\/p>\n\n\n\n<blockquote>\n<p>Naming note (important): Oracle has multiple products with similar names, including <strong>Visual Builder<\/strong> and <strong>Visual Builder Studio<\/strong>. This tutorial is specifically about <strong>Visual Builder<\/strong> on <strong>Oracle Cloud<\/strong> in the <strong>Application Development<\/strong> category. If you are looking for source control\/CI features, you may be thinking of Visual Builder Studio instead\u2014verify in official docs for the product you are using.<\/p>\n<\/blockquote>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">2. What is Visual Builder?<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Official purpose<\/h3>\n\n\n\n<p>Visual Builder is designed to help developers and teams build and extend applications faster using a low-code approach, with strong support for integrating enterprise APIs and Oracle SaaS\/Oracle Cloud services.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Core capabilities (what you can do)<\/h3>\n\n\n\n<p>Common Visual Builder capabilities include:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Visual UI design<\/strong> for web applications (and in some cases mobile-oriented UIs), including responsive layouts.<\/li>\n<li><strong>Data binding<\/strong> between UI components and data sources.<\/li>\n<li><strong>Service connections<\/strong> to REST endpoints (and commonly Oracle SaaS REST APIs).<\/li>\n<li><strong>Business objects<\/strong> for modeling data and supporting CRUD-style applications (availability and details can vary\u2014verify in official docs for your environment).<\/li>\n<li><strong>Application lifecycle<\/strong> features such as environments (for example, development\/stage\/production patterns), publishing, and access control.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Major components (conceptual model)<\/h3>\n\n\n\n<p>While exact terminology may vary slightly by release, Visual Builder implementations generally include:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Visual applications<\/strong>: The top-level app artifact that contains pages, flows, resources, and configuration.<\/li>\n<li><strong>Pages and flows<\/strong>: UI pages and navigation\/flow logic.<\/li>\n<li><strong>Components<\/strong>: Prebuilt UI components used to assemble screens.<\/li>\n<li><strong>Service connections<\/strong>: Definitions for calling REST services, including authentication configuration.<\/li>\n<li><strong>Business objects<\/strong> (optional\/when enabled): Data models managed within Visual Builder for quick CRUD apps.<\/li>\n<li><strong>Environments<\/strong>: Deployment targets and runtime contexts for testing and production publishing.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Service type<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Type<\/strong>: Managed low-code <strong>PaaS<\/strong> (Platform-as-a-Service) for application development and hosting.<\/li>\n<li><strong>Management<\/strong>: Oracle manages the platform runtime; you manage the apps, access policies, integrations, and release process.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Scope: regional vs global and tenancy alignment<\/h3>\n\n\n\n<p>Visual Builder is typically provisioned as an <strong>instance<\/strong> in an Oracle Cloud region and associated with your <strong>tenancy<\/strong> and <strong>compartment<\/strong>. In practice:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>You create\/manage Visual Builder <strong>instances<\/strong> in OCI.<\/li>\n<li>Apps live inside an instance and are accessed via instance-specific endpoints.<\/li>\n<li>Identity and access integrate with Oracle Cloud identity services (often via IAM\/identity domains).<\/li>\n<\/ul>\n\n\n\n<p>Because service behavior can vary by region and tenancy configuration, confirm region support and identity integration details in the official documentation for your cloud account.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">How it fits into the Oracle Cloud ecosystem<\/h3>\n\n\n\n<p>Visual Builder commonly sits in the Application Development layer of an OCI solution:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Front end<\/strong>: Visual Builder (UI, client logic)<\/li>\n<li><strong>Back end<\/strong>: REST APIs hosted on OCI (Functions, Container Instances, OKE, Compute), Oracle SaaS APIs, or custom services<\/li>\n<li><strong>Data<\/strong>: Autonomous Database, Oracle Database, or Visual Builder business objects (where suitable)<\/li>\n<li><strong>Identity<\/strong>: OCI IAM \/ identity domains (and potentially federation)<\/li>\n<li><strong>Ops<\/strong>: OCI Logging, Monitoring, Audit (integration details depend on service features\u2014verify in official docs)<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">3. Why use Visual Builder?<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Business reasons<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Faster time-to-market<\/strong> for internal apps and departmental solutions.<\/li>\n<li><strong>Reduced development cost<\/strong> for UI-heavy business apps (forms, lists, dashboards).<\/li>\n<li><strong>More predictable delivery<\/strong> through standardized patterns and managed runtime.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Technical reasons<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Low-code UI assembly<\/strong> reduces boilerplate front-end work.<\/li>\n<li><strong>Standard integration approach<\/strong> through REST service connections.<\/li>\n<li><strong>Rapid CRUD app creation<\/strong> when business objects meet requirements (verify availability and constraints).<\/li>\n<li><strong>Extensibility<\/strong> with JavaScript for client-side logic beyond declarative actions.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Operational reasons<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Managed runtime<\/strong> reduces the operational burden of running custom web app stacks.<\/li>\n<li><strong>Environment\/publishing workflow<\/strong> simplifies releasing versions to test and production.<\/li>\n<li><strong>Centralized governance<\/strong> (who can build, publish, access apps) through OCI identity controls.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Security\/compliance reasons<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Enterprise identity integration<\/strong> (OCI IAM\/identity domains, federation options depending on tenancy configuration).<\/li>\n<li><strong>Controlled access<\/strong> via roles\/groups and app-level authorization models.<\/li>\n<li><strong>Auditability<\/strong> for instance-level operations via OCI Audit (and additional app\/runtime logs depending on configuration\u2014verify).<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Scalability\/performance reasons<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Managed scaling characteristics<\/strong> for the service runtime (within limits and quotas).<\/li>\n<li><strong>Efficient client-side rendering<\/strong> using Oracle\u2019s UI component model (performance still depends heavily on API design and payload sizes).<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">When teams should choose it<\/h3>\n\n\n\n<p>Choose Visual Builder when:\n&#8211; You need to build <strong>business applications<\/strong> quickly (data-centric UIs).\n&#8211; Your back end is available through <strong>REST APIs<\/strong> (Oracle SaaS, custom services, or OCI-hosted APIs).\n&#8211; You want a <strong>managed<\/strong> front-end platform with clear publishing workflows.\n&#8211; You have a small-to-medium team that benefits from a <strong>standardized low-code<\/strong> approach.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">When teams should not choose it<\/h3>\n\n\n\n<p>Avoid or reconsider Visual Builder when:\n&#8211; You need deep control over front-end architecture (custom frameworks, SSR, highly specialized UI).\n&#8211; Your solution requires heavy offline-first mobile features (confirm current mobile capabilities in official docs).\n&#8211; You need extremely high throughput, ultra-low latency, or specialized performance tuning that requires owning the full stack.\n&#8211; You have strict requirements to run entirely outside managed PaaS (for example, self-hosted-only constraints).<\/p>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">4. Where is Visual Builder used?<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Industries<\/h3>\n\n\n\n<p>Visual Builder is commonly used in industries that build many internal business apps:\n&#8211; Finance and insurance (operations, onboarding workflows)\n&#8211; Manufacturing (shop-floor dashboards, quality tracking)\n&#8211; Retail (inventory tools, store operations)\n&#8211; Healthcare (non-clinical admin tools\u2014ensure compliance review)\n&#8211; Public sector (case management front ends, internal portals)<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Team types<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Application development teams building line-of-business apps<\/li>\n<li>Fusion\/Oracle SaaS extension teams<\/li>\n<li>Platform teams providing low-code capabilities<\/li>\n<li>DevOps teams standardizing app delivery for internal tools<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Workloads<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>CRUD applications (requests, approvals, inventory, task tracking)<\/li>\n<li>Data entry and validation front ends<\/li>\n<li>Dashboards that aggregate data from multiple APIs<\/li>\n<li>Rapid prototypes that mature into production apps<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Architectures<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Front end in Visual Builder + REST APIs in OCI<\/li>\n<li>Visual Builder + Oracle SaaS REST integration<\/li>\n<li>Visual Builder + API gateway pattern (Oracle API Gateway or other gateway layer, depending on org standards)<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Real-world deployment contexts<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Internal applications<\/strong> behind corporate identity, accessed by employees\/contractors<\/li>\n<li><strong>Partner portals<\/strong> with federated identity<\/li>\n<li><strong>Department apps<\/strong> that integrate with central enterprise services<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Production vs dev\/test usage<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Dev\/test<\/strong>: Rapid prototyping, validating UX with stakeholders, early integration tests.<\/li>\n<li><strong>Production<\/strong>: Stable, governed apps with controlled publishing, least-privilege IAM, tested integrations, and defined monitoring\/incident processes.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">5. Top Use Cases and Scenarios<\/h2>\n\n\n\n<p>Below are realistic scenarios where Visual Builder is frequently a strong fit.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1) Internal Request &amp; Approval App<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Problem<\/strong>: Teams track requests (IT access, procurement, HR) in email\/spreadsheets.<\/li>\n<li><strong>Why Visual Builder fits<\/strong>: Fast UI creation for forms, lists, and role-based pages; integrates with approval APIs\/workflows.<\/li>\n<li><strong>Example<\/strong>: Build an \u201cAccess Request\u201d app that calls a backend REST API to submit requests and shows status per user.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">2) Oracle SaaS Extension UI (ERP\/HCM\/SCM integrations)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Problem<\/strong>: Users need a custom UI for processes not covered by standard SaaS screens.<\/li>\n<li><strong>Why Visual Builder fits<\/strong>: Designed for enterprise integrations and REST service connections commonly used with Oracle SaaS.<\/li>\n<li><strong>Example<\/strong>: A supplier onboarding front end that calls Oracle SaaS REST endpoints and a custom validation service.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">3) CRUD App with Lightweight Data Storage<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Problem<\/strong>: You need a small app with its own data model but don\u2019t want to build a full backend.<\/li>\n<li><strong>Why Visual Builder fits<\/strong>: Business objects can provide quick data modeling and CRUD (verify feature availability and limits).<\/li>\n<li><strong>Example<\/strong>: A \u201cFacilities Issue Tracker\u201d app where users log issues and technicians update status.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">4) Operations Dashboard for On-Call and SRE Teams<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Problem<\/strong>: Operations teams need a unified view across multiple monitoring sources.<\/li>\n<li><strong>Why Visual Builder fits<\/strong>: Build pages that call REST endpoints from monitoring\/incident tools and display aggregated views.<\/li>\n<li><strong>Example<\/strong>: A \u201cService Health\u201d dashboard that reads from an internal status API and an OCI Monitoring exporter API.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">5) Partner Portal (Controlled External Access)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Problem<\/strong>: Partners need access to specific resources without giving them broad enterprise access.<\/li>\n<li><strong>Why Visual Builder fits<\/strong>: Supports identity integration and app-level authorization patterns.<\/li>\n<li><strong>Example<\/strong>: A logistics partner portal showing shipments and allowing updates via REST APIs.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">6) Field Service Web App (Responsive UI)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Problem<\/strong>: Field teams need a mobile-friendly web app for job assignments and updates.<\/li>\n<li><strong>Why Visual Builder fits<\/strong>: Responsive UI patterns, fast form and list creation.<\/li>\n<li><strong>Example<\/strong>: A technician web app for viewing assigned jobs and submitting completion notes to a REST service.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">7) Data Capture &amp; Validation Front End<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Problem<\/strong>: A backend system requires clean, validated data but current capture methods are error-prone.<\/li>\n<li><strong>Why Visual Builder fits<\/strong>: Declarative validation and standardized forms reduce errors.<\/li>\n<li><strong>Example<\/strong>: A product data entry app with validation rules calling an internal \u201ccatalog validation\u201d API.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">8) Migration Bridge UI for Legacy Systems<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Problem<\/strong>: Legacy apps need a modern UI while the backend stays unchanged.<\/li>\n<li><strong>Why Visual Builder fits<\/strong>: Wrap legacy backends exposed as REST (or via an integration layer).<\/li>\n<li><strong>Example<\/strong>: A new UI for a legacy order system whose data is exposed through an API gateway.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">9) Departmental App with Centralized Identity and Governance<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Problem<\/strong>: Departments create shadow IT apps without governance.<\/li>\n<li><strong>Why Visual Builder fits<\/strong>: Central platform with controlled access, shared patterns, and managed runtime.<\/li>\n<li><strong>Example<\/strong>: A finance reconciliation app governed by OCI policies and published through controlled environments.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">10) Event Registration and Capacity Tracking (Internal)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Problem<\/strong>: Teams need lightweight registration and attendee management without buying a separate tool.<\/li>\n<li><strong>Why Visual Builder fits<\/strong>: Quick UI + data model + publishing for internal audiences.<\/li>\n<li><strong>Example<\/strong>: An internal training signup app with capacity tracking and email integration via a backend API.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">11) Self-Service Knowledge\/Request Portal<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Problem<\/strong>: Users want a single portal for FAQs and service requests.<\/li>\n<li><strong>Why Visual Builder fits<\/strong>: Build a portal UI that integrates with knowledge and ticketing APIs.<\/li>\n<li><strong>Example<\/strong>: A portal that searches a knowledge base API and submits tickets to a service desk API.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">12) Proof-of-Concept UI for New APIs<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Problem<\/strong>: API teams need a realistic UI to validate endpoints and workflows.<\/li>\n<li><strong>Why Visual Builder fits<\/strong>: Rapid UI plus easy REST wiring enables fast feedback cycles.<\/li>\n<li><strong>Example<\/strong>: A POC UI for a new pricing API to validate data shape, latency, and error handling.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">6. Core Features<\/h2>\n\n\n\n<blockquote>\n<p>Note: Exact feature availability can vary by region, service edition, and tenancy configuration. Where details are uncertain, confirm in official docs.<\/p>\n<\/blockquote>\n\n\n\n<h3 class=\"wp-block-heading\">Visual application development (low-code UI designer)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>What it does<\/strong>: Provides a visual designer to create pages, add components, and set up navigation.<\/li>\n<li><strong>Why it matters<\/strong>: Reduces time spent writing boilerplate front-end code.<\/li>\n<li><strong>Practical benefit<\/strong>: Teams can deliver usable UIs quickly and iterate with stakeholders.<\/li>\n<li><strong>Limitations\/caveats<\/strong>: Extremely custom UI\/UX may require deeper JavaScript work or a different framework.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Component-based UI (Oracle UI components)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>What it does<\/strong>: Uses a structured component model for building enterprise UIs (often aligned with Oracle\u2019s web component ecosystem).<\/li>\n<li><strong>Why it matters<\/strong>: Consistency, accessibility patterns, and predictable behavior.<\/li>\n<li><strong>Practical benefit<\/strong>: Faster assembly of forms, tables, and layouts.<\/li>\n<li><strong>Limitations\/caveats<\/strong>: You are generally aligned to the provided component ecosystem; custom components may have constraints.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Data binding and declarative actions<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>What it does<\/strong>: Binds UI components to data variables and configures actions (fetch, create, update, navigation) without writing code for every operation.<\/li>\n<li><strong>Why it matters<\/strong>: Reduces integration boilerplate and makes UIs easier to maintain.<\/li>\n<li><strong>Practical benefit<\/strong>: Build CRUD screens quickly.<\/li>\n<li><strong>Limitations\/caveats<\/strong>: Complex orchestration may still require custom code or a backend workflow engine.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">REST service connections<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>What it does<\/strong>: Defines reusable connections to REST APIs, including endpoints, authentication, and headers.<\/li>\n<li><strong>Why it matters<\/strong>: Enterprise apps typically depend on many APIs.<\/li>\n<li><strong>Practical benefit<\/strong>: Central place to manage API definitions and reuse them across pages.<\/li>\n<li><strong>Limitations\/caveats<\/strong>: If APIs lack CORS support or have complex auth flows, integration may require additional gateway\/proxy design.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Business objects (rapid data modeling) \u2014 where supported<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>What it does<\/strong>: Lets you model entities (tables\/objects), relationships, and basic CRUD operations within the Visual Builder environment.<\/li>\n<li><strong>Why it matters<\/strong>: Eliminates the need for a separate backend for small apps.<\/li>\n<li><strong>Practical benefit<\/strong>: Build \u201cdata + UI\u201d apps quickly.<\/li>\n<li><strong>Limitations\/caveats<\/strong>:<\/li>\n<li>Not intended to replace full enterprise databases for complex workloads.<\/li>\n<li>Review data residency, backup\/restore, and lifecycle constraints in official docs.<\/li>\n<li>Confirm limits (row counts, storage, API limits) before production use.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Environments and publishing lifecycle<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>What it does<\/strong>: Supports publishing applications to controlled environments, often following dev \u2192 test\/stage \u2192 production patterns.<\/li>\n<li><strong>Why it matters<\/strong>: Enterprises need controlled releases.<\/li>\n<li><strong>Practical benefit<\/strong>: Reduces \u201cworks on my machine\u201d drift and supports repeatable promotion.<\/li>\n<li><strong>Limitations\/caveats<\/strong>: Advanced CI\/CD integration may require external tooling (verify supported integrations).<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Role-based access control (app and instance level)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>What it does<\/strong>: Controls who can access the service, who can build, and who can run specific apps.<\/li>\n<li><strong>Why it matters<\/strong>: Low-code platforms can become shadow IT without governance.<\/li>\n<li><strong>Practical benefit<\/strong>: Enforce least privilege and separation of duties (builders vs publishers vs users).<\/li>\n<li><strong>Limitations\/caveats<\/strong>: Identity integration details vary (OCI IAM\/identity domains vs legacy IDCS patterns)\u2014verify your tenancy setup.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Extensibility with JavaScript (custom logic)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>What it does<\/strong>: Allows client-side scripting for validation, custom actions, and integration logic.<\/li>\n<li><strong>Why it matters<\/strong>: Real apps need \u201cescape hatches\u201d beyond declarative configuration.<\/li>\n<li><strong>Practical benefit<\/strong>: You can implement non-trivial UX behaviors without abandoning the platform.<\/li>\n<li><strong>Limitations\/caveats<\/strong>: Be careful not to put sensitive logic in client-side code; enforce authorization on the server.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Import\/export and packaging (lifecycle portability)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>What it does<\/strong>: Supports moving application artifacts between instances\/environments using supported packaging mechanisms.<\/li>\n<li><strong>Why it matters<\/strong>: Needed for promotion, backup, and collaboration.<\/li>\n<li><strong>Practical benefit<\/strong>: Enables controlled rollout patterns.<\/li>\n<li><strong>Limitations\/caveats<\/strong>: Large apps and external dependencies (APIs, secrets) need environment-specific configuration management.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">7. Architecture and How It Works<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">High-level service architecture<\/h3>\n\n\n\n<p>At a high level, Visual Builder consists of:\n&#8211; A <strong>design-time<\/strong> experience (browser IDE) where developers build apps.\n&#8211; A <strong>runtime<\/strong> that serves the published application to end users.\n&#8211; <strong>Integration endpoints<\/strong> (service connections) to backend APIs.\n&#8211; Optional <strong>data persistence<\/strong> (business objects) managed by the service (where enabled).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Request\/data\/control flow (typical)<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>A user accesses the published app URL.<\/li>\n<li>The app authenticates the user via configured identity integration.<\/li>\n<li>The UI loads and triggers actions (for example: fetch list, submit form).<\/li>\n<li>Visual Builder calls configured REST endpoints (or business object APIs).<\/li>\n<li>The backend returns data; the UI renders it.<\/li>\n<li>Logs\/metrics are generated (service-level observability varies\u2014verify exact capabilities).<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Integrations with related services<\/h3>\n\n\n\n<p>Common integrations around Visual Builder on Oracle Cloud include:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Oracle Cloud Infrastructure IAM \/ identity domains<\/strong> for authentication and group-based access.<\/li>\n<li><strong>Oracle SaaS REST APIs<\/strong> (ERP\/HCM\/SCM\/CX) for extension apps.<\/li>\n<li><strong>OCI API Gateway<\/strong> (optional) to standardize authentication, throttling, and routing to backend services.<\/li>\n<li><strong>OCI Functions \/ OKE \/ Compute<\/strong> as backend API hosts.<\/li>\n<li><strong>Autonomous Database \/ Oracle Database<\/strong> for enterprise data backends (commonly via custom APIs).<\/li>\n<li><strong>OCI Vault<\/strong> for secrets used by your backend services (Visual Builder itself typically should not hardcode secrets).<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Dependency services (typical)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Identity service (OCI IAM)<\/li>\n<li>Networking (public endpoints and\/or controlled access patterns)<\/li>\n<li>Backend hosting for APIs (if not using business objects)<\/li>\n<li>Optional logging\/monitoring services<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Security\/authentication model (practical view)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>User authentication<\/strong>: Typically via OCI identity integration configured for the instance\/application.<\/li>\n<li><strong>API authentication<\/strong>:<\/li>\n<li>For user-context calls to APIs: often OAuth2\/OIDC patterns (through identity provider).<\/li>\n<li>For service-to-service calls: use an API gateway or backend service account patterns.<\/li>\n<li><strong>Authorization<\/strong>: Enforce authorization in backend APIs; don\u2019t rely solely on client logic.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Networking model<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Visual Builder is generally accessed over HTTPS via service URLs.<\/li>\n<li>Backend APIs should be reachable from the client:<\/li>\n<li>If APIs are public: protect them with strong auth and gateway controls.<\/li>\n<li>If APIs are private: you may need a pattern like a gateway\/proxy accessible to the client, or a dedicated architecture that avoids direct browser-to-private-network calls. The correct pattern depends on your security requirements\u2014verify with OCI networking guidance.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Monitoring\/logging\/governance considerations<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Use <strong>OCI Audit<\/strong> for tracking instance-level administrative operations.<\/li>\n<li>Use <strong>OCI Logging\/Monitoring<\/strong> for backend services and gateways.<\/li>\n<li>For app errors, implement:<\/li>\n<li>client-side error handling<\/li>\n<li>backend structured logs with correlation IDs<\/li>\n<li>API dashboards for latency\/error rate<\/li>\n<li>Tag Visual Builder instances using OCI tagging for cost allocation and governance.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Simple architecture diagram (conceptual)<\/h3>\n\n\n\n<pre><code class=\"language-mermaid\">flowchart LR\n  U[End User Browser] --&gt;|HTTPS| VB[Visual Builder Runtime]\n  VB --&gt;|REST calls| API[Backend REST API]\n  API --&gt; DB[(Database)]\n  VB --&gt;|Auth| IAM[OCI IAM \/ Identity Domain]\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Production-style architecture diagram (recommended pattern)<\/h3>\n\n\n\n<pre><code class=\"language-mermaid\">flowchart TB\n  subgraph Users\n    B[Browsers \/ Mobile Browsers]\n  end\n\n  subgraph OCI[\"Oracle Cloud (OCI)\"]\n    VBRT[Visual Builder Runtime (Published App)]\n    IAM[OCI IAM \/ Identity Domains]\n    APIGW[API Gateway (Optional but common)]\n    FN[Backend Service: Functions \/ OKE \/ Compute]\n    DB[(Autonomous DB \/ Oracle DB)]\n    LOG[Logging\/Monitoring]\n    VAULT[OCI Vault]\n    AUDIT[OCI Audit]\n  end\n\n  B --&gt;|HTTPS| VBRT\n  VBRT --&gt;|OIDC\/OAuth| IAM\n\n  %% Browser-origin API calls often go through gateway\n  VBRT --&gt;|HTTPS REST| APIGW\n  APIGW --&gt;|mTLS\/OAuth\/JWT validation| FN\n  FN --&gt; DB\n  FN --&gt;|Secrets| VAULT\n\n  APIGW --&gt; LOG\n  FN --&gt; LOG\n  VBRT -.instance events.-&gt; AUDIT\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">8. Prerequisites<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Account\/tenancy requirements<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>An <strong>Oracle Cloud tenancy<\/strong> with access to <strong>Visual Builder<\/strong>.<\/li>\n<li>Ability to create resources in a target <strong>compartment<\/strong>.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Permissions \/ IAM roles<\/h3>\n\n\n\n<p>You typically need permissions to:\n&#8211; Create and manage <strong>Visual Builder instances<\/strong>\n&#8211; Manage <strong>policies<\/strong>, <strong>groups<\/strong>, and <strong>users<\/strong> (or work with an admin who can)\n&#8211; Manage <strong>networking<\/strong> resources if your architecture requires gateways\/backends<\/p>\n\n\n\n<p>Because OCI policies are tenancy-specific, follow Oracle\u2019s official Visual Builder IAM documentation for the exact policy statements (verify in official docs).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Billing requirements<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Visual Builder is generally a paid OCI service under Universal Credits or contract terms.<\/li>\n<li>You must have a billing method or credits available.<\/li>\n<li>If you use additional services (API Gateway, Functions, DB), those are billed separately.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">CLI\/SDK\/tools needed<\/h3>\n\n\n\n<p>For the core lab in this tutorial:\n&#8211; A modern browser\n&#8211; No OCI CLI is strictly required<\/p>\n\n\n\n<p>Optional but useful:\n&#8211; OCI CLI (for managing related services)\n&#8211; A REST client (curl\/Postman) for testing APIs\n&#8211; Git (if your team uses external source control; verify Visual Builder\u2019s supported integration options)<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Region availability<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Visual Builder availability is <strong>region-dependent<\/strong>.<\/li>\n<li>Confirm the regions where Visual Builder is available in your tenancy via the OCI Console service list and official docs.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Quotas\/limits<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Instance quotas (how many instances per region\/tenancy)<\/li>\n<li>Storage limits, user limits, and request limits (service-specific)<\/li>\n<\/ul>\n\n\n\n<p>Always check <strong>Service Limits<\/strong> in OCI and the Visual Builder documentation for current quotas and constraints.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Prerequisite services (for typical production)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>OCI IAM \/ identity domain configured (users, groups, federation if needed)<\/li>\n<li>Backend API hosting (Functions\/OKE\/Compute) if you are not using business objects<\/li>\n<li>API Gateway (optional but recommended for external-facing APIs)<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">9. Pricing \/ Cost<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Current pricing model (how costs are typically measured)<\/h3>\n\n\n\n<p>Visual Builder pricing is published by Oracle and may vary by:\n&#8211; <strong>Region<\/strong>\n&#8211; <strong>Edition\/SKU<\/strong>\n&#8211; <strong>Contract type<\/strong> (Pay-as-you-go vs Universal Credits vs negotiated enterprise agreement)<\/p>\n\n\n\n<p>In general, low-code PaaS services are priced using one or more of these dimensions (confirm exact Visual Builder dimensions on the official pricing page):\n&#8211; <strong>Instance-based pricing<\/strong> (a running instance billed per hour\/month)\n&#8211; <strong>Compute capacity<\/strong> (for example, OCPU-based capacity)\n&#8211; <strong>User-based metrics<\/strong> (named users or monthly active users) in some licensing models\n&#8211; <strong>Storage<\/strong> and <strong>data transfer<\/strong> charges<\/p>\n\n\n\n<p>Because the exact SKU details can change, rely on:\n&#8211; Official pricing: https:\/\/www.oracle.com\/cloud\/pricing\/\n&#8211; OCI cost estimator: https:\/\/www.oracle.com\/cloud\/costestimator.html\n&#8211; Oracle price list \/ rate card references (often linked from pricing pages)<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Free tier<\/h3>\n\n\n\n<p>Oracle Cloud has an Always Free\/Free Tier program, but Visual Builder\u2019s inclusion can change. Do not assume Visual Builder is Always Free. Verify in official Oracle Cloud Free Tier details:\n&#8211; https:\/\/www.oracle.com\/cloud\/free\/<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Cost drivers (what usually increases spend)<\/h3>\n\n\n\n<p>Direct drivers:\n&#8211; Number of <strong>Visual Builder instances<\/strong>\n&#8211; Instance sizing\/capacity and how long instances run\n&#8211; Environment count and runtime usage patterns\n&#8211; Storage used by apps and (if applicable) business objects<\/p>\n\n\n\n<p>Indirect drivers (often overlooked):\n&#8211; Backend services (API Gateway, Functions\/OKE\/Compute)\n&#8211; Database (Autonomous Database \/ Oracle Database)\n&#8211; Logging\/monitoring retention\n&#8211; Outbound data transfer (egress) to the internet\n&#8211; Support plans and enterprise identity\/federation overhead<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Network\/data transfer implications<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>User traffic to the Visual Builder runtime is inbound to OCI (typically not billed), but outbound responses and any cross-region traffic may have costs depending on OCI rules and architecture.<\/li>\n<li>Calls from the browser to your backend APIs can increase:<\/li>\n<li>API Gateway request charges<\/li>\n<li>Backend compute usage<\/li>\n<li>Data egress if endpoints cross regions or leave OCI<\/li>\n<\/ul>\n\n\n\n<p>Validate egress assumptions with OCI Networking pricing documentation.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">How to optimize cost (practical)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Use the minimum number of instances needed (avoid idle duplicates).<\/li>\n<li>Turn off or decommission non-production instances when not needed (if the service supports stopping; otherwise delete and recreate when appropriate\u2014verify).<\/li>\n<li>Keep payload sizes small and paginate lists to reduce API and data transfer.<\/li>\n<li>Put an API gateway in front of backends to enforce throttling and caching where applicable.<\/li>\n<li>Set logging retention intentionally (avoid indefinite retention of verbose logs).<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Example low-cost starter estimate (no fabricated numbers)<\/h3>\n\n\n\n<p>A low-cost starter typically includes:\n&#8211; 1 Visual Builder instance (dev\/test)\n&#8211; A very small backend (or business objects if suitable)\n&#8211; Minimal logging retention\n&#8211; Limited users<\/p>\n\n\n\n<p>Because the price depends on region and SKU, build the estimate using:\n&#8211; OCI Cost Estimator: https:\/\/www.oracle.com\/cloud\/costestimator.html\n&#8211; Visual Builder pricing SKU on the official pricing page: https:\/\/www.oracle.com\/cloud\/pricing\/<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Example production cost considerations<\/h3>\n\n\n\n<p>A production setup often includes:\n&#8211; Separate dev\/test\/prod environments (or separate instances depending on governance)\n&#8211; API Gateway + backend compute + database\n&#8211; High availability requirements for backends\n&#8211; Observability (logs\/metrics\/traces) with retention and alerting<\/p>\n\n\n\n<p>In many enterprises, <strong>backend and database costs<\/strong> exceed the Visual Builder line item. Plan a total cost view across the entire application stack.<\/p>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">10. Step-by-Step Hands-On Tutorial<\/h2>\n\n\n\n<p>This lab builds a small, real application using Visual Builder: a \u201cTeam Tasks\u201d web app that lets authenticated users create, view, and update tasks. The goal is to demonstrate the core workflow: provision \u2192 build UI \u2192 bind to data \u2192 publish \u2192 validate \u2192 clean up.<\/p>\n\n\n\n<blockquote>\n<p>Important verification note: Visual Builder UI labels and navigation can change between releases. Use the steps below as a practical guide, but follow your tenancy\u2019s Visual Builder documentation if labels differ.<\/p>\n<\/blockquote>\n\n\n\n<h3 class=\"wp-block-heading\">Objective<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Provision a Visual Builder instance in Oracle Cloud.<\/li>\n<li>Create a Visual Builder application.<\/li>\n<li>Model a simple dataset (using <strong>business objects<\/strong> if available) or connect to a REST service.<\/li>\n<li>Build a UI with list + create\/edit form.<\/li>\n<li>Publish the app and validate behavior.<\/li>\n<li>Clean up resources to avoid ongoing charges.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Lab Overview<\/h3>\n\n\n\n<p>You will complete these stages:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Provision<\/strong>: Create a Visual Builder instance in OCI.<\/li>\n<li><strong>Build<\/strong>: Create a visual application and a \u201cTask\u201d data model.<\/li>\n<li><strong>Design UI<\/strong>: Add a page to list tasks and a page\/dialog to create\/update tasks.<\/li>\n<li><strong>Publish<\/strong>: Deploy to a test\/stage environment.<\/li>\n<li><strong>Validate<\/strong>: Confirm CRUD works and access control is correct.<\/li>\n<li><strong>Cleanup<\/strong>: Delete the app\/instance to stop billing.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Step 1: Create a Visual Builder instance in OCI<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Sign in to the <strong>OCI Console<\/strong>.<\/li>\n<li>Select the correct <strong>region<\/strong> (top-right region selector).<\/li>\n<li>Select a <strong>compartment<\/strong> where you are allowed to create resources.<\/li>\n<li>Use the console <strong>search bar<\/strong> and search for <strong>Visual Builder<\/strong>.<\/li>\n<li>Open the Visual Builder service page (often shown as Visual Builder instances).<\/li>\n<li>Click <strong>Create instance<\/strong> (or equivalent).<\/li>\n<\/ol>\n\n\n\n<p>Fill in instance details:\n&#8211; <strong>Name<\/strong>: <code>vb-lab-instance<\/code>\n&#8211; <strong>Compartment<\/strong>: your lab compartment\n&#8211; <strong>Access\/Network<\/strong>: keep default unless your org requires restricted access\n&#8211; <strong>Identity configuration<\/strong>: use your tenancy\u2019s default identity integration<\/p>\n\n\n\n<p>Click <strong>Create<\/strong> and wait until the instance is <strong>Active<\/strong>.<\/p>\n\n\n\n<p><strong>Expected outcome<\/strong>\n&#8211; A Visual Builder instance is created and in an Active\/Ready state.\n&#8211; You can open the Visual Builder instance URL (design-time link).<\/p>\n\n\n\n<p><strong>Verification<\/strong>\n&#8211; Instance lifecycle state shows <strong>Active<\/strong> (or equivalent).\n&#8211; You can open the Visual Builder UI without authorization errors (you may be prompted to log in).<\/p>\n\n\n\n<p><strong>Common errors<\/strong>\n&#8211; <em>Not authorized \/ insufficient permissions<\/em>: ask an OCI admin to grant the required policies for Visual Builder instance creation.\n&#8211; <em>Service not available in region<\/em>: switch to a supported region (verify region availability).<\/p>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h3 class=\"wp-block-heading\">Step 2: Open the Visual Builder designer and create an application<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>From the instance details page, click <strong>Open Visual Builder<\/strong> (or the instance URL).<\/li>\n<li>In the Visual Builder landing page, choose <strong>Create<\/strong> \u2192 <strong>Application<\/strong> (wording may be \u201cVisual Application\u201d).<\/li>\n<li>Select a template:\n   &#8211; Choose a <strong>Basic<\/strong> or <strong>Empty<\/strong> template if available.<\/li>\n<li>Set:\n   &#8211; <strong>Application Name<\/strong>: <code>TeamTasks<\/code>\n   &#8211; <strong>Application ID<\/strong>: accept default or use <code>teamtasks<\/code> (must be unique within the instance)<\/li>\n<\/ol>\n\n\n\n<p>Create the app.<\/p>\n\n\n\n<p><strong>Expected outcome<\/strong>\n&#8211; You are inside the Visual Builder designer with an empty\/basic app.\n&#8211; You can see navigation for pages, components, and data\/services.<\/p>\n\n\n\n<p><strong>Verification<\/strong>\n&#8211; The app appears in your applications list.\n&#8211; Opening the app shows the visual designer canvas.<\/p>\n\n\n\n<p><strong>Common errors<\/strong>\n&#8211; <em>Cannot create app<\/em>: confirm your user has the correct Visual Builder role (builder\/developer role) within the instance.<\/p>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h3 class=\"wp-block-heading\">Step 3: Create a data model (Business Object) OR connect a REST API<\/h3>\n\n\n\n<p>You have two valid paths. Use <strong>Option A<\/strong> if business objects are enabled in your Visual Builder environment. Use <strong>Option B<\/strong> if your organization prefers a separate backend API (recommended for production-grade authorization and data control).<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Option A (simplest): Create a Business Object named <code>Task<\/code><\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li>In the app designer, locate the section for <strong>Business Objects<\/strong> (sometimes under a \u201cData\u201d area).<\/li>\n<li>Create a new Business Object:\n   &#8211; <strong>Name<\/strong>: <code>Task<\/code><\/li>\n<li>Add fields like:\n   &#8211; <code>id<\/code> (often auto-generated primary key)\n   &#8211; <code>title<\/code> (Text, required)\n   &#8211; <code>description<\/code> (Text)\n   &#8211; <code>status<\/code> (Text or Enum-like text)\n   &#8211; <code>dueDate<\/code> (Date) (optional)<\/li>\n<\/ol>\n\n\n\n<p>Save the object.<\/p>\n\n\n\n<p><strong>Expected outcome<\/strong>\n&#8211; Visual Builder generates a managed REST interface (or equivalent access layer) for CRUD operations for the <code>Task<\/code> object.<\/p>\n\n\n\n<p><strong>Verification<\/strong>\n&#8211; You can see the object and fields listed.\n&#8211; There is a way to preview\/test the generated endpoints (if your edition supports it\u2014verify in your UI).<\/p>\n\n\n\n<p><strong>Caveats<\/strong>\n&#8211; Business objects are excellent for labs and small apps, but for sensitive enterprise data, confirm compliance, backup, and lifecycle requirements before using in production.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Option B (recommended architecture): Connect to a REST API<\/h4>\n\n\n\n<p>If you already have a REST API (for example, <code>GET \/tasks<\/code>, <code>POST \/tasks<\/code>, <code>PUT \/tasks\/{id}<\/code>):\n1. Go to <strong>Service Connections<\/strong> (or \u201cServices\u201d).\n2. Add a <strong>REST Service Connection<\/strong>.\n3. Provide:\n   &#8211; Base URL of your API\n   &#8211; Authentication method (OAuth2\/OIDC, API key, etc.)<\/p>\n\n\n\n<p><strong>Expected outcome<\/strong>\n&#8211; Visual Builder can call your API operations and bind responses to UI variables.<\/p>\n\n\n\n<p><strong>Verification<\/strong>\n&#8211; Use the \u201cTest\u201d feature (if available) to call an endpoint and confirm you get data.<\/p>\n\n\n\n<p><strong>Common errors<\/strong>\n&#8211; <em>CORS errors in browser<\/em>: place the API behind a gateway configured for browser access or configure CORS on the API.\n&#8211; <em>401\/403 responses<\/em>: fix OAuth scopes\/tokens and confirm backend authorization.<\/p>\n\n\n\n<p>For the rest of this lab, assume <strong>Option A<\/strong> (business objects) to keep it low-cost and self-contained.<\/p>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h3 class=\"wp-block-heading\">Step 4: Build the UI (Tasks list + Create\/Edit form)<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">4.1 Create a page to list tasks<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Create a new <strong>Page<\/strong> called <code>Tasks<\/code>.<\/li>\n<li>Add a <strong>Table<\/strong> (or List component).<\/li>\n<li>Bind the table\u2019s data source to the <code>Task<\/code> business object collection.<\/li>\n<li>Add columns:\n   &#8211; Title\n   &#8211; Status\n   &#8211; Due Date<\/li>\n<\/ol>\n\n\n\n<p>Add a <strong>Create Task<\/strong> button above the table.<\/p>\n\n\n\n<p><strong>Expected outcome<\/strong>\n&#8211; The page shows an empty table initially, ready to display tasks.<\/p>\n\n\n\n<p><strong>Verification<\/strong>\n&#8211; Use the designer\u2019s preview\/run feature to open the page. You should see the table UI load without errors.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">4.2 Create a form for creating tasks<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Create a <strong>Dialog<\/strong> (modal) or a new page called <code>TaskCreate<\/code>.<\/li>\n<li>Add input fields bound to a new Task record:\n   &#8211; Title (required)\n   &#8211; Description\n   &#8211; Status (default to <code>Open<\/code>)\n   &#8211; Due Date<\/li>\n<li>Add a <strong>Save<\/strong> button:\n   &#8211; Configure the action to <strong>create<\/strong> a new Task record.<\/li>\n<li>On success:\n   &#8211; Close dialog (or navigate back)\n   &#8211; Refresh the Tasks list<\/li>\n<\/ol>\n\n\n\n<p><strong>Expected outcome<\/strong>\n&#8211; Clicking Create opens a form; saving inserts a new Task and returns to the list.<\/p>\n\n\n\n<p><strong>Verification<\/strong>\n&#8211; Create a sample task:\n  &#8211; Title: <code>Write runbook<\/code>\n  &#8211; Status: <code>Open<\/code>\n&#8211; Confirm it appears in the list after saving.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">4.3 Add edit support (optional but recommended)<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Add an \u201cEdit\u201d action per row in the table.<\/li>\n<li>Open the same dialog\/page with the selected record.<\/li>\n<li>Save changes using an <strong>update<\/strong> action.<\/li>\n<\/ol>\n\n\n\n<p><strong>Expected outcome<\/strong>\n&#8211; You can update a task status from <code>Open<\/code> to <code>Done<\/code>.<\/p>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h3 class=\"wp-block-heading\">Step 5: Configure access (basic)<\/h3>\n\n\n\n<p>Visual Builder apps should not be published publicly unless required and reviewed.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>In app settings, find <strong>Security<\/strong> or <strong>Access<\/strong> settings.<\/li>\n<li>Ensure the app requires authenticated access.<\/li>\n<li>Map app roles to identity groups if your environment supports it.<\/li>\n<\/ol>\n\n\n\n<p><strong>Expected outcome<\/strong>\n&#8211; Only authenticated users (and optionally only approved groups) can access the app.<\/p>\n\n\n\n<p><strong>Verification<\/strong>\n&#8211; Open the app in an incognito\/private browser window.\n&#8211; Confirm you are prompted to authenticate and cannot access anonymously (depending on configuration).<\/p>\n\n\n\n<p><strong>Caveat<\/strong>\n&#8211; The exact role\/group mapping steps depend on whether your tenancy uses OCI identity domains and how Visual Builder is integrated. Follow your tenancy\u2019s official guide.<\/p>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h3 class=\"wp-block-heading\">Step 6: Publish the application<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Find the <strong>Publish<\/strong> action in the Visual Builder designer.<\/li>\n<li>Choose the target environment (for example: <strong>Stage<\/strong> or <strong>Test<\/strong>).<\/li>\n<li>Publish and wait for the process to complete.<\/li>\n<li>Copy the published application URL.<\/li>\n<\/ol>\n\n\n\n<p><strong>Expected outcome<\/strong>\n&#8211; The app is accessible via a stable published URL.<\/p>\n\n\n\n<p><strong>Verification<\/strong>\n&#8211; Open the published URL in a browser.\n&#8211; Confirm:\n  &#8211; Tasks page loads\n  &#8211; You can create a task\n  &#8211; You can edit a task (if implemented)<\/p>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h3 class=\"wp-block-heading\">Validation<\/h3>\n\n\n\n<p>Use this checklist:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>UI loads<\/strong> without console errors.<\/li>\n<li><strong>Create<\/strong> inserts a new task and appears in the list.<\/li>\n<li><strong>Edit<\/strong> updates status and persists after refresh.<\/li>\n<li><strong>Access control<\/strong> prompts for authentication (or blocks unauthorized users).<\/li>\n<li><strong>Data integrity<\/strong>: required fields enforced, basic validation works.<\/li>\n<\/ul>\n\n\n\n<p>Optional deeper validation:\n&#8211; Confirm the app handles API errors gracefully (simulate by disabling network or forcing invalid input).\n&#8211; Confirm pagination\/filtering for large lists (if needed).<\/p>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h3 class=\"wp-block-heading\">Troubleshooting<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table>\n<thead>\n<tr>\n<th>Symptom<\/th>\n<th>Likely Cause<\/th>\n<th>Fix<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u201cNot authorized\u201d in OCI Console<\/td>\n<td>Missing IAM policy<\/td>\n<td>Ask admin to grant Visual Builder instance management permissions (verify official policy examples).<\/td>\n<\/tr>\n<tr>\n<td>App preview works but published URL fails<\/td>\n<td>Environment\/publish configuration issue<\/td>\n<td>Re-publish, confirm environment status, confirm identity settings for published runtime.<\/td>\n<\/tr>\n<tr>\n<td>CORS error when calling REST API<\/td>\n<td>API not configured for browser calls<\/td>\n<td>Add CORS headers on API or use API Gateway configured for CORS and auth.<\/td>\n<\/tr>\n<tr>\n<td>401\/403 calling API<\/td>\n<td>OAuth\/token misconfiguration or missing scopes<\/td>\n<td>Verify identity app registration, scopes, and backend validation rules.<\/td>\n<\/tr>\n<tr>\n<td>Data not refreshing after create\/update<\/td>\n<td>Missing refresh action<\/td>\n<td>Add a \u201crefresh data provider\u201d action after save.<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h3 class=\"wp-block-heading\">Cleanup<\/h3>\n\n\n\n<p>To avoid ongoing charges:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Delete the published app artifact<\/strong> if your org requires it (optional).<\/li>\n<li>In the OCI Console, navigate to your <strong>Visual Builder instance<\/strong>.<\/li>\n<li>Delete the <strong>Visual Builder instance<\/strong> <code>vb-lab-instance<\/code>.<\/li>\n<\/ol>\n\n\n\n<p><strong>Expected outcome<\/strong>\n&#8211; The instance is terminated\/deleted and no longer billed.<\/p>\n\n\n\n<p><strong>Verification<\/strong>\n&#8211; Instance lifecycle state shows <strong>Deleted\/Terminated<\/strong> (or it disappears after deletion completes).<\/p>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">11. Best Practices<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Architecture best practices<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Treat Visual Builder as the <strong>front-end<\/strong> layer; keep core authorization and sensitive logic in <strong>backend services<\/strong>.<\/li>\n<li>Prefer an <strong>API gateway<\/strong> for production APIs to standardize authentication, throttling, and routing.<\/li>\n<li>Use a <strong>separate backend<\/strong> for complex workflows and sensitive data; use business objects for simpler departmental apps after governance review.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">IAM\/security best practices<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Use <strong>least privilege<\/strong>:<\/li>\n<li>Separate roles for instance admins, app developers, and publishers.<\/li>\n<li>Use <strong>groups<\/strong> to assign access, not individual users.<\/li>\n<li>Require authentication for published apps unless explicitly intended for public access and reviewed.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Cost best practices<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Limit the number of instances and environments.<\/li>\n<li>Decommission dev\/test instances when no longer needed.<\/li>\n<li>Control logs\/retention for backend services and gateways.<\/li>\n<li>Optimize API payload sizes and implement pagination.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Performance best practices<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Paginate tables and avoid loading large datasets into the browser.<\/li>\n<li>Cache reference data where appropriate (in backend or gateway).<\/li>\n<li>Minimize chattiness: combine API calls when possible.<\/li>\n<li>Use efficient filters and server-side search.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Reliability best practices<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Design backend APIs for retries and idempotency.<\/li>\n<li>Implement proper error states in the UI (user-friendly messages, safe retries).<\/li>\n<li>Use health checks and SLOs for backend services; the UI is only as reliable as its dependencies.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Operations best practices<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Define ownership:<\/li>\n<li>Who publishes?<\/li>\n<li>Who responds to incidents?<\/li>\n<li>Who rotates secrets (backend)?<\/li>\n<li>Implement monitoring for API latency, error rate, and saturation.<\/li>\n<li>Use correlation IDs in API calls to trace user actions end-to-end.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Governance\/tagging\/naming best practices<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Use OCI <strong>tags<\/strong> (cost center, environment, owner, data classification).<\/li>\n<li>Standardize naming:<\/li>\n<li><code>vb-&lt;team&gt;-&lt;env&gt;<\/code> for instances<\/li>\n<li><code>&lt;app&gt;-&lt;env&gt;<\/code> for app identifiers<\/li>\n<li>Document:<\/li>\n<li>API dependencies<\/li>\n<li>identity groups\/roles<\/li>\n<li>publish process and rollback steps<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">12. Security Considerations<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Identity and access model<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Visual Builder typically integrates with OCI identity (identity domains) for authentication and group-based access.<\/li>\n<li>Ensure builders\/publishers are restricted; low-code platforms can become \u201cdeployment tools\u201d if over-permissioned.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Encryption<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Data in transit uses HTTPS.<\/li>\n<li>For data at rest:<\/li>\n<li>Service-managed storage is typically encrypted by default in OCI services, but confirm the specific encryption posture for Visual Builder and business objects in official docs.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Network exposure<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Published app endpoints are reachable via HTTPS.<\/li>\n<li>Treat any public endpoint as internet-exposed:<\/li>\n<li>Require authentication<\/li>\n<li>Limit access by group\/role<\/li>\n<li>Consider additional protections (WAF in front of backends; gateway throttling)<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Secrets handling<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Do not store secrets (API keys, client secrets) in client-side code.<\/li>\n<li>For backend services, store secrets in <strong>OCI Vault<\/strong> and inject them at runtime.<\/li>\n<li>Prefer OAuth flows that do not expose long-lived secrets to the browser.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Audit\/logging<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Use <strong>OCI Audit<\/strong> for instance-level administrative actions.<\/li>\n<li>Ensure backend API logs capture:<\/li>\n<li>authentication subject<\/li>\n<li>authorization decisions<\/li>\n<li>request IDs\/correlation IDs<\/li>\n<li>sensitive data redaction<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Compliance considerations<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Confirm data residency and retention requirements:<\/li>\n<li>Where is data stored?<\/li>\n<li>How are backups handled?<\/li>\n<li>What is the deletion lifecycle?<\/li>\n<li>For regulated industries, validate:<\/li>\n<li>access control<\/li>\n<li>audit trail requirements<\/li>\n<li>encryption requirements<\/li>\n<li>vendor attestations available from Oracle (through official channels)<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Common security mistakes<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Assuming UI controls enforce authorization (they do not\u2014backend must enforce).<\/li>\n<li>Publishing apps without authentication.<\/li>\n<li>Calling internal\/private APIs directly from browser without proper gateway patterns.<\/li>\n<li>Over-permissioning builders with instance admin rights.<\/li>\n<li>Logging sensitive data (tokens, PII) in client logs or backend logs.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Secure deployment recommendations<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Put critical data and authorization behind backend APIs.<\/li>\n<li>Use API Gateway policies for JWT validation and rate limiting.<\/li>\n<li>Limit app access by group and environment.<\/li>\n<li>Perform security testing:<\/li>\n<li>OWASP checks for web apps<\/li>\n<li>authorization tests (horizontal\/vertical privilege escalation)<\/li>\n<li>dependency review for custom JavaScript libraries<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">13. Limitations and Gotchas<\/h2>\n\n\n\n<blockquote>\n<p>Treat this section as a \u201cwatch list.\u201d Always validate against your exact Visual Builder edition and OCI region.<\/p>\n<\/blockquote>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Service availability varies by region<\/strong>: You may not find Visual Builder in every OCI region.<\/li>\n<li><strong>Business objects are not a universal replacement for enterprise databases<\/strong>: Validate limits and operational controls before production use.<\/li>\n<li><strong>Browser-to-API networking constraints<\/strong>: Private APIs are not directly reachable from the public internet without an appropriate pattern; CORS can block requests.<\/li>\n<li><strong>Client-side logic visibility<\/strong>: Any JavaScript logic in the client is inspectable; don\u2019t embed sensitive rules or secrets.<\/li>\n<li><strong>Identity integration differences<\/strong>: OCI IAM\/identity domains vs legacy identity setups can change configuration steps\u2014follow official docs.<\/li>\n<li><strong>Promotion between environments<\/strong>: Environment-specific configuration (API endpoints, auth) requires careful management to avoid \u201cworks in test, fails in prod.\u201d<\/li>\n<li><strong>Cost surprises<\/strong>:<\/li>\n<li>Multiple always-on instances<\/li>\n<li>Excessive logging retention<\/li>\n<li>Backend egress to the internet<\/li>\n<li><strong>Operational ownership<\/strong>: Teams sometimes treat low-code apps as \u201cno ops,\u201d but production still needs monitoring, incident response, and change control.<\/li>\n<li><strong>Vendor-specific UI component model<\/strong>: Deep customization may be harder than in a fully custom framework.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">14. Comparison with Alternatives<\/h2>\n\n\n\n<p>Visual Builder sits in the low-code application development space. Here\u2019s how it commonly compares.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Alternatives in Oracle Cloud<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Oracle APEX<\/strong>: Strong for database-centric apps, especially Oracle Database workloads.<\/li>\n<li><strong>Custom web apps on OCI<\/strong> (React\/Angular\/Vue + backend): Maximum flexibility, more engineering\/ops effort.<\/li>\n<li><strong>Oracle Integration \/ Process Automation<\/strong> (where applicable): Better for orchestration and integration flows; not primarily a UI builder (confirm current product boundaries in official docs).<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Alternatives in other clouds<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Microsoft Power Apps<\/strong>: Deep M365\/Dynamics integration, broad low-code adoption.<\/li>\n<li><strong>Google AppSheet<\/strong>: Spreadsheet\/database-driven low-code apps.<\/li>\n<li><strong>AWS Amplify<\/strong>: Developer-centric full-stack tooling; not low-code in the same way.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Open-source \/ self-managed alternatives<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Budibase<\/strong>, <strong>Appsmith<\/strong>, <strong>ToolJet<\/strong>: Self-hosted internal tools platforms; requires operating the platform.<\/li>\n<li><strong>Retool<\/strong> (commercial): Internal tools with fast UI + integrations; not Oracle-managed in OCI.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Comparison table<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table>\n<thead>\n<tr>\n<th>Option<\/th>\n<th>Best For<\/th>\n<th>Strengths<\/th>\n<th>Weaknesses<\/th>\n<th>When to Choose<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>Oracle Cloud Visual Builder<\/strong><\/td>\n<td>Low-code enterprise UIs integrated with REST\/Oracle ecosystems<\/td>\n<td>Fast UI development, managed runtime, Oracle ecosystem alignment<\/td>\n<td>Less control than fully custom stacks; must follow service patterns\/limits<\/td>\n<td>You need rapid delivery with governance on Oracle Cloud<\/td>\n<\/tr>\n<tr>\n<td><strong>Oracle APEX<\/strong><\/td>\n<td>Database-centric apps on Oracle DB<\/td>\n<td>Extremely productive for CRUD\/reporting; tight DB integration<\/td>\n<td>Different development model; best when Oracle DB is central<\/td>\n<td>Your data is primarily in Oracle DB and you want rapid DB apps<\/td>\n<\/tr>\n<tr>\n<td><strong>Custom React\/Angular + OCI backend<\/strong><\/td>\n<td>Highly customized apps and UX<\/td>\n<td>Maximum flexibility, full control<\/td>\n<td>Higher engineering and ops effort<\/td>\n<td>You need custom UX\/performance and can operate the stack<\/td>\n<\/tr>\n<tr>\n<td><strong>Microsoft Power Apps<\/strong><\/td>\n<td>M365\/Dynamics organizations<\/td>\n<td>Huge connector ecosystem, citizen dev adoption<\/td>\n<td>Licensing complexity; may not align with Oracle stack<\/td>\n<td>Your org is standardized on Microsoft low-code<\/td>\n<\/tr>\n<tr>\n<td><strong>Google AppSheet<\/strong><\/td>\n<td>Simple apps from sheets\/tables<\/td>\n<td>Very fast for lightweight apps<\/td>\n<td>Limited for complex enterprise patterns<\/td>\n<td>You need quick departmental apps with minimal engineering<\/td>\n<\/tr>\n<tr>\n<td><strong>Open-source (Appsmith\/ToolJet\/Budibase)<\/strong><\/td>\n<td>Self-hosted internal tools<\/td>\n<td>Full control, extensibility<\/td>\n<td>You operate security, upgrades, HA<\/td>\n<td>You need self-managed and accept operational burden<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">15. Real-World Example<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Enterprise example: Oracle SaaS extension for procurement intake<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Problem<\/strong><\/li>\n<li>A global enterprise uses Oracle SaaS for procurement but needs a custom intake portal for multiple business units with additional validation, attachments, and status tracking.<\/li>\n<li><strong>Proposed architecture<\/strong><\/li>\n<li>Visual Builder app provides the portal UI.<\/li>\n<li>API Gateway fronts backend services.<\/li>\n<li>Backend microservice (OKE\/Functions\/Compute) performs validation, integrates with Oracle SaaS REST APIs, and writes audit logs.<\/li>\n<li>Database stores portal-specific metadata and status history (Autonomous Database).<\/li>\n<li>OCI IAM groups control access by business unit and role.<\/li>\n<li><strong>Why Visual Builder was chosen<\/strong><\/li>\n<li>Fast UI iteration with stakeholders.<\/li>\n<li>Strong fit for REST-based integration with Oracle SaaS.<\/li>\n<li>Managed runtime reduces front-end operational load.<\/li>\n<li><strong>Expected outcomes<\/strong><\/li>\n<li>Reduced intake time and fewer errors due to validation.<\/li>\n<li>Centralized governance for who can submit\/approve\/view.<\/li>\n<li>Faster delivery compared to building a custom portal from scratch.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Startup\/small-team example: Internal operations tracker<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Problem<\/strong><\/li>\n<li>A 20-person startup needs an internal tool to track onboarding tasks, equipment assignments, and IT requests.<\/li>\n<li><strong>Proposed architecture<\/strong><\/li>\n<li>Visual Builder app using business objects for tasks and requests (after confirming suitability).<\/li>\n<li>Authentication through OCI identity domain users\/groups.<\/li>\n<li>Minimal backend; optional webhook service for notifications later.<\/li>\n<li><strong>Why Visual Builder was chosen<\/strong><\/li>\n<li>Small team can deliver quickly without building\/operating a full stack.<\/li>\n<li>Fits CRUD workflow with minimal integration complexity.<\/li>\n<li><strong>Expected outcomes<\/strong><\/li>\n<li>Replace spreadsheets with an auditable tool.<\/li>\n<li>Quick updates as processes change.<\/li>\n<li>Low operational overhead for the team.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">16. FAQ<\/h2>\n\n\n\n<p>1) <strong>Is Visual Builder the same as Visual Builder Studio?<\/strong><br\/>\nNo. Visual Builder focuses on building low-code applications and publishing them to a managed runtime. Visual Builder Studio is a separate product often focused on source control and DevOps-style workflows. Verify the product pages for your subscription.<\/p>\n\n\n\n<p>2) <strong>Do I need to know JavaScript to use Visual Builder?<\/strong><br\/>\nNot for basic CRUD and standard UI flows. For custom behaviors, validation logic, or advanced UI patterns, JavaScript is often helpful.<\/p>\n\n\n\n<p>3) <strong>Can Visual Builder connect to my existing REST APIs?<\/strong><br\/>\nYes\u2014service connections are a core concept. You must handle authentication and CORS\/networking constraints appropriately.<\/p>\n\n\n\n<p>4) <strong>Can I build mobile apps with Visual Builder?<\/strong><br\/>\nVisual Builder commonly supports building responsive web UIs and may support mobile-oriented patterns. Confirm current mobile capabilities in official docs for your version.<\/p>\n\n\n\n<p>5) <strong>Is Visual Builder suitable for public internet-facing apps?<\/strong><br\/>\nIt can be used, but you must design security carefully (authentication, authorization, rate limiting, WAF\/gateway patterns). Many teams use it primarily for internal\/partner apps.<\/p>\n\n\n\n<p>6) <strong>Where should authorization be enforced\u2014UI or backend?<\/strong><br\/>\nBackend. Always enforce authorization in backend services. The UI can hide controls, but it cannot be trusted to protect data.<\/p>\n\n\n\n<p>7) <strong>What are business objects and when should I use them?<\/strong><br\/>\nBusiness objects provide quick data modeling and CRUD without building a separate backend. Use them for smaller, governed apps after validating limits, data policies, and lifecycle requirements.<\/p>\n\n\n\n<p>8) <strong>How do environments work (dev\/test\/prod)?<\/strong><br\/>\nVisual Builder typically supports publishing to separate environments or stages. The exact model varies. Establish a promotion process and manage environment-specific settings carefully.<\/p>\n\n\n\n<p>9) <strong>Can I integrate Visual Builder with OCI API Gateway?<\/strong><br\/>\nCommonly yes, especially for browser-facing APIs. Use the gateway for JWT validation, throttling, and routing. Confirm exact integration steps in OCI docs.<\/p>\n\n\n\n<p>10) <strong>How do I manage secrets for API calls?<\/strong><br\/>\nAvoid secrets in client-side code. Use OAuth flows or gateway mediation. For backend services, store secrets in OCI Vault.<\/p>\n\n\n\n<p>11) <strong>Does Visual Builder support CI\/CD?<\/strong><br\/>\nThere are usually mechanisms for packaging, exporting\/importing, and publishing. Full CI\/CD may involve external tooling and\/or other Oracle services. Verify current supported workflows in official docs.<\/p>\n\n\n\n<p>12) <strong>What\u2019s the best database for Visual Builder apps?<\/strong><br\/>\nFor enterprise data: use a proper database (Autonomous Database\/Oracle Database) behind APIs. For small apps: business objects may suffice if approved.<\/p>\n\n\n\n<p>13) <strong>How do I troubleshoot failed REST calls from the UI?<\/strong><br\/>\nCheck browser developer tools (network tab), confirm CORS, verify auth tokens, and inspect backend logs with correlation IDs.<\/p>\n\n\n\n<p>14) <strong>How do I control who can create or publish apps?<\/strong><br\/>\nUse OCI IAM groups and Visual Builder roles. Separate duties: builders vs publishers vs admins.<\/p>\n\n\n\n<p>15) <strong>What are common production pitfalls?<\/strong><br\/>\nRelying on client-side authorization, ignoring CORS\/networking, underestimating backend costs, and lacking monitoring\/incident ownership.<\/p>\n\n\n\n<p>16) <strong>Can I migrate away from Visual Builder later?<\/strong><br\/>\nYou can usually export app artifacts, but UI frameworks and low-code abstractions create platform coupling. Plan migrations by separating business logic into backends and keeping APIs portable.<\/p>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">17. Top Online Resources to Learn Visual Builder<\/h2>\n\n\n\n<p>Use these as your primary references (prefer official sources for correctness).<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table>\n<thead>\n<tr>\n<th>Resource Type<\/th>\n<th>Name<\/th>\n<th>Why It Is Useful<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Official Documentation<\/td>\n<td>Oracle Visual Builder Documentation: https:\/\/docs.oracle.com\/en\/cloud\/paas\/visual-builder\/<\/td>\n<td>Authoritative, updated product docs, concepts, tutorials, administration guidance.<\/td>\n<\/tr>\n<tr>\n<td>Official Pricing<\/td>\n<td>Oracle Cloud Pricing: https:\/\/www.oracle.com\/cloud\/pricing\/<\/td>\n<td>Entry point to official pricing; search for Visual Builder SKUs and terms.<\/td>\n<\/tr>\n<tr>\n<td>Pricing Calculator<\/td>\n<td>OCI Cost Estimator: https:\/\/www.oracle.com\/cloud\/costestimator.html<\/td>\n<td>Build region-specific estimates without guessing.<\/td>\n<\/tr>\n<tr>\n<td>Free Tier Info<\/td>\n<td>Oracle Cloud Free Tier: https:\/\/www.oracle.com\/cloud\/free\/<\/td>\n<td>Confirms what is included in free tier and current terms.<\/td>\n<\/tr>\n<tr>\n<td>Architecture Center<\/td>\n<td>Oracle Architecture Center: https:\/\/www.oracle.com\/cloud\/architecture-center\/<\/td>\n<td>Reference architectures and best practices (useful for API gateway, IAM, networking patterns).<\/td>\n<\/tr>\n<tr>\n<td>Solutions Docs<\/td>\n<td>Oracle Cloud Solutions: https:\/\/docs.oracle.com\/solutions\/<\/td>\n<td>Practical architecture patterns and implementation guidance across OCI services.<\/td>\n<\/tr>\n<tr>\n<td>Hands-on Labs<\/td>\n<td>Oracle LiveLabs: https:\/\/apexapps.oracle.com\/pls\/apex\/r\/dbpm\/livelabs\/home<\/td>\n<td>Official hands-on labs; search within LiveLabs for \u201cVisual Builder\u201d.<\/td>\n<\/tr>\n<tr>\n<td>OCI IAM Docs<\/td>\n<td>OCI Identity documentation: https:\/\/docs.oracle.com\/en-us\/iaas\/Content\/Identity\/home.htm<\/td>\n<td>Essential for authentication, groups, policies, and least privilege.<\/td>\n<\/tr>\n<tr>\n<td>OCI API Gateway Docs<\/td>\n<td>API Gateway documentation: https:\/\/docs.oracle.com\/en-us\/iaas\/Content\/APIGateway\/home.htm<\/td>\n<td>Commonly used with Visual Builder apps for secure API access.<\/td>\n<\/tr>\n<tr>\n<td>Official Videos<\/td>\n<td>Oracle YouTube Channel: https:\/\/www.youtube.com\/@Oracle<\/td>\n<td>Find Visual Builder sessions, demos, and webinars (verify recency).<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">18. Training and Certification Providers<\/h2>\n\n\n\n<p>The following training providers may offer courses related to Oracle Cloud, Application Development, and Visual Builder. Confirm current course availability and outlines on each website.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table>\n<thead>\n<tr>\n<th>Institute<\/th>\n<th>Suitable Audience<\/th>\n<th>Likely Learning Focus<\/th>\n<th>Mode<\/th>\n<th>Website URL<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>DevOpsSchool.com<\/td>\n<td>Developers, DevOps engineers, platform teams<\/td>\n<td>OCI fundamentals, app delivery practices, DevOps integration patterns<\/td>\n<td>check website<\/td>\n<td>https:\/\/www.devopsschool.com\/<\/td>\n<\/tr>\n<tr>\n<td>ScmGalaxy.com<\/td>\n<td>Students, engineers<\/td>\n<td>Software lifecycle, DevOps foundations that support application delivery<\/td>\n<td>check website<\/td>\n<td>https:\/\/www.scmgalaxy.com\/<\/td>\n<\/tr>\n<tr>\n<td>CLoudOpsNow.in<\/td>\n<td>Cloud engineers, operations teams<\/td>\n<td>Cloud operations practices, monitoring, reliability patterns<\/td>\n<td>check website<\/td>\n<td>https:\/\/www.cloudopsnow.in\/<\/td>\n<\/tr>\n<tr>\n<td>SreSchool.com<\/td>\n<td>SREs, operations, platform engineering<\/td>\n<td>SRE practices, incident response, reliability engineering<\/td>\n<td>check website<\/td>\n<td>https:\/\/www.sreschool.com\/<\/td>\n<\/tr>\n<tr>\n<td>AiOpsSchool.com<\/td>\n<td>Operations, SRE, IT ops<\/td>\n<td>AIOps fundamentals, observability, automation concepts<\/td>\n<td>check website<\/td>\n<td>https:\/\/www.aiopsschool.com\/<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">19. Top Trainers<\/h2>\n\n\n\n<p>These sites are presented as training resources\/platforms. Verify the specific Visual Builder\/OCI course offerings directly.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table>\n<thead>\n<tr>\n<th>Platform\/Site<\/th>\n<th>Likely Specialization<\/th>\n<th>Suitable Audience<\/th>\n<th>Website URL<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>RajeshKumar.xyz<\/td>\n<td>Cloud\/DevOps coaching and technical training (verify focus areas)<\/td>\n<td>Engineers seeking guided training<\/td>\n<td>https:\/\/rajeshkumar.xyz\/<\/td>\n<\/tr>\n<tr>\n<td>devopstrainer.in<\/td>\n<td>DevOps and cloud training (verify OCI coverage)<\/td>\n<td>DevOps engineers, developers<\/td>\n<td>https:\/\/www.devopstrainer.in\/<\/td>\n<\/tr>\n<tr>\n<td>devopsfreelancer.com<\/td>\n<td>Independent consulting\/training style resources (verify offerings)<\/td>\n<td>Teams needing short-term expertise<\/td>\n<td>https:\/\/www.devopsfreelancer.com\/<\/td>\n<\/tr>\n<tr>\n<td>devopssupport.in<\/td>\n<td>Support and training resources (verify OCI\/Visual Builder availability)<\/td>\n<td>Operations and DevOps teams<\/td>\n<td>https:\/\/www.devopssupport.in\/<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">20. Top Consulting Companies<\/h2>\n\n\n\n<p>These consulting providers may assist with Oracle Cloud implementations and application delivery. Validate service catalogs and case studies on their websites.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table>\n<thead>\n<tr>\n<th>Company Name<\/th>\n<th>Likely Service Area<\/th>\n<th>Where They May Help<\/th>\n<th>Consulting Use Case Examples<\/th>\n<th>Website URL<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>cotocus.com<\/td>\n<td>Cloud\/DevOps consulting (verify offerings)<\/td>\n<td>Architecture, implementation support, operations setup<\/td>\n<td>OCI landing zone + API gateway patterns + deployment practices<\/td>\n<td>https:\/\/cotocus.com\/<\/td>\n<\/tr>\n<tr>\n<td>DevOpsSchool.com<\/td>\n<td>DevOps and cloud consulting\/training<\/td>\n<td>Platform engineering, DevOps enablement, delivery pipelines<\/td>\n<td>Build an app delivery workflow for Visual Builder + backend APIs<\/td>\n<td>https:\/\/www.devopsschool.com\/<\/td>\n<\/tr>\n<tr>\n<td>DEVOPSCONSULTING.IN<\/td>\n<td>DevOps consulting (verify OCI scope)<\/td>\n<td>CI\/CD, infrastructure automation, operational readiness<\/td>\n<td>Set up monitoring\/logging and release governance for app platforms<\/td>\n<td>https:\/\/devopsconsulting.in\/<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">21. Career and Learning Roadmap<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">What to learn before Visual Builder<\/h3>\n\n\n\n<p>To be effective with Visual Builder on Oracle Cloud, learn:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Web app fundamentals<\/strong>: HTTP, REST, cookies\/tokens, browser security basics (CORS).<\/li>\n<li><strong>Identity basics<\/strong>: OAuth2\/OIDC concepts, JWT, user vs service authentication.<\/li>\n<li><strong>OCI fundamentals<\/strong>: compartments, policies, regions, tagging, auditing.<\/li>\n<li><strong>API basics<\/strong>: design CRUD endpoints, pagination, filtering, error handling.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">What to learn after Visual Builder<\/h3>\n\n\n\n<p>To deliver production solutions:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>OCI API Gateway<\/strong> patterns (auth, throttling, routing).<\/li>\n<li><strong>Backend development on OCI<\/strong>:<\/li>\n<li>OCI Functions, OKE, Compute<\/li>\n<li>Autonomous Database<\/li>\n<li><strong>Observability<\/strong>: metrics, logs, tracing, alerting, SLOs.<\/li>\n<li><strong>Security engineering<\/strong>: threat modeling, OWASP, secrets management with OCI Vault.<\/li>\n<li><strong>Release engineering<\/strong>: environment promotion, rollback strategies, configuration management.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Job roles that use it<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Application Developer (enterprise apps)<\/li>\n<li>Solutions Engineer \/ Solutions Architect<\/li>\n<li>Platform Engineer (low-code governance)<\/li>\n<li>DevOps Engineer (release and environment patterns)<\/li>\n<li>Integration Engineer (REST and SaaS integrations)<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Certification path (if available)<\/h3>\n\n\n\n<p>Oracle certification offerings change over time. Use Oracle University to confirm current certifications relevant to:\n&#8211; OCI Foundations\n&#8211; OCI Developer tracks\n&#8211; Application development\/low-code tracks (if offered)<\/p>\n\n\n\n<p>Start here and search for current tracks:\n&#8211; https:\/\/education.oracle.com\/<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Project ideas for practice<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>A \u201cTeam Tasks\u201d app (this lab) connected to a custom REST API with JWT auth.<\/li>\n<li>An \u201cAsset Tracker\u201d app with barcode input and a backend validation service.<\/li>\n<li>A \u201cPartner Portal\u201d prototype with role-based views and API gateway throttling.<\/li>\n<li>A \u201cSaaS extension UI\u201d that reads\/writes to Oracle SaaS REST endpoints (in a sandbox).<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">22. Glossary<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Business Objects<\/strong>: A Visual Builder feature for defining data entities and performing CRUD without building a separate backend (verify scope\/limits in official docs).<\/li>\n<li><strong>Compartment (OCI)<\/strong>: A logical container in Oracle Cloud used to organize and isolate resources with IAM policies.<\/li>\n<li><strong>CORS (Cross-Origin Resource Sharing)<\/strong>: Browser security mechanism that can block API calls unless the server allows the requesting origin.<\/li>\n<li><strong>CRUD<\/strong>: Create, Read, Update, Delete\u2014common operations for data-centric apps.<\/li>\n<li><strong>Environment<\/strong>: A deployment target (dev\/test\/stage\/prod) used to separate development and production runtimes.<\/li>\n<li><strong>IAM (Identity and Access Management)<\/strong>: OCI service that manages users, groups, policies, and authentication.<\/li>\n<li><strong>Identity Domain<\/strong>: OCI\u2019s identity management boundary (terminology and configuration depend on tenancy; verify in official docs).<\/li>\n<li><strong>JWT (JSON Web Token)<\/strong>: A signed token commonly used for stateless authentication\/authorization.<\/li>\n<li><strong>Low-code<\/strong>: Development approach that uses visual tools and configuration to reduce hand-coded work.<\/li>\n<li><strong>PaaS<\/strong>: Platform-as-a-Service\u2014managed platform where the provider operates underlying infrastructure\/runtime.<\/li>\n<li><strong>REST API<\/strong>: HTTP-based API style typically using JSON payloads and standard verbs (GET\/POST\/PUT\/DELETE).<\/li>\n<li><strong>Service Connection<\/strong>: Visual Builder configuration representing an integration to an external service (commonly REST).<\/li>\n<li><strong>Tenancy (OCI)<\/strong>: Your Oracle Cloud account boundary containing compartments, users, policies, and resources.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">23. Summary<\/h2>\n\n\n\n<p>Visual Builder is Oracle Cloud\u2019s low-code Application Development service for building and publishing web (and often mobile-friendly) applications quickly, especially when your data and processes are accessible through REST APIs or simple managed data objects. It matters because it reduces UI and deployment overhead while still fitting into enterprise identity and governance patterns on Oracle Cloud.<\/p>\n\n\n\n<p>Cost-wise, the biggest drivers are typically the number of instances\/environments and the downstream services your app depends on (API gateway, backend compute, databases, logging, and data egress). Security-wise, the key principle is to keep authorization and sensitive logic in backend services, use strong identity integration, and apply least-privilege IAM for builders and publishers.<\/p>\n\n\n\n<p>Use Visual Builder when you need fast delivery of data-centric business apps with controlled publishing on Oracle Cloud. For highly customized applications or situations requiring full stack control, consider a custom front-end stack on OCI instead.<\/p>\n\n\n\n<p>Next step: provision a non-production Visual Builder instance, complete the \u201cTeam Tasks\u201d lab, and then evolve the architecture by adding an API Gateway + backend REST service to practice production-grade authentication, authorization, and observability.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Application Development<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[54,62],"tags":[],"class_list":["post-857","post","type-post","status-publish","format-standard","hentry","category-application-development","category-oracle-cloud"],"_links":{"self":[{"href":"https:\/\/www.devopsschool.com\/tutorials\/wp-json\/wp\/v2\/posts\/857","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devopsschool.com\/tutorials\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devopsschool.com\/tutorials\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/tutorials\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/tutorials\/wp-json\/wp\/v2\/comments?post=857"}],"version-history":[{"count":0,"href":"https:\/\/www.devopsschool.com\/tutorials\/wp-json\/wp\/v2\/posts\/857\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.devopsschool.com\/tutorials\/wp-json\/wp\/v2\/media?parent=857"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devopsschool.com\/tutorials\/wp-json\/wp\/v2\/categories?post=857"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devopsschool.com\/tutorials\/wp-json\/wp\/v2\/tags?post=857"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}