| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
Discuss (mail)
|
| Lines of code | 1906 |
| Technical Name |
eh_hero_base |
| License | OPL-1 |
| Website | https://www.erpheritage.com.au/ |
| Versions | 16.0 17.0 18.0 19.0 |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
Discuss (mail)
|
| Lines of code | 1906 |
| Technical Name |
eh_hero_base |
| License | OPL-1 |
| Website | https://www.erpheritage.com.au/ |
| Versions | 16.0 17.0 18.0 19.0 |
Employment Hero Connector
Universal Employment Hero integration core: connections, dual auth transport, data driven endpoint registry, encrypted OAuth2, rate limiting and API audit log.
What this module does, in one read.
Universal Employment Hero integration core: connections, dual auth transport, data driven endpoint registry, encrypted OAuth2, rate limiting and API audit log.
6 things this module gives you, with no padding.
Connection records
Each Employment Hero environment is one connection record with its own base URL, credentials and rate limit, so multiple tenants live side by side.
Multi auth transport
The HTTP transport handles the authentication each Employment Hero product needs and refreshes OAuth tokens automatically, so call sites never handle auth.
Encrypted OAuth2 tokens
OAuth2 access and refresh tokens are stored encrypted at rest; every credential is restricted to system administrators and never written to logs.
Data driven endpoints
Endpoints live in a registry as data, not code, so a new endpoint is a configuration row rather than a deployment.
Rate limiting
A built in limiter spaces requests to stay inside the published quota and backs off when the API signals pressure.
API audit log
Every request and response is recorded with status, timing and correlation id for support and compliance.
Configure once. Sync. Audit.
Create connection
Add a connection record with base URL and credentials.
Authorise
Complete OAuth2; secrets are stored encrypted.
Register endpoints
Endpoints load from the registry as data.
Observe
Every call is rate limited and written to the API audit log.
The engineering rules we hold ourselves to.
Data driven configuration.Endpoints and field mappings live as data, so most changes are configuration rows, not code deployments.
Idempotent by design.Sync runs upsert against an external id cross reference; running a job twice never duplicates a record.
Append only audit.Sync runs and API calls are recorded; the logs read cleanly into a compliance audit without preparing exports.
No silent overwrite.Conflict policies are explicit, so a record changed on both sides is resolved by a rule you chose, not by accident.
No broker required.The queue lives in the database with retries and a dead letter state, so light to medium volume needs no extra service.
Secrets stay secret.OAuth2 tokens are encrypted at rest and every credential is restricted to system administrators; none are written to logs.
Tested on real Odoo.Every module ships an automated test suite that runs on Odoo 16, 17, 18 and 19.
Original work.Every module is built from the published Employment Hero API behaviour, not derived from any other module.
Honest answers to the questions a buyer asks.
Do I need to write code to add an endpoint?
No. Endpoints are data in a registry, so a new endpoint is a configuration row.
Where are credentials stored?
OAuth2 tokens are encrypted at rest. Every credential is restricted to system administrators and is never written to logs.
Which Odoo versions are supported?
Odoo 16, 17, 18 and 19 Community. Every module ships an automated test suite that runs on all four. A module requires Enterprise only when its name says so.
What is the licence?
This module is distributed under OPL-1. The full licence text ships with the module.
Will it conflict with other modules I use?
Models, fields and security groups are namespaced under eh_hero, so conflicts with other suites are unlikely.
How do I get support?
Reach the team at info@erpheritage.com.au. Deployment, configuration and customisation work is handled by ERP Heritage.
Built by ERP Heritage
ERP Heritage builds integration and HR engineering for the Odoo Community ecosystem. Every module is original work: data driven configuration, idempotent sync, append only audit logs, and plain Python where it adds clarity. No Enterprise dependency unless the module name says otherwise.
Distributed under OPL-1.
Employment Hero Connector, for Odoo Community 16 to 19.
Original work under OPL-1. Data driven configuration, idempotent sync, append only audit. Reach the team for deployment and support.
info@erpheritage.com.auOdoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module