/pretius-apex-lifecycle-aligned-sample-customers

An example APEX project aligned to the Oracle APEX Application Development Lifecycle Technical Paper

Primary LanguagePLSQLOtherNOASSERTION

About this Repository

This repository is a derivative work of the APEX Sample Customers Application designed to demonstrate the alignment to the Oracle APEX Application Development Lifecycle Technical Paper.

This repository is used by the "Oracle APEX CI/CD: Step-by-step guide aligned to the Application Lifecycle Technical Paper" blog on Hot off the Application Express. It's recommended that you read that blog.

It also includes

  • Logger v3.1.1
  • Cypress

Folder Structure

The repository structure is as follows:

Name Information
application Split APEX application as generated by apexexport2git utility
build A customised build based on get2buildzip utility
changelogs Liquibase changelogs generated by SQLcl supporting pre/post build and test only
cypress Cypress test plans in \e2e folder
data Liquibase Changelog for lookup data used by Sample Customers
database Changelogs as generated by apexexport2git utility
deploy SQL files for supporting pre/post build and test only from \changelog folder
node_modules Cypress dependencies
other_schemas sub-folders, named by schema, generated by lb genschema
readable YAML files as generated by apexexport2git utility
src PL/SQL files used by development team
workspace SQLcl export of the workspace
\install.sql Installs the APEX Split Application
\cypress.config.js Initial configuration for cypress
\package-lock.json Cypress file
\package.json Cypress file

APEX Sample Customer Application v22.1

Source: https://github.com/oracle/apex/tree/22.1/starter-apps/customers

Attribution: https://github.com/oracle/apex/graphs/contributors

The following modifications have been made

  • DB Objects scraped from DB & placed in to \src
  • Using utilities from Lifecycle Technical Paper files specifically
  • Custom version of apexexport2git to export APEX + DB + Workspace
  • Custom version of git2buildzip, which built \build\sample_customers_0000.zip (open zip file to see what's zipped)
  • Liquibase Changesets created by SQLcl 23.1 for...
    • DB objects & placed in to \database
    • Data & placed in to \data
    • Sample data reversed from login Process & added to \changelogs
  • Manual...

Logger v3.1.1

Source: https://github.com/OraOpenSource/Logger

Attribution: https://github.com/OraOpenSource/Logger/graphs/contributors

Logger is not actually used in the Sample Customer Application, however its been tested and included as a proof of concept of the other_schemas capability

The following modifications have been made

  • Provided Logger as a other_schema (logger_user) by using SQLcl genschema to convert into Liquibase Changesets
  • Initial logger-data.xml provided & included in the controller.xml

Use in other Project Repositories

\object_grant scripts are provided to grant to SAMPLE_CUSTOMERS schema used in this project. Attempts were made to find the SQLcl LB Substitution pairs to parameterise this, however there is no ability to currently set these, not even in the defaults-file.

Cypress

Source: https://github.com/cypress-io/cypress

Attribution: https://github.com/cypress-io/cypress/graphs/contributors

Cypress provided without modifications