MetaSync for Confluence — Documentation
Living Salesforce documentation in Confluence

← Documentation home

Privacy Policy

Last Updated: October 8, 2026

Overview

MetaSync for Confluence is made and operated by MaaShive, a registered business in New South Wales, Australia (“MaaShive”, “we”, “us”). It is a one-way, read-only Salesforce-to-Confluence metadata documentation connector. It reads configuration and access metadata from your Salesforce org and publishes it as documentation pages in your Confluence site. This policy explains what data the app accesses, what it stores, where it is stored, how long it is kept, who can see it, and how it is protected.

MetaSync never writes back to Salesforce and never reads your customer business records (accounts, contacts, opportunities, cases, attachments, etc.). The one exception is Custom Metadata Type records, which are configuration rows; MetaSync reads and publishes their values — see section 1.6.

Roles Under Data Protection Law

A Data Processing Addendum (DPA) is available on request from the contact address at the end of this policy.

Frameworks this policy is written against

MetaSync is built to support your obligations under the EU/UK GDPR, the Australian Privacy Act 1988 (APP 11 — security of personal information), and the California Consumer Privacy Act (CCPA/CPRA). Because MetaSync processes configuration metadata rather than customer business records, the personal data in scope is limited to the administrative data listed in section 1.3.

MetaSync’s governance reports are designed to produce evidence useful for SOC 2, ISO 27001, SOX and APRA CPS 234 access reviews. That is an evidence-gathering aid: MetaSync is not itself certified against those frameworks, and using it does not by itself make your org compliant.


1. What Data MetaSync Accesses

MetaSync reads from Salesforce using the Metadata API, Tooling API and REST API at pinned API version 67.0, over the OAuth api scope, as the integration user you connect.

1.1 Configuration metadata

MetaSync documents 41 Salesforce metadata types:

Objects · Fields · Record Types · Validation Rules · Flows · Apex Classes · Apex Triggers · Profiles · Permission Sets · Permission Set Groups · Muting Permission Sets · Roles · Reports · Report Types · Dashboards · Workflow Rules · Approval Processes · Assignment Rules · Sharing Rules · Custom Labels · Custom Settings · Custom Metadata Types · Global Value Sets · Field Sets · List Views · Layouts · Lightning Pages · Quick Actions · Custom Tabs · Custom Applications · Auth Providers · Connected Apps · External Client Apps · Named Credentials · Remote Site Settings · Queues · Public Groups · Email Templates · Lightning Web Components · Aura Components · Setup Audit Trail.

Most of these can be enabled or disabled individually on the Metadata types tab in the MetaSync admin. Two are published as part of the sync and have no toggle of their own: Custom Settings and Global Value Sets. Setup Audit Trail has no toggle under its own name either, but it is not untoggleable: it is controlled by the Change Timeline toggle, which is the only thing that reads it. Turning Change Timeline off stops MetaSync reading the Setup Audit Trail.

Alongside them it publishes 4 further documentation pages: Data Dictionary, Coverage Score and Data Security, which aggregate the types above rather than mapping to a Salesforce type; and Change Timeline, which does map to one — it is the published form of the Setup Audit Trail type named in the list above, not an aggregate of the others. All four appear as toggles on the Metadata types tab.

The Metadata types tab therefore shows 43 toggles: 39 Salesforce metadata keys plus those 4 documentation pages. The 43 and the 41 count different things and neither is a typo. Of the 41 documented types, 38 have a key of their own; the 39th key (Flow Definitions) drives inactive-flow detection rather than publishing pages of its own. The three types without a key of their own are Custom Settings and Global Value Sets, which have no toggle at all, and Setup Audit Trail, which is toggled by the Change Timeline page named below.

Installed Packages is not a page type and has no scope toggle — it is one of the governance reports, built only when you build a governance snapshot.

The underlying Salesforce entities read include CustomObject, CustomField, EntityDefinition, FieldDefinition, ValidationRule, RecordType, Flow, FlowDefinition, ApexClass, ApexTrigger, ApexCodeCoverageAggregate, Profile, PermissionSet, PermissionSetGroup, MutingPermissionSet, ObjectPermissions, FieldPermissions, Report, ReportType, Dashboard, Folder, WorkflowRule, ProcessDefinition, AssignmentRule, SharingRules, Layout, FlexiPage, QuickAction, CustomTab, CustomApplication, FieldSet, ListView, GlobalValueSet, ExternalString (custom labels), AuthProvider, ConnectedApplication, ExternalClientApplication, ExtlClntAppOauthSettings, ExtlClntAppGlobalOauthSettings, ExtlClntAppOauthConfigurablePolicies, NamedCredential, RemoteSiteSetting, EmailTemplate, Group, GroupMember, QueueSobject, AuraDefinitionBundle, LightningComponentBundle, InstalledSubscriberPackage, MetadataComponentDependency (for change-impact analysis), ApexCodeCoverage, FlowDefinitionView, DashboardComponent, ExternalStringLocalization (label translations), ProfileLayout, AuraDefinition, LightningComponentResource and Organization, together with the REST describe resources (describeGlobal, object describes, list-view describes and report describes — a report’s definition; MetaSync never runs a report).

1.2 Source code and template content (please read)

To document automation and UI components fully, MetaSync reads and publishes into Confluence the following content from your org:

Individual files larger than 6,000 characters are truncated, and the page states that it has truncated them. If your Apex, components, email templates or field descriptions contain confidential logic or personal data, that content will appear on the Confluence pages MetaSync creates. Scope the integration user’s permissions and choose the destination space accordingly.

1.3 Administrative personal data

To produce access-review and governance artifacts, MetaSync reads a limited set of administrative personal data about the users and administrators of your Salesforce org. This is configuration and access metadata about who can do what — it is not customer business data:

This data is used solely to compute and document effective access (the User Access Matrix and FLS/PII reports), the governance reports listed in section 5, and change history. It is persisted as part of access and governance snapshots so that point-in-time reports can be reproduced.

MetaSync also reads and stores Confluence account identifiers for users and group names you explicitly add under Additional access, together with the role you assign each nominated user, so that non-administrators you nominate can view reports — or, where you assign them the App admin role, configure and operate MetaSync.

1.4 What MetaSync does NOT access

1.5 Confluence

Within the site where MetaSync is installed, the app:

1.6 Custom Metadata Type records

There is one place where MetaSync reads rows rather than definitions, and it is stated here rather than left to be discovered. MetaSync runs a SELECT over the records of every Custom Metadata Type (__mdt) in your sync scope and publishes their values onto the type’s Confluence page.

The reason is that Custom Metadata Types are Salesforce’s mechanism for deployable configuration — they move between orgs in change sets and Metadata API deployments exactly as layouts and validation rules do, and admins use them to hold business rules such as tax rates, approval thresholds, routing tables and feature switches. Documenting those rules is a large part of documenting the org. That is a judgement, and you are entitled to disagree with it.

What lands on the page is bounded: at most 100 types, 50 records per type, 15 custom columns per record, and each cell truncated at 100 characters. Bounded is not redacted — a value shorter than 100 characters arrives complete, so an API key, integration endpoint or token held in Custom Metadata will be published in full onto a Confluence page whose audience is usually wider than your Salesforce org.

No object permission governs this read. Custom Metadata Types carry zero ObjectPermissions rows, so there is no permission to withhold from the integration user and removing object permissions does not stop it. The control is the metadata scope: switch off Custom Metadata Types in the Schema group on the Metadata types tab and MetaSync stops reading and publishing these records entirely, while continuing to document everything else. Custom Settings are unaffected — MetaSync reads only their schema, never their values.


2. What MetaSync Stores

MetaSync stores data durably in Atlassian Forge storage (storage:app), scoped to your Confluence site. This is persistent storage that survives restarts; it is not in-memory or temporary.

Stored data Notes Retention
Salesforce credentials: the External Client App’s consumer key and secret, plus the OAuth refresh token (Web Server Flow) or the Run As username (Client Credentials Flow); and a short-lived cached access token Forge encrypted secrets (storage.setSecret); excluded from exports; never logged Until replaced by a reconnect — the replaced credentials and cached token are deleted at that moment — or uninstall
In-flight OAuth connection attempts (PKCE verifier, connected-app key/secret) Encrypted secrets Auto-expire after 10 minutes
Sync state, queue, and Confluence page-ID mappings Enables idempotent re-sync Until uninstall
Sync run history Status, counts, duration, truncated error text Rolling, most recent 20 runs
Metadata snapshots and content hashes Drives change detection and removal detection Until uninstall
Change-impact baselines and dependency graph Attribute-level before/after values, plus per-component and per-field content hashes used to detect that something changed Until uninstall
Access snapshots (per-user effective access) Includes usernames, full names, active status, last login Until uninstall or rebuild
Governance report snapshots Point-in-time compliance evidence Rolling, most recent 4 snapshots
Retained Setup Audit Trail history (feeds the Change History report) Each entry’s date, action, section, actor username and name, delegate user and Salesforce’s change description (section 1.3). Accumulates across builds, de-duplicated, so history older than Salesforce’s own ~180-day window is kept Until uninstall — no rolling cap
Most recent generated access export (ZIP) and audit pack Kept so the same download can be repeated; contains the data listed in section 5 Until the next build replaces it, or uninstall
Data-dictionary, link-registry, object-hub and component-count caches Derived counts and mappings; reduces repeat Salesforce calls Until uninstall
App configuration Destination space, sync schedule, metadata selection, timezone, page structure Until uninstall
Notification webhook URLs and per-channel delivery state See section 6 Until cleared or uninstall
Additional-access allow-list Confluence account IDs and group names Until changed or uninstall
Licence state Last explicit Atlassian licence verdict, so scheduled runs can be gated Until uninstall

No Salesforce business records are ever stored. Custom Metadata Type record values (section 1.6) are the sole record-level data MetaSync stores and publishes.


3. Where Your Data Is Processed and Stored

MetaSync runs entirely on Atlassian Forge. There is no MetaSync-operated server, database, log aggregator or analytics service. Consequently:

The only outbound connections MetaSync makes are to your Salesforce org and, if you configure them, your Slack or Microsoft Teams webhooks (section 6).


4. Who Can See What

Access inside the app is tiered, and it matters because the content includes administrative personal data:

The pages MetaSync publishes are readable by anyone with view access to them, not only administrators. Choose the destination space accordingly and restrict it if the content warrants it.


5. Reports and Exports

MetaSync generates twelve governance reports: Permission Set & Profile Assignment, Elevated Access / Risk Register, Inactive Users with Active Access, Field-Level Security / PII Access, Sensitive Data Discovery, Data Security Posture, Sharing & Visibility Summary, Documentation Coverage, Change History (Setup Audit Trail), Orphaned / Unused Config, Installed / Managed Packages, and Org Licenses & Storage.

Administrators and nominated users can download:

These downloads are generated on demand and delivered to the requesting user’s browser (administrators, and any non-administrator you have nominated under Additional access). The most recent access ZIP and audit pack are also kept in app storage so the download can be repeated, until the next build replaces them or the app is uninstalled (section 2). Once downloaded, the file leaves MetaSync’s control and becomes your responsibility to store, transmit and dispose of appropriately. MetaSync does not transmit these files anywhere else.


6. Notification Webhooks (optional)

MetaSync can notify you when a sync fails, recovers or completes, when the Salesforce connection expires, when the org’s data-security posture drifts (counts only — no field or object names), on an optional weekly summary, and with a test message when you press Send test. This is opt-in and off by default: no outbound notification request is made unless an administrator pastes a webhook URL under Connections → Notifications.


7. Authentication and Permissions

Salesforce

You connect through an External Client App you create in Salesforce, by one of two methods:

JWT bearer-token auth is not used.

Requested OAuth scopes are api and refresh_token / offline_access — nothing else. Salesforce offers no metadata-only OAuth scope, so the real safeguard is the permission set you grant the integration user: API Enabled, View Setup and Configuration and View Roles and Role Hierarchy, plus View All Profiles from Salesforce Winter ‘27 — user permissions only, with no object permissions at all (no read, create, edit or delete on any object, standard or custom), which is what keeps the metadata entities in section 1 the limit of what MetaSync can reach.

Confluence

Forge asApp() and, for the macro access check only, asUser(). The app declares exactly these scopes and uses all of them:

Scope Why it is needed
storage:app The Forge key-value store and encrypted secrets described in section 2
read:page:confluence Read existing documentation pages so re-syncs update rather than duplicate
write:page:confluence Create and update documentation pages
delete:page:confluence Remove the temporary write-verification probe page after the destination check
read:space:confluence Resolve the destination space and its homepage
read:content-details:confluence Required alongside the attachment scope by the create-or-update attachment endpoint
write:attachment:confluence Upload generated flow and ERD diagrams as page attachments
read:user:confluence Read the invoking user’s identity, and search the directory for the Additional access picker
read:group:confluence Read the invoking user’s group memberships to enforce administrator gating

No Atlassian API tokens are used in the shipped app. All connections use HTTPS/TLS in transit.


8. Sub-processors and Third Parties

Party Role What reaches them
Atlassian Sub-processor — hosting, storage, compute, logs All app data (Forge storage), all published documentation
Salesforce Your own system, read-only source Nothing is sent; MetaSync only reads. Salesforce receives the API requests themselves
Slack (optional) Recipient, only if you configure it The status-only payload in section 6
Microsoft (optional) Recipient, only if you configure it The status-only payload in section 6

There is no analytics provider, advertising network, error-reporting service or telemetry of any kind. MetaSync does not sell, rent or share customer data.


9. Retention and Deletion

Personal data requests

Because MetaSync only mirrors access metadata that already exists in your Salesforce org, the authoritative record is always Salesforce. To action an access, correction or erasure request affecting an individual:

  1. Make the change in Salesforce (or Confluence, for account identifiers under Additional access).
  2. Run a sync, or rebuild the access snapshot, so MetaSync’s stored snapshots and published pages reflect it.
  3. To remove all trace immediately, uninstall the app — which deletes every stored snapshot — and delete or edit any published Confluence pages containing the data.

For help with a request, contact us at the address below.


10. Security Measures


11. Your Responsibilities

By using MetaSync, you agree to:

  1. Maintain control of the Salesforce OAuth credentials you connect
  2. Grant the connected Salesforce integration user only the user permissions it needs (API Enabled, View Setup and Configuration, View Roles and Role Hierarchy, plus View All Profiles — required from Salesforce Winter ‘27, which otherwise hides other users’ profiles — and optionally Modify Metadata and Author Apex) — and no object permissions at all: MetaSync needs no read, create, edit or delete on any object
  3. Choose and restrict the Confluence space documentation is published to — it will contain administrative personal data about your org’s users, and may contain your Apex and component source code
  4. Grant Additional access deliberately, understanding it permits export of org-wide access and PII data
  5. Handle downloaded exports (CSV, Excel, ZIP audit packs) in line with your own data-handling policies
  6. Comply with your organisation’s data governance obligations, and with Salesforce’s and Atlassian’s terms
  7. Notify us promptly of any suspected security issue

12. Changes to This Policy

We may update this policy as the app changes. Material changes are reflected in the “Last Updated” date above, and the current version is published with the app’s Atlassian Marketplace listing.

13. Contact

Questions about privacy, security, or to request a DPA — MaaShive, New South Wales, Australia:


In short: MetaSync, made by MaaShive, reads Salesforce metadata — including limited administrative data about your org’s users, roles, permissions and configuration-change history, and the source of your Apex and Lightning components — and publishes it as Confluence documentation. It stores credentials encrypted and snapshots durably in Atlassian Forge storage, runs no servers of its own, never touches your business records, never writes back to Salesforce, and deletes everything it holds when you uninstall.