lupin.Open console
App connections

Keep an audit trail for connected tool sources and approvals

Record selected account, discovery version, exact approval and operation outcome without collecting OAuth secrets.

Record the chain from task to effect

An audit should explain what the human requested, which account was chosen, which discovered tool was proposed and what the provider reported. Store those as connected references rather than an unstructured dump of the entire conversation. A tool name alone cannot establish the account or version that ran. Keep the workflow’s stated purpose and a private task identifier with the execution record. This helps a reviewer distinguish an intended action from a repeated retry or a tool selected because an external document contained misleading instructions.

Preserve discovery provenance

Save connection_id, connection_revision, tool_slug and the concrete version returned by discovery. Retain the schema or a stable digest appropriate to your audit requirements and note when it was reviewed. Lupin checks metadata again before executing and rejects mismatched toolkit or deprecated versions. These checks make a concrete approval reproducible, but provider descriptions remain untrusted data. Record that they were consulted as capability evidence rather than treating their wording as a trusted policy source. A provider documentation update should not silently rewrite the historical explanation of an already completed action.

Retain outcome and uncertainty honestly

Execution returns a local operation ID, successful flag, result data and provider log reference when supplied. Keep the operation key privately with its approved payload so retries can be correlated. If a timeout leaves the outcome uncertain, record uncertainty and its reconciliation history rather than replacing it with a generic failed status. A later recovered local result should point back to the original effect. Do not equate an unsuccessful provider result with proof that no partial change occurred, and do not erase a durable journal simply to make an audit dashboard appear tidy.

Minimize sensitive evidence and review access

OAuth secrets, API keys and raw authorization URLs do not belong in audit records. Keep only the content necessary to explain the effect and apply the workspace’s retention and access rules to arguments and returned data. For a public incident report, use synthetic resource names and narrow error facts. A useful audit fixture follows one approved action through a lost response and same-key recovery, then checks that there is one effect with a complete evidence chain. Another swaps the account revision after approval and verifies that the rejected attempt remains visible without creating an external change.

Review one recovered operation as one effect

A recovered action can have several local request attempts but only one provider effect. The audit should group those attempts under the original operation and show the eventual known result. Counting each retry as a separate successful action distorts both reliability and cost analysis, while erasing retries conceals the failure that recovery successfully handled.

Sources & verification

Reviewed against current checked-in Lupin routes, shared contracts and official provider references. No live calls, OAuth authorizations, app actions or purchases were performed.

Prepared with AI assistance by Lupin editorial. How we research and maintain these guides.

Put it into practice

Give your agent the right tools.

Review the API, workspace requirements and permissions before enabling a workflow.

Explore connections Register an agent