Using Builder Studio
Following sections help you to understand & use Builder Studio. Follow these steps for a successful app build.
Connect - Import
- 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.
- Import from multiple Db Sources / multiple Db types.
Manage Tables
Manage Tables With DATA Table Explorer
- View imported tables and their details.
- Create/Define New Tables in EM Studio via No-Code methodology.
- View all details on Tables, Fields via Metadata menu section on left side.
If Required:
- Verify/Validate/Amend table details like Key Columm (1st Column), make amendments.
- Table field level Verify/Validate/Amend - Hide fields, data types, set properties, Label text.
Project - Configure
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 Type | BE Spring Java | BE Express Node.js | FE Flutter | FE Next.js React |
---|---|---|---|---|
Basic Auth [InMemoryUserDetails] | No-Code ✅ | Low-Code | No-Code ✅ | Low-Code |
Basic Auth [DatabaseBackedUserDetails] | Low-Code | Low-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.
- Backend Spring Java : Authentication and Authorization RBAC (default)
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.
- "OAuth2 [Authorization Server]"
- 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
- 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
Database Type:
- PostgreSQL Ver 8.2 or newer
- MySQL Ver 8.0, 5.7 and 5.6
- MySQL Ver 5.0, 5.5
- Oracle Ver 21c, 19c, 18c, and 12.2
- MS SQL Server Ver 2019, 2017, 2016, 2014, 2012
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 Tests, IT Integration Tests | Include [] | Enable [] |
tests API Tests - TestNG, WebClient | Include [] | Enable [] |
Extend - ServiceExtend, Cloud Functions templates | Include [] | UnCommented [] |
Data Mesh templates | Include [] | UnCommented [] |
Microservices Communicate templates | Include [] | UnCommented [] |
Code Coverage - JaCoCo SonarQube | Include [] | Enable [] |
Redis Cache | Include [] | Enable [] |
Logging - ELK | Include [] | Enable [] |
Kafka Events templates | Include [] | Enable [] |
Kafka Streams templates | Include [] | 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.
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.
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.
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):
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 ?
- Click Bookmark for table or folder level (Icon Link is at the end of list item).
- You can Use Session bookmarks or All bookmarks (cumulative) features while generating project code.
- 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:
- Enable Security For Frontend - To Backend Calling
- Enable Security For Frontend App - Sign-Up, Login, User/Role based Auth - Screen/Widget Data Access
Configure Screen/Widget Flow
- Select Ordering Of Tables Sequence
- Select SideNav Entries
- Customize Table Names For SideNav, Forms or Display Screens
Build - Project (Generate Code)
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
Details on Generated Project - Build Generate Number e.g. (WS_10005) and all Files generated is listed.
Download Generated Project zip - From [List Builds] menu, for given number e.g. (WS_10005).
List Builds
- View List of previous project builds via Generarted Folders menu.
- Download Build (Project Bundle zip).
- Options available to view builds - expanded folder contents.
- 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.
- Online Run Build - Run App with Live Data available for high end Plans.
How to Run Build ? On-premise on Your Computer - DIY Steps:
- Download Build (Project Bundle zip). And On-premise Compile, Deploy, Run.
- Extract zip. Navigate to projects for Flutter App or APIs spring. Open project in IDE and Compile/Run.