Audit Setup logo

Audit Setup

Organization
oracle
Audit Setup

Provides Oracle Fusion audit setup guidance, API-based business-object and individual-field control, and explicit manual steps for UI-only audit policy tasks.

Overview

Publisheroracle
RepositoryFusion-Setup-Configuration-Registry
Skill nameAudit Setup
Stars
112
Forks
26
Bundled files
1
LicenseUPL-1.0
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 1 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by oracle on GitHub. Read the source before you install it.

Installation

Install the Audit Setup AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/oracle/Fusion-Setup-Configuration-Registry/tree/main/core/fusion-api/audit-setup
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/oracle/Fusion-Setup-Configuration-Registry.git /tmp/Fusion-Setup-Configuration-Registry
mkdir -p .claude/skills
cp -r /tmp/Fusion-Setup-Configuration-Registry/core/fusion-api/audit-setup .claude/skills/oracle-audit-setup
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Audit Setup in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Audit Setup on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Audit Setup is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Audit Setup

Purpose

Provides a reusable Oracle Fusion audit setup utility for enabling, disabling, checking, and interrogating audit setup before and during implementations.

Capability Boundaries

The three audit-policy controls have distinct support boundaries. Do not substitute one for another:

RequirementSupported?Route
Enable or disable auditing for Oracle Fusion Applications overallManual onlyAudit Setup UI; FA_AUDIT_LEVEL cannot be updated through REST
Enable or disable auditing for a business objectYesAudit Setup update-auditstatus
Enable or disable named fields on a business objectYesAudit Setup update-auditstatus with attributesList
Retrieve the list of fields currently audit-enabled on a business objectManual onlyAudit Setup UI; do not infer it from REST responses

get-auditsetup returns the available/auditable field inventory; it does not expose each field's current audit-enabled flag. The known enhancement request for that API gap is ER 34232448. Ask the implementor to open Manage Audit Policies in Fusion and inspect the object attributes when an existing selection must be verified. A successful update-auditstatus response is evidence only for the submitted update; it is not a general field-status read endpoint.

REST API Contract

This skill uses the Oracle Fusion Audit Setup REST API:

  • Get product audit levels: POST /fscmRestApi/fndAuditRESTService/audittrail/get-auditlevel
  • Set product audit levels: POST /fscmRestApi/fndAuditRESTService/audittrail/set-auditlevel
  • Get auditable objects for a product: POST /fscmRestApi/fndAuditRESTService/audittrail/get-auditsetup
  • Check object audit status: POST /fscmRestApi/fndAuditRESTService/audittrail/check-auditstatus
  • Update object audit status: POST /fscmRestApi/fndAuditRESTService/audittrail/update-auditstatus
  • Get audit history: POST /fscmRestApi/fndAuditRESTService/audittrail/getaudithistory

Overall Fusion Applications auditing is not one of the Audit Setup REST API's product-level values (ODI, ESS, MDS, SOA, ADF, or OPSS). It is the FA_AUDIT_LEVEL setting in the Audit Setup UI. Although it is represented as a site-level profile option, Fusion intentionally rejects REST updates for this profile with FND-4681. Do not call the Profile Options REST API for this operation.

The documented product/domain codes are:

ProductDomain
ODIOracle Data Integrator
ESSEnterprise Scheduler Service
MDSMetadata Services
SOASOA infrastructure
ADFApplication Development Framework
OPSSOracle Platform Security Services

Product-level audit levels are High, Medium, Low, and None.

Audit History Query Shapes

getaudithistory has two supported query shapes; do not apply the business-object requirement from one to the other.

Audit scopeRequired request fieldsOptional narrowing fieldsDiscovery route
Oracle Fusion Applications business-object historyfromDate, toDate, product, businessObjectTypeuser, event type, child objects, attributes, impersonator, time zone, paginationUse get-auditsetup with a known functional application to obtain the exact business-object type.
Infrastructure-domain history (ESS, MDS, OPSS, or SOA)fromDate, toDate, productuser, event type, attributes, impersonator, time zone, paginationQuery the named domain directly. Do not call get-auditsetup with a domain code.

For the infrastructure-domain shape, omit businessObjectType. Fusion can return domain-specific records such as SOA rule, task, sandbox-name, and operation changes without a business object. A get-auditsetup call is only for functional application names; OPSS, ESS, MDS, and SOA are audit domains, not application names for that API.

Functional application/product names used by get-setup are maintained in:

text
knowledge/fusion-audit-metadata/fnd-audit-webapp-applications.json

Project Scripts

Run from the repository root.

List known product/domain codes:

bash
python3 core/fusion-api/audit-setup/scripts/audit_setup.py domains

List known functional application/product names for get-setup:

bash
python3 core/fusion-api/audit-setup/scripts/audit_setup.py applications

Get current levels:

bash
python3 core/fusion-api/audit-setup/scripts/audit_setup.py get-level \
  --product MDS \
  --token-cache auto

Set a product-level audit level:

bash
python3 core/fusion-api/audit-setup/scripts/audit_setup.py set-level \
  --product MDS \
  --audit-level Low \
  --token-cache auto

Disable product-level audit:

bash
python3 core/fusion-api/audit-setup/scripts/audit_setup.py set-level \
  --product MDS \
  --audit-level None \
  --token-cache auto

To change overall Fusion Applications auditing, instruct the implementor to perform this manual task in Fusion:

  1. Open Setup and Maintenance and search for Manage Audit Policies.
  2. Select Oracle Fusion Applications.
  3. Change the audit level to Auditing or None.
  4. Save the change and confirm the displayed value in the UI.

Do not attempt a REST fallback or report a profile-option read as proof that the UI-level policy changed.

Interrogate auditable objects for a product:

bash
python3 core/fusion-api/audit-setup/scripts/audit_setup.py get-setup \
  --application Receivables \
  --token-cache auto

Get audit history for a specific object:

bash
python3 core/fusion-api/audit-setup/scripts/audit_setup.py get-history \
  --from-date 2026-04-17 \
  --to-date 2026-04-18 \
  --product Receivables \
  --business-object-type oracle.apps.cdm.foundation.parties.customerAccountService.view.CustomerAccountVO \
  --include-child-objects false \
  --include-attributes true \
  --attribute-detail-mode true \
  --token-cache auto

Get infrastructure-domain audit history without a business-object type:

bash
python3 core/fusion-api/audit-setup/scripts/audit_setup.py get-history \
  --from-date 2026-09-01 \
  --to-date 2026-09-09 \
  --product SOA \
  --token-cache auto

Enable specific fields while retaining object-level auditing. Use a complete, reviewed payload when changing fields because there is no API to retrieve the current set of audit-enabled fields first:

bash
python3 core/fusion-api/audit-setup/scripts/audit_setup.py update-status \
  --business-object oracle.apps.cdm.foundation.parties.organizationService.view.OrganizationDVO \
  --parent-business-object oracle.apps.cdm.foundation.parties.organizationService.view.OrganizationDVO \
  --enable ON \
  --attribute DUNSNumberC=true \
  --attribute StockSymbol=true \
  --token-cache auto

This produces the update-auditstatus field contract below (boolean values are intentional):

json
{
  "auditData": [
    {
      "businessObject": "oracle.apps.cdm.foundation.parties.organizationService.view.OrganizationDVO",
      "parentBusinessObject": "oracle.apps.cdm.foundation.parties.organizationService.view.OrganizationDVO",
      "enable": true,
      "attributesList": [
        { "attributeName": "DUNSNumberC", "isAuditable": true },
        { "attributeName": "StockSymbol", "isAuditable": true }
      ]
    }
  ]
}

To disable an individual field, submit that field with --attribute <attributeName>=false. The command serializes --enable ON|OFF as Boolean true|false, as required by the REST payload. Do not treat --enable OFF as a field-level disable: it changes the business-object audit state.

Inputs

  • fusion_environment_context
  • audit_setup_request
  • execution_options

Script-level inputs:

  • domains: prints the supported product/domain code catalog for product-level audit levels.
  • applications: prints the known functional application/product names used by get-setup.
  • get-level --product PRODUCT: retrieves audit level for one or more products. Defaults to all known products when no --product is supplied.
  • set-level --product PRODUCT --audit-level LEVEL: sets product-level audit.
  • get-setup --application APPLICATION: retrieves auditable object metadata for a functional application such as Receivables.
  • get-history: retrieves either functional application business-object history (supply --business-object-type) or ESS, MDS, OPSS, or SOA infrastructure-domain history (omit it). Both forms support the documented user, event, attribute-detail, impersonator, time-zone, and pagination filters.
  • check-status --business-object BO --parent-business-object PARENT: checks business-object audit state.
  • update-status --business-object BO --parent-business-object PARENT --enable ON|OFF: changes business-object audit state, serializing the value as a JSON Boolean. Add one or more --attribute ATTRIBUTE=true|false options to set individual field audit status in the same request.
  • --body-key auditData|auditDate: selects the array key for endpoints that carry audit setup rows. The default is auditData because working examples use that key, while the 26B OpenAPI metadata uses auditDate.
  • --payload or --payload-file: sends an exact JSON payload for advanced cases.
  • --application-metadata: optional override for the local application/product catalog used by applications and get-setup diagnostics.
  • --token-cache, --force-login, --auth-code, --redirect-url, and browser flags passed to the shared OAuth flow when login is required.

Outputs

  • execution_result
  • diagnostics
  • audit_summary

Script-level outputs:

  • Structured JSON containing the endpoint called, request summary, raw Fusion response, normalized auditData, and target environment summary.
  • Exit code 0: Fusion returned a successful HTTP response and no clear FAIL status.
  • Exit code 4: Fusion returned an unsuccessful audit setup status in the response body.

Implementation Notes

Use this utility instead of duplicating Audit Setup REST calls in pillar skills. For implementation start-up, prefer:

  1. domains to confirm available domains.
  2. applications to confirm known functional application/product names.
  3. get-level to capture current levels.
  4. For a functional application history request, use get-setup for the target application to inspect available objects. For ESS, MDS, OPSS, or SOA history, query get-history with the domain code and no business object instead; those codes are not valid get-setup application values.
  5. For the overall Fusion Applications switch, instruct the implementor to perform and confirm the UI task; do not call a Profile Options REST endpoint.
  6. When the current audit-enabled field list is required, instruct the implementor to verify it in the Audit Setup UI; do not infer it from get-setup, check-status, or audit history.
  7. set-level or update-status only after the user explicitly names what to audit and the desired level/state. For fields, require the exact field list and desired isAuditable value; do not claim or attempt to discover the currently enabled field list.

Never print access tokens, refresh tokens, client secrets, token-cache contents, or Authorization headers.

The implementation may send authenticated REST requests only to HTTPS hosts configured by restBaseUrl or *_restBaseUrl in core/auth/fusionEnv.properties; it rejects all other hosts and redirects to them.

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Audit Setup AI skill do?

Provides Oracle Fusion audit setup guidance, API-based business-object and individual-field control, and explicit manual steps for UI-only audit policy tasks.

Why use Audit Setup on TypingMind?

Because you install it once and use it with any model. Audit Setup is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Audit Setup in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/oracle/Fusion-Setup-Configuration-Registry/tree/main/core/fusion-api/audit-setup. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Audit Setup?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Audit Setup?

As many as you like. As long as a model supports skills, you can use Audit Setup with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Audit Setup AI skill free?

Yes. It is published on GitHub by oracle under the UPL-1.0 license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇