Skip to content

Releases: avalon60/OraTAPI

OraTAPI 2.10

05 May 15:56

Choose a tag to compare

What's New

OraTAPI now supports config-driven filtering of generated logger parameter logging by datatype.

Logger datatype filtering

  • Added a new [logger] configuration setting, skip_logged_data_types, to control which Oracle datatypes are excluded from generated logger.append_param calls.

  • Default filtered types now include CLOB, NCLOB, BLOB, BFILE, LONG, LONG RAW, XMLTYPE, JSON, and SDO_GEOMETRY.

  • This helps avoid logging very large, binary, document-style, or otherwise awkward parameter values in generated logger-based APIs.

Metadata and generation updates

  • Logger filtering is implemented centrally in the TAPI generator, so it applies consistently across generated logger and llogger procedure templates.

  • Column metadata now captures data_type_owner, allowing owner-qualified Oracle object types such as MDSYS.SDO_GEOMETRY to be matched reliably.

Configuration and documentation

  • Updated shipped config samples and packaged config resources to include the new logger datatype filter setting.

  • Updated procedure template comments to reflect datatype- and PI-based logging suppression instead of the previous hard-coded CLOB wording.

  • Documented the new setting in the README.

Compatibility Notes

  • Existing users should run quick_config to initialise runtime profiles in the new layout.
  • Users who run migrate_config in newer releases are redirected to profile_mgr.

Usage

Please refer to README.md

Install Quick Start

On Linux / macOS:

python -m venv .venv
source .venv/bin/activate
pip install oratapi

On Windows PowerShell:

python -m venv .venv
..venv\Scripts\Activate.ps1
pip install oratapi

If you are new to OraTAPI, please read the OraTAPI - Oracle Table API Generator documentation.

OraTAPI Release 2.9

05 Apr 13:59

Choose a tag to compare

OraTAPI 2.9 Release Notes

This release changes OraTAPI from using install-relative resources to using a user-owned runtime home at ~/OraTAPI.

A major part of this change is support for configuration profiles. A profile is a named runtime environment stored under ~/OraTAPI/configs/<profile_name>. Each profile has its own OraTAPI.ini, templates, OraTAPI.csv, and pi_columns.csv, so you can keep separate setups for different template families or different projects.

The active profile is selected by the plain-text file ~/OraTAPI/active_config. Switching profiles only updates that file.

You are strongly advised to move to the Python wheel installation process (please see the Installation section of the README).

Runtime Home

  • Removed project_home() and path inference based on the installation directory.
  • Added runtime_home() for the user runtime root at ~/OraTAPI.
  • Added packaged resource access via importlib.resources.
  • Resource lookup now works as follows:
    • If OraTAPI is given an absolute path, it uses that exact path.
    • If OraTAPI is given a relative path, it resolves it under the active profile directory at ~/OraTAPI/configs/<active-profile>/.
    • Packaged default files are used as the source for bootstrapping runtime files, not as the normal first choice during code generation.

Runtime Bootstrap

  • quick_config now creates runtime-owned files under ~/OraTAPI.
  • On first run, ora_tapi now detects missing runtime files and prints setup guidance.
  • ora_tapi -h and ora_tapi --help now work even if runtime files have not yet been initialised.

Profiles

  • Added named profiles under ~/OraTAPI/configs/<profile_name>/.
  • Added the active profile pointer file ~/OraTAPI/active_config.
  • If active_config is missing, OraTAPI now exits with setup guidance instead of falling back to an implicit profile name.
  • If profiles already exist under ~/OraTAPI/configs, OraTAPI prompts the user to activate one using profile_mgr.
  • If no profiles exist yet, the user is prompted to run quick_config.
  • Runtime config files and templates are resolved from the active profile directory.
  • Switching profiles changes only active_config; no copying or symlinks are involved.

Quick Config Changes

  • quick_config now bootstraps these built-in profiles:
    • basic
    • liquibase
    • logger
    • llogger
  • The selected profile becomes the initial active profile.
  • Help text now matches first-run guidance and documents template categories and logger prerequisites.

Profile Manager

  • Added profile_mgr commands for:
    • listing profiles
    • showing the active profile
    • creating a profile
    • copying a profile
    • deleting a profile
    • activating a profile
    • exporting a profile to ZIP
    • importing a profile from ZIP
    • migrating a legacy install into a named profile
  • Profile names are validated and explicitly reject . and ....
  • Deleting the active profile is not allowed.

Profile Import/Export

  • Profiles can be exported and imported as ZIP archives.
  • Each ZIP archive contains exactly one profile.
  • Import validates both archive structure and profile name.
  • If the profile already exists, OraTAPI prompts before overwriting it.
  • After import, OraTAPI prompts whether to activate the imported profile.

Database Wallets

Added support for database wallets via connection manager.

Oracle Instant Client Support

Thick Client (Oracle Instant Client) is now supported

Wheel Installation Available

OraTAPI can now be installed from a Python wheel as part of its transition toward PyPI-ready distribution. This is a significant packaging change. See README.md for installation and usage details.

Legacy Migration

  • Legacy migration now imports into a named profile instead of modifying the current active profile.
  • After migration, OraTAPI prompts whether to activate the migrated profile.
  • migrate_config is now a compatibility wrapper that redirects users to profile_mgr.

Staging Directories

  • Relative staging paths are now resolved under ~/OraTAPI, not under the installation directory and not inside a profile directory.
  • Default staging locations are now effectively:
    • ~/OraTAPI/staging
    • ~/OraTAPI/ut_staging
  • OraTAPI now creates missing staging root directories automatically.
  • UT staging no longer shares the main staging directory by default.

Runtime Warnings

  • ora_tapi now warns if the active profile still uses shipped default values for:
    • project.default_app_name
    • copyright.company_name
  • The warning tells users to customise those values before generating code.

##Bug fixes

  • Fix swapped config sections for TAPI and UT package postfixes

Documentation

  • Updated the README to explain:
    • the ~/OraTAPI runtime home
    • profile layout and active_config
    • quick_config usage
    • staging directory behavior
    • profile export/import
    • legacy migration through profile_mgr

Compatibility Notes

  • Existing users should run quick_config to initialise runtime profiles in the new layout.
  • Users who run migrate_config in newer releases are redirected to profile_mgr.

Usage

Please refer to README.md

Install Quick Start

On Linux / macOS:
python -m venv .venv
source .venv/bin/activate
pip install oratapi

On Windows PowerShell:
python -m venv .venv
..venv\Scripts\Activate.ps1
pip install oratapi

If you are new to OraTAPI, please read the OraTAPI - Oracle Table API Generator documentation.

OraTAPI 1.12.0

30 Mar 14:15

Choose a tag to compare

The following improvements are included:

  • We can now generate TAPIs based on view references. This is controlled by the api_controls.api_surface property of OraTAPI.ini.
  • Added support for identity columns.

Details:

  • Add api_surface support a choice of generating APIs against base table or passthrough views
  • Fix inconsistent %type/%rowtype usage in merge (mrg) signatures (ensure surface object is used consistently)
  • Fix procedure-body DML targeting: insert/update/delete/select/merge now reference the configured API surface (view/table) instead of always the base table
  • Preserve identity/PK metadata behaviour from base table while allowing surface-based code generation
  • Ensure Liquibase --changeset IDs remain based on the base table name regardless of api_surface (stabilise changeset naming)
  • Separate naming concerns: keep table_name_lc/table_name for base-table naming/changesets and api_target_name_lc for DML/type surfaces
  • Fix quick_config.py plus others (file_system_utils.py -> fsutils.py)
  • Fixes to README.md
  • Added -C (view credentials oprion to conn_mgr.py)
  • Experimental support for wallet connections.
  • Improve connection errors and generation logging

You can download and install the latest update using:

bin/update_ora_tapi.sh -t /tmp (macOS/Linux)
bin\update_ora_tapi -t <staging_path>(Windows)
Alternatively, if you are on an earlier release, or don't want to install a later update, download the oratapi-1.11.2.tar.gz file, from the Assets link below, to install this version.

If you are new to OraTAPI, please read the OraTAPI - Oracle Table API Generator documentation.

See Performing Upgrades, if you already have OraTAPI installed.

OraTAPI v1.6.4

10 Sep 17:01

Choose a tag to compare

This fixes the automanaged columns issue, where p_row signature types, tried to update the "created by"/"created on" columns. Typically this might results in a not null constraint violation.

You can download and install the latest update using:

bin/update_ora_tapi.sh -t /tmp (macOS/Linux)
bin\update_ora_tapi -t <staging_path>(Windows)
Alternatively, if you are on an earlier release, or don't want to install a later update, download the oratapi-1.5.7.tar.gz file to install this version.

If you are new to OraTAPI, please read the OraTAPI - Oracle Table API Generator documentation.

OraTAPI 1.6.2

20 Aug 19:15

Choose a tag to compare

Updates:

  1. Added thick client support. Connection via LDAP or Wallets is only supported via thick client. To configure thick client, either:
  • Download and place the basic Oracle Instant Client in an oracle_client folder, in the root OraTAPI directory.
  • Set and export the ORACLE_IC_HOME shell variable, to point to the Instant Client location.
  1. Fix the issue where the primary key column(s) were not the first columns in the table. This broke the generation of the signature of delete APIs, causing a leading comma on the first parameter specification.

  2. Fixes the issue where logger templates are always setting the procedure name to 'del'. Note you will also need to modify your templates/packages/procedures templates. Previously each template had a unique substitution placeholder for the procedure, e.g. %insert_procname%. For older formats, you need to edit the files and change this to %procname%.

You can download and install the latest update using:

bin/update_ora_tapi.sh -t /tmp (macOS/Linux)
bin\update_ora_tapi -t <staging_path>(Windows)
Alternatively, if you are on an earlier release, or don't want to install a later update, download the oratapi-1.5.7.tar.gz file to install this version.

If you are new to OraTAPI, please read the OraTAPI - Oracle Table API Generator documentation.

See Performing Upgrades, if you already have OraTAPI installed.

Version OraTAPI v1.5.9

19 Aug 09:38

Choose a tag to compare

This has 2 minor logger related bug fixes.

  1. Issue where 'del' was always assigned to the l_scope;
  2. Duplicate updates in the logger elated upsert templates.

In respect of 2, after applying the update, you won't see a change. This only updates the sample templates which are used to initialise OraTAPI. If you haven't modified the templates you can always use:

cd <path-to-installation-folder>
./bin/quick_config.sh -t liquibase --force

However, if you have modified the templates, you will need to manually edit the upsert.tpt template, located under: OraTAPI/resources/templates/packages/procedures. If affected by this issue, you will see 2 consecutive update statements. Simply remove one of them.

You can download and install the latest update using:

bin/update_ora_tapi.sh -t /tmp (macOS/Linux)
bin\update_ora_tapi -t <staging_path>(Windows)
Alternatively, if you are on an earlier release, or don't want to install a later update, download the oratapi-1.5.7.tar.gz file to install this version.

If you are new to OraTAPI, please read the OraTAPI - Oracle Table API Generator documentation.

See Performing Upgrades, if you already have OraTAPI installed.

OraTAPI 1.5.7

27 Apr 17:57

Choose a tag to compare

This is a minor update.

Fix the issue where the primary key column(s) were not the first columns in the table. This broke the generation of the signature of delete APIs, causing a leading comma on the first parameter specification.

You can download and install the latest update using:

bin/update_ora_tapi.sh -t /tmp (macOS/Linux)
bin\update_ora_tapi -t <staging_path>(Windows)
Alternatively, if you are on an earlier release, or don't want to install a later update, download the oratapi-1.5.7.tar.gz file to install this version.

If you are new to OraTAPI, please read the OraTAPI - Oracle Table API Generator documentation.

See Performing Upgrades, if you already have OraTAPI installed.

OraTAPI 1.5.6

05 Apr 16:13

Choose a tag to compare

This is a minor update to include changes to the license, granting Oracle Corporation:

  1. Use, copy, modify, and fork the OraTAPI codebase internally within Oracle, without the need to comply with the terms of the open source license under which it is
    publicly released (currently MIT).
  2. Redistribute internally across Oracle systems, infrastructure, and repositories, without needing to retain open source attribution or license notices.

See ORACLE_INTERNAL_LICENSE.txt

If you are running 1.4.24 or later, you can download and install the latest update using:

bin/update_ora_tapi.sh -t /tmp (macOS/Linux)
bin\update_ora_tapi -t <staging_path>(Windows)
Alternatively, if you are on an earlier release, or don't want to install a later update, download the oratapi-1.5.6.tar.gz file to install this version.

If you are new to OraTAPI, please read the OraTAPI - Oracle Table API Generator documentation.

See Performing Upgrades, if you already have OraTAPI installed.

OraTAPI 1.5.3

12 Mar 13:12

Choose a tag to compare

This is a macOS install fix/update:

This fixes a bug with Python11/macOS/Homebrew. This resulted in a setup.sh an error:

Error: This environment is externally managed
╰─> To install Python packages system-wide, try brew install
   xyz, where xyz is the package you are trying to
   install...

If you are running 1.4.24 or later, you can download and install the latest update using:

bin/update_ora_tapi.sh -t /tmp (macOS/Linux)
bin\update_ora_tapi -t <staging_path>(Windows)
Alternatively, if you are on an earlier release, or don't want to install a later update, download the oratapi-1.5.3.tar.gz file to install this version.

If you are new to OraTAPI, please read the OraTAPI - Oracle Table API Generator documentation.

See Performing Upgrades, if you already have OraTAPI installed.

OraTAPI 1.5.2

07 Mar 14:23

Choose a tag to compare

This is a minor update:

  • Fixes a template bug which impacted logger templates. This causes the delete procedure to be identified as the unit procedure for all types of APIs.

If you are running 1.4.24 or later, you can download and install the latest update using:

bin/update_ora_tapi.sh -t /tmp (macOS/Linux)
bin\update_ora_tapi -t <staging_path>(Windows)
Alternatively, if you are on an earlier release, or don't want to install a later update, download the oratapi-1.5.2.tar.gz file to install this version.

If you are new to OraTAPI, please read the OraTAPI - Oracle Table API Generator documentation.

See Performing Upgrades, if you already have OraTAPI installed.