Releases: avalon60/OraTAPI
OraTAPI 2.10
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 generatedlogger.append_paramcalls. -
Default filtered types now include
CLOB,NCLOB,BLOB,BFILE,LONG,LONG RAW,XMLTYPE,JSON, andSDO_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
loggerandlloggerprocedure templates. -
Column metadata now captures
data_type_owner, allowing owner-qualified Oracle object types such asMDSYS.SDO_GEOMETRYto 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_configto initialise runtime profiles in the new layout. - Users who run
migrate_configin newer releases are redirected toprofile_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
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_confignow creates runtime-owned files under~/OraTAPI.- On first run,
ora_tapinow detects missing runtime files and prints setup guidance. ora_tapi -handora_tapi --helpnow 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_configis 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_confignow bootstraps these built-in profiles:basicliquibaseloggerllogger
- 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_mgrcommands 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_configis now a compatibility wrapper that redirects users toprofile_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_tapinow warns if the active profile still uses shipped default values for:project.default_app_namecopyright.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
~/OraTAPIruntime home - profile layout and
active_config quick_configusage- staging directory behavior
- profile export/import
- legacy migration through
profile_mgr
- the
Compatibility Notes
- Existing users should run
quick_configto initialise runtime profiles in the new layout. - Users who run
migrate_configin newer releases are redirected toprofile_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
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_surfacesupport a choice of generating APIs against base table or passthrough views - Fix inconsistent
%type/%rowtypeusage 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
--changesetIDs remain based on the base table name regardless ofapi_surface(stabilise changeset naming) - Separate naming concerns: keep
table_name_lc/table_namefor base-table naming/changesets andapi_target_name_lcfor 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
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
Updates:
- 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.
-
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.
-
Fixes the issue where logger templates are always setting the procedure name to 'del'. Note you will also need to modify your
templates/packages/procedurestemplates. 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
This has 2 minor logger related bug fixes.
- Issue where 'del' was always assigned to the l_scope;
- 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
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
This is a minor update to include changes to the license, granting Oracle Corporation:
- 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). - 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
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
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.