Oracle Integration Plugin — User Guide
The Oracle Integration plugin connects Totara with an external Oracle system so that course completion data can be sent to Oracle (Push) or read from Totara by an external system (Pull). There is no interface for learners; only managers use the control panel and settings. This guide explains how to use the plugin as an administrator or manager.
Who can use it?
| Role | What they can do |
| Managers | View the Oracle Integration area (when the plugin is enabled) and open the Control Panel to see status, the export queue, and actions. Only managers with manage permission can change settings, generate tokens, requeue items, purge data, and use the API Guide. |
| External systems (e.g. Oracle) | When the Pull API is enabled, an external system can call Totara’s completion endpoints (with an API token) to pull course completion data. No Totara login is required; authentication is via the API token. |
Learners do not see or use this plugin; completions are sent or read in the background.
What does the plugin do?
- Push (Totara → Oracle): When a user completes a course, Totara adds the completion to an export queue. A scheduled task runs periodically, gets an OAuth2 token from Oracle, and sends the completion data to Oracle’s API. You configure Oracle’s base URL, token URL, client ID, and client secret in settings.
- Pull (external system → Totara): You can enable a public Pull API so that an external system (e.g. Oracle or another LMS) can request completion data from Totara. That system calls a completion endpoint with a secret API token and optional filters (e.g. since date, course, user, status). Totara returns the data in JSON.
How do I open the Control Panel?
When the plugin is enabled in settings:
- Use the main navigation: look for Oracle Integration in the menu. Click it to open the Control Panel (or go to Site administration → Plugins → Local plugins → Oracle Integration and use the link to the control panel).
- The control panel URL is usually: Your site URL + /local/oracle_integration/control_panel.php
You need the manage capability. If the plugin is disabled, the menu item and the panel may not be available.
Control Panel — Overview tab
On the Overview tab you see:
- Status overview — Whether the integration is enabled, whether the Pull API is enabled, and the configured Base URL and Token URL (for Push).
- Export queue — Counts of queue items by status (e.g. queued, sent, failed, dead). This shows how many completions are waiting to be sent to Oracle or have already been sent or failed.
- Actions — Buttons to:
- Requeue failed/dead items — Put failed or dead items back to “queued” so the task will try to send them again.
- Purge sent items older than (days) — Enter a number of days and click the button to delete from the queue items that were successfully sent and are older than that.
- Purge logs older than (days) — Delete export logs older than the given number of days.
- Quick setup — Generate new token (for the Pull API; copy and store it securely), and Enable Pull API / Disable Pull API to turn the public completion endpoint on or off.
- Backfill (if available) — Option to queue past completions (e.g. from a given date) so they are sent to Oracle. Use when you first enable Push or need to resend historical data.
After changing options or performing actions, the page may redirect and show updated status and queue counts.
Control Panel — API Guide tab
The API Guide tab gives technical details for people who integrate with the Pull API or with Oracle Push:
- Authentication — How to send the API token (e.g. X-Api-Key header) for the Pull API.
- Endpoints — The completions URL (GET) and the acknowledgement URL (POST), with parameters (e.g. since, limit, courseid, userid, status).
- cURL examples — Ready-to-paste examples for calling the completions endpoint with token and filters.
- Response shape — Description and sample of the JSON returned (e.g. items with userId, courseId, status, progress, timecompleted, user and course details).
- Push flow — How Totara queues completions, gets an OAuth2 token, and sends data to Oracle; and what Oracle is expected to provide (OAuth2 endpoint, completions endpoint, idempotency support).
Use this tab when setting up Oracle or when giving instructions to the team that will call the Pull API.
Settings (Site administration)
Go to Site administration → Plugins → Local plugins → Oracle Integration to configure:
- Enable integration — Turn the plugin on or off. When off, the menu and Push/Pull behaviour are disabled.
- Push (Totara → Oracle): Base URL, Token URL, Client ID, Client Secret, Scope, and Batch size for sending completions to Oracle.
- Pull API: Enable public Pull API, API token (or generate from the control panel), and Default days for since filter (used when the caller does not send a
since parameter).
Save after changing. For production, use HTTPS, restrict IPs if possible, and rotate credentials regularly.
User journey (overview)
flowchart LR
A[Enable in Settings] --> B[Configure Oracle URLs and OAuth2]
B --> C[Push: completions queued and sent]
A --> D[Enable Pull API and set token]
D --> E[External system calls completions endpoint]
E --> F[JSON response]
Tip: Generate the API token from the Control Panel (Quick setup) and store it securely. Give it only to the system that will call the Pull API. If the token is leaked, generate a new one and update the external system.