Skip to main content

Using Builder Studio

Following sections help you to understand & use Builder Studio. Follow these steps for a successful app build.

Connect - Import

  1. Connect to Db Sources and import Tables/Views (via metadata information).
  • Databases supported are MySQL, PostgreSQL, Oracle, MS SQL Server.

    • On request: We will enable other db sources in studio. Runtime supports more dbs for generated projects.

    • For runtime, Databases supported are MySQL, MariaDB, PostgreSQL, Oracle, MS SQL Server, Azure SQL, Snowflake, (DB2, H2, HSQLDB).

    • Compatible Databases: Below Postgres or other compatible databases should be able to be used for Import and runtime deployment: Aiven PostgreSQL, Google AlloyDB Postgres, AWS RDS | AWS Aurora - MySQL and PostgreSQL, Azure Cosmos DB for PostgreSQL, Azure Postgres database, Crunchy Postgres, DigitalOcean Postgres, ElephantSQL Postgres, EnterpriseDB (BigAnimal) Postgres, GCP Cloud SQL database - MySQL PostgreSQL and SQL Server, Heroku Postgres Database, Neon Postgres, Railway Postgres, Render Postgres, Supabase Postgres, Timescale Postgres, Yugabyte Postgres, Citus Postgres Distributred Db, CockroachDB.

  1. Import from multiple Db Sources / multiple Db types.

Manage Tables

Manage Tables With DATA Table Explorer

  1. View imported tables and their details.
  2. Create/Define New Tables in EM Studio via No-Code methodology.
  3. View all details on Tables, Fields via Metadata menu section on left side.

If Required:

  1. Verify/Validate/Amend table details like Key Columm (1st Column), make amendments.
  2. Table field level Verify/Validate/Amend - Hide fields, data types, set properties, Label text.

Project - Configure

info

Note: Project Configuration are applicable to all build selection methods.

Project Settings (Defaults)

View/Update below Project Settings Before Generate Code. Default values are given below.

  • Exclude FILE|STREAM field types: ❎
  • Date Format : yyyy-MM-dd (2021-12-31)
  • Time Format : HH:mm (14:35)
  • Locale: en_US
  • Configure Tables - Enable ? : ❎
  • Table Relations - Enable ? : ❎

Security Configuration Settings

EasyManage provisions Security via one of the methods selected for code generation. And there are some methods which need to extend & customize with the help of templates.

Builder Studio - Security Configuration:

Refer to Security details here

Under Project Settings - Security Configuration :

  • Select from dropdown:

    • "None"
    • "Basic Auth [InMemoryUserDetails]"
    • "OAuth2 [Authorization Server]"
    • "OAuth2 [Authorization Server + OAuth2 Client For Web App]"
    • "OAuth2 [Authorization Server + OAuth2 Client For BFF Auth APIs]"
  • Security Setting:

    • emUser Password [ ]
    • emAdmin Password [ ]
    • RBAC - Role Vs CRUD Ops Permissions (Table)

Security Configuration Applicability

Below table shows whether the selected security configurations are applied as no-code or low-code in Generated Code. For other tech stacks please see next section below: "How to Match Security Settings With Other Frontend, Backend"

Security TypeBE Spring JavaBE Express Node.jsFE FlutterFE Next.js React
Basic Auth [InMemoryUserDetails]No-Code ✅Low-CodeNo-Code ✅Low-Code
Basic Auth [DatabaseBackedUserDetails]Low-CodeLow-Code
OAuth2 [Authorization Server]No-Code ✅
OAuth2 [Authorization Server + OAuth2 Client For Web App]No-Code ✅
OAuth2 [Authorization Server + OAuth2 Client For BFF Auth APIs]No-Code ✅
Secure With Basic Auth [InMemoryUserDetails]

Note:

  • If selected, has effect as below:
    • Backend Spring Java : Authentication and Authorization RBAC (default)
      - Applies: User passwords, Role Vs CRUD Ops customizations
    • Frontend Apps Flutter : Secure API calling
      - Enable secure API calling via Basic Auth (i.e. Frontend to Backend Spring Java REST APIs),
      - Sign In (Login Screen) captures user credentials and stores locally.
      - Sign-Out feature.
Secure With OAuth2

Note:

  • If selected, has effect as below:

    • Backend Spring Java : Authentication and Authorization RBAC via OAuth2
  • OAuth2 Configuration Options

    • "OAuth2 [Authorization Server]"
      • Only Authorization Server
    • "OAuth2 [Authorization Server + OAuth2 Client For Web App]"
      • Authorization Server and OAuth2 Client
      • With OAuth2 Flow Auth Server login, logout
      • For Web Apps like SPAs and Blazor Apps.
    • "OAuth2 [Authorization Server + OAuth2 Client For BFF Auth APIs]"
      • Authorization Server and OAuth2 Client
      • For BFF (Backend-For-Frontend) Auth APIs on Server-side - To Get token, refresh token, but without OAuth2 Flow Auth Server login, logout
      • For Mobile Apps like Flutter Apps, or Microservices container based Frontend apps using React, Angular, Flutter, or any other.
      • Where OAuth2 Client credentials are not to be exposed to Frontend side. Or Frontend and backend are in separate containers.
- Note: When Using with Versions "Spring Boot 3, Java 17"
- "OAuth2 [Authorization Server]" works fine, get token from curl and test via tool postman.
- *Known Issues For "OAuth2 [Authorization Server + OAuth2 Client For Web App]"
- Swagger Docs are not accessible.
- OAuth2 Client For Web App: Auth Flow is invoked, but unable to get Roles.
- (Gets OIDC_USER, instead of ROLE_USER)
- *Known Issues For "OAuth2 [Authorization Server + OAuth2 Client For BFF Auth APIs]"
- API /emlogin/oauth2/getToken gives Error 401 Unauthorized
Secure With Other Methods
- Note: To Implement Other Security Methods (Basic Auth Db Table based, ...), one can follow respective Backend Template.

How to Match Security Settings With Other Frontend, Backend

tip
- Implement for below via minor customization:
- Frontend Apps Flutter :
- Implement Sign Up Screen, with Low-Code Security Customization, Backend needs "Method B" (Basic Auth [DatabaseBackedUserDetails])
- Frontend Next.js React :
- Implement with low-code customization, Secure API calling
- Backend Express Node.js :
- Implement with low-code customization, Authentication Only, Basic Auth, edit `.env` file
- Customize for Authentication and Authorization RBAC via OAuth2
- Security feature Not available with Frontends React Native, Angular.

Backend Spring Java Project Configuration

Settings include:

  • Spring Boot, Java Version:

    • Spring Boot 3 - Java 17
    • Spring Boot 2 - Java 8
  • Datasource Properties:

    • Add to application.properties ? [ ]
    • spring.datasource.url [ ]
    • spring.datasource.username [ ]
    • spring.datasource.password [ ]
  • Spring Java Project Configure Flags:

    • Choose the features to include or add and whether keep them either enabled or unCommented or not.
Desc
tests UT Unit TestsInclude [ ]Enable [ ]
tests IT Integration TestsInclude [ ]Enable [ ]
Extend - ServiceExtend, Cloud Functions templatesInclude [ ]UnCommented [ ]
Data Mesh templatesInclude [ ]UnCommented [ ]
Microservices Communicate templatesInclude [ ]UnCommented [ ]
Code Coverage - JaCoCo SonarQubeInclude [ ]Enable [ ]
Redis CacheInclude [ ]Enable [ ]
Logging - ELKInclude [ ]Enable [ ]
Kafka Events templatesInclude [ ]Enable [ ]
Kafka Streams templatesInclude [ ]Enable [ ]

Other Configurations

Below other configurations can be specified on different screens.

Configure Tables & Fields

Configure Tables & Fields Via DATA Table Explorer : Use Table Level Rt side menu links for below.

  • Configure Table BuilderProp Via Table Form
    • See details below.
  • Table Relations|Joins
    • See details below.
  • Key Column
    • Verify/Set Key Column. 1st column is key column. Move position if req.
  • Fields
    • Edit/Add Fields after import
  • Field Prop - Hide
    • Hide fields from code generation

Configure Table BuilderProp Via Table Form

Global Default Form Properties - BuilderProp

View/Set Global Default Form Properties - BuilderProp. Default values are given below.

info

Global Properties override Table Level properties.

Builder Properties (Configure Tables)

  • Skip FE Frontend ? : ❎
    • Skip Code Generation for Frontend
  • Skip BE Backend ? : ❎
    • Skip Code Generation for Backend
  • Do NOT Skip BE - EM Lib Based ? : ❎
    • Do NOT Skip Code Generation for Backend BE - EM Lib Based, Can be set for Global Level or For Table Level Table Object, WPJ Level not available.
info

Below are Coming Soon! Values are captured but not implemented.

  • (Coming Soon!) Skip Code For 1) Tech or 2) Table/Screen Parts ? : Multiple Settings Chart
    • Skip Code Generation for 1) Selected Tech or 2) Checked Table/Screen Parts in Both Frontend & Backend
  • (Coming Soon!) Custom Label:

Configure Relations | Joins

Configure Tables Relations | Joins Via DATA Table Explorer : Use Table Level Rt side menu link Table Relations|Joins

  • First Setup Table Joins between 2 tables with relationship like: 1x1, 1xM, MxM.
  • Then Setup Table Relations (Multi-Table Relation) by creating it from table join starting point.
caution

Please check out Table Relation and Joining Tips and FAQs

Follow them to avoid compile errors in generated code.

Build - Selections

View currently Selected Tables via Menu option [Build - Selection]. Shows Session bookmarks and All bookmarks.

Selection Types (Ways):

  1. Select tables for build project (generate code) via -

    A. Studio Menu - Bookmarks.

    B. Or Use Generate For All Tables menu option.

Studio Menu - Bookmarks - How To ?

  1. Click Bookmark for table or folder level (Icon Link is at the end of list item).
  2. You can Use Session bookmarks or All bookmarks (cumulative) features while generating project code.
  3. Clear previous bookmarks via Studio header section menu links [ClearSend: Sess All]

Project - Explorer

Following features are planned and coming soon in builder. Please accomplish them via low-code customize post generating code. Or Hire Our No-code developer to get these done for you.

Configure Common Features and Plug-ins:

  1. Enable Security For Frontend - To Backend Calling
  2. Enable Security For Frontend App - Sign-Up, Login, User/Role based Auth - Screen/Widget Data Access

Configure Screen/Widget Flow

  1. Select Ordering Of Tables Sequence
  2. Select SideNav Entries
  3. Customize Table Names For SideNav, Forms or Display Screens

Build - Project (Generate Code)

  1. Build - Project - Generate Code via - Generate Menu options

    A. Generate For All Tables [Generate Apps APIs]

    B. Generate For BookMarks [For Session BookMarks] | [For All BookMarks]

    • Choose options

      • Exclude FILE|STREAM field types : [ ]
      • Date Format:
      • Time Format:
      • Locale:
    • Submit to Generate Code

  2. Details on Generated Project - Build Generate Number e.g. (WS_10005) and all Files generated is listed.

  3. Download Generated Project zip - From [List Builds] menu, for given number e.g. (WS_10005).

List Builds

  1. View List of previous project builds via Generarted Folders menu.
  2. Download Build (Project Bundle zip).
  3. Options available to view builds - expanded folder contents.
  4. Separate menu options available to Delete builds.

Run Build

Following features coming soon for users! Hire Our No-code developer to get these done for you.

  1. Online Run Build - Run App with Live Data available for high end Plans.

How to Run Build ? On-premise on Your Computer - DIY Steps:

  1. Download Build (Project Bundle zip). And On-premise Compile, Deploy, Run.
  2. Extract zip. Navigate to projects for Flutter App or APIs spring. Open project in IDE and Compile/Run.