Omni API
Simple REST API wrapper for the Omni infra-structure.
Configuration
| Name | Type | Description |
|---|---|---|
| OMNI_BASE_URL | str |
The base URL that is going to be used for API connections (defaults to http://localhost:8080/mvc/). |
| OMNI_OPEN_URL | str |
The open URL for the Omni connection (defaults to OMNI_BASE_URL). |
| OMNI_PREFIX | str |
The default prefix to be used for API requests (defaults to adm/). |
| OMNI_ID | str |
The client id to be used for API connections (defaults to None). |
| OMNI_SECRET | str |
The secret key to be used for API connections (defaults to None). |
| OMNI_REDIRECT_URL | str |
The URL to be used for redirection OAuth based workflow (defaults to base,base.user,base.admin,foundation.store.list). |
| OMNI_USERNAME | str |
The username to be used on direct workflow (defaults to None). |
| OMNI_PASSWORD | str |
The password to be used on direct workflow (defaults to None). |
Usage
Typical usage of the Omni client implies the providing of the username and the password inside the target omni instance (Direct Mode).
api = omni.Api(
base_url = "http://frontdoorhq.com",
username = "YOUR_USERNAME",
password = "YOUR_PASSWORD"
)
Alternatively it's possible to use the api throught an OAuth base approach using the provided client id and secret values.
api = omni.Api(
base_url = "http://frontdoorhq.com",
client_id = "YOUR_OAUTH_ID",
client_secret = "YOUR_OAUTH_SECRET"
)
For these type of handling the OAuthAccessError exception must be handled and then the user must be redirect to the url provided by api.oauth_autorize method call.
Running then the api.oauth_access call with the returned code from the server side that should be used to redeem the access_token required for session authentication.
Documentation
See the documentation index.
Examples
Examples are located here.
Testing
The unit test suite runs using pytest and requires Python 3.10+, unlike the library itself the tests make full use of the provided type stubs (the library implementation remains Python 2.7+ compatible).
pip install pytest
pytest
The live integration tests run against a local Omni instance and are skipped unless the OMNI_TEST_LIVE environment variable is set, together with the usual OMNI_BASE_URL, OMNI_USERNAME and OMNI_PASSWORD configuration.
Such an instance can be provisioned with demo data using the hivesolutions/omni docker image (private, registry credentials required), the loader seeds the database with the demo dataset (including the root / Root@12345 credentials) and the server is then started, note that with COLONY_PREFIX=/mvc the client base URL should not include the /mvc prefix:
docker run -d --name omni -p 8080:8080 --entrypoint sh \
-e RUN_MODE=development \
-e COLONY_CONFIG_FILE=config/python/singleton.py \
-e DB_ENGINE=sqlite \
-e DB_FILE=ci.db \
-e RESET_DB=1 \
-e AT_TEST_MODE=1 \
hivesolutions/omni:latest \
-c "cd /omni && python3 scripts/load_demo_data.py && exec colony_wsgi"
OMNI_TEST_LIVE=1 OMNI_BASE_URL=http://localhost:8080/ OMNI_USERNAME=root OMNI_PASSWORD=Root@12345 pytest
The CI pipeline runs the same provisioning in the Build Live job whenever the Docker Hub credentials are available as repository secrets (DOCKERHUB_USERNAME and DOCKERHUB_TOKEN), skipping the live run otherwise.
Type checking of the stubs, examples and tests is done using Pyright:
pip install pyright
pyright src/omni/*.pyi src/examples src/omni/test
License
Omni API is currently licensed under the Apache License, Version 2.0.
Build Automation
Metadata
Release files for omni-api 0.14.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| omni_api-0.14.0.tar.gz | 37.6 kB | Without provenance | Details for omni_api-0.14.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| omni_api-0.14.0-py2.py3-none-any.whl | Python 2, Python 3 | none | any | Details for omni_api-0.14.0-py2.py3-none-any.whl |
Total release size: 142.4 kB
Release files / omni_api-0.14.0.tar.gz
| Download URL | omni_api-0.14.0.tar.gz |
|---|---|
| Size | 37.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
50740e93e288fc1c688ad3025c873562f2fa8041b3ee5f0c3a0a7b9ba88e942a
|
|
BLAKE2b-256 checksum How to use checksums |
50fbc4ae4260cd9f17d1def549cd4fbfa3ebdb90ca979be6a652162f7bac42a2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.10
|
Release files / omni_api-0.14.0-py2.py3-none-any.whl
| Download URL | omni_api-0.14.0-py2.py3-none-any.whl |
|---|---|
| Size | 104.8 kB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
49a493f98b3ebeed735071b335619132a01b80427ebdc7993071f4e34edc11db
|
|
BLAKE2b-256 checksum How to use checksums |
c131c0882a24baa6875eee8eb4935e20c8f0b8b3e7bf4e5da79a796b92fbe6eb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.10
|
Security for omni-api 0.14.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.