Security Policy

Effective date: 2026-09-23 · Last updated: 2026-10-13

Scope. This policy describes the security posture of Arkidor for Confluence only — the Atlassian Forge app distributed through the Atlassian Marketplace. It does not cover the standalone Arkidor web application at arkidor.io, which is a separate product with its own data flow and documentation. The two products are legally and technically distinct.

1. Summary

Arkidor for Confluence is an ArchiMate® architecture modelling app delivered on the Atlassian Forge platform and distributed through the Atlassian Marketplace. It is a client-side Forge Custom UI app: its interface runs in a sandboxed iframe served by Atlassian and talks to Confluence exclusively through the Forge bridge, acting as the signed-in user.

Your ArchiMate model content is not transmitted to or stored on any Knaap-operated system — the app is designed so that model content stays within your Confluence tenant. Models are stored as page attachments inside your own Confluence Cloud site, and the app operates no separate backend, database, or server tier for your model content. The only data that egresses to a third-party service used by Knaap is scrubbed technical error telemetry sent to Sentry (see §6).

PropertyArkidor for Confluence
Where model data livesYour own Confluence Cloud tenant (as page attachments)
Vendor-operated store of your modelsNone
Backend / function tier for the data pathNone (client-side Custom UI only)
Authentication / authorizationActs as the current Confluence user; honours Confluence permissions
Data leaving the tenant to a third-party service used by KnaapScrubbed error telemetry only (EU region)
Hosting platformAtlassian Forge ("Runs on Atlassian")
Data-in-transit / at-restProvided by the Atlassian Cloud platform

2. Shared responsibility & platform boundary

Arkidor for Confluence runs on Atlassian Forge. Platform-layer security — data-centre security, tenant isolation, encryption at rest and in transit, and platform breach handling — is provided and warranted by Atlassian under Atlassian's own agreements (see the Atlassian Trust Center and Atlassian's DPA). This policy describes Knaap's app-layer controls and the limited telemetry Knaap operates. Where this policy references at-rest encryption or tenant isolation, those are Atlassian platform properties, not independent Knaap guarantees.

3. Architecture & data flow

Arkidor for Confluence is a Forge Custom UI app. All Confluence API calls are made from the browser as the authenticated current user via the Forge bridge (requestConfluence). There is no app-identity / OAuth-consent data path and no server-side resolver or function tier handling your model content — every read and write is attributable to, and authorized as, the signed-in user.

4. Permissions & scopes (least privilege)

The app requests Forge scopes that are each exercised as the current user; Confluence enforces the user's own permissions on every call. The app requests no admin-of-instance / global scopes. The only elevated action — writing space-level display defaults — is gated by Confluence's native space Admin check, not by the app. A user who cannot view a page in Confluence cannot view its model through Arkidor; a user who cannot edit cannot save. Adding certain scopes on upgrade requires site admins to re-consent; these are not egress scopes.

The table lists every scope the app requests and why.

ScopeWhy it is requested
read:attachment:confluenceRead and download the model file and diagram previews the app stores as page attachments, for users who can already see the page.
read:confluence-content.allLoad the model source and preview attachments and the content of the page that holds them; only content the current user can already see.
read:confluence-content.summaryList models and embedded diagrams (titles, metadata) without loading full page bodies.
read:content.permission:confluenceBefore opening the fullscreen editor, check whether the current user can edit the page; users without edit rights get a read-only diagram. Only the current user's own permissions are checked.
read:content.property:confluenceRead the app's own content properties: reference index (which pages embed which model), cached model metadata, page-title emoji.
read:page:confluenceFind which page and space a diagram belongs to and load the page that hosts a model.
read:space:confluenceRead space information to apply space-level display defaults and templates and create model pages in the right space.
read:user:confluenceShow author display names in a model's version history (the attachment-versions API returns only account IDs). No other user data is read or stored.
search:confluenceFind pages that embed a given model (References tab) via a CQL search on the app's own content property.
write:confluence-contentSave model changes and diagram previews as the current user. The app does not create blog posts, comments or questions.
write:confluence-fileCreate and update the attachment files holding the model source, metadata and diagram previews.
write:content.property:confluenceWrite the app's own content properties when a model or embedded diagram is saved.
write:page:confluenceCreate a dedicated page for a new model and update its title when the model is renamed.
write:space:confluenceOnly to save Arkidor's space-level display defaults as a space property. The app never creates spaces or changes space settings; Confluence only lets space administrators write space properties.
delete:attachment:confluenceRemove attachments the app itself created: draft models after publishing, orphaned previews, discarded drafts, and leftover files from the old v1.0.6 format.

5. Authentication & authorization

6. Error monitoring & telemetry (Sentry)

To keep the app reliable, the interface reports runtime errors to Sentry (Functional Software, Inc.), configured for the EU region (ingest host *.ingest.de.sentry.io). This is the app's only declared external egress. It is declared to Atlassian under the analytics category with inScopeEUD: false: our attestation to Atlassian that the app is designed not to send in-scope End-User Data (ArchiMate model content, page titles), supported by the client-side scrubbing described below. Error telemetry is classified as out-of-scope End-User Data under Atlassian's Forge framework; it is nevertheless personal data under the GDPR and is handled as described in this section.

Model content is scrubbed on your device before sending. ArchiMate model content and page titles are designed to be removed on your device by client-side hooks from error and breadcrumb messages and from the report page URL and breadcrumb URLs before the report is sent; this client-side scrubbing is a best-effort control, not an absolute guarantee. Technical identifiers such as page, space or model IDs may appear in error and breadcrumb messages. Stack traces contain only the app's own code locations (function names and line numbers). Breadcrumb data other than the URL, request method, status code and logger name is discarded, and the browser's Referer header is removed. A limited set of diagnostic personal data is still transmitted to Sentry to make error reports useful, as set out below.

Data elementNotes
IP addressTransmitted with the HTTPS request for delivery; with sendDefaultPii: false it is not attached to the stored event payload, and Sentry's server-side "do not store IP address" setting is enabled
Browser type/version, operating systemPseudonymous context to identify environment-specific defects (derived from the browser's user-agent string)
Browser locale, time zone and calendar settingsHelps reproduce locale- and date-specific defects
Truncated error stack traceFunction and line context from the app's code only
Page URLThe report's page URL is the address of the app's own interface (hosted by Atlassian Forge, not your Confluence page), reduced to its host and path (query string and hash removed). The browser's Referer value, and any other request header that contains a URL, is not sent. URLs in navigation and network-request breadcrumbs are reduced to the path for the app's own pages and to the site address (domain only, for example https://example.atlassian.net) for other addresses, such as your Confluence site. Your Confluence site address can therefore appear in a report; space keys, page IDs and page titles in Confluence URLs are removed before sending
App version + environmentRelease/staging identifier, plus the version of the React UI library

What is designed not to be sent: your ArchiMate model content, page titles, names or email addresses, session replays, release-health session tracking, behavioural analytics, cookies, or device fingerprints. Sentry is configured with sendDefaultPii: false, no performance tracing / session replay, and no release-health session tracking (error events only).

Administrator egress opt-out ("Runs on Atlassian"). Arkidor for Confluence participates in Atlassian's Runs on Atlassian program and declares its Sentry error-monitoring egress under the analytics category. A Confluence site administrator can disable the app's analytics / error-monitoring egress to Sentry at any time using Atlassian's admin data-egress controls. When this egress is disabled, no diagnostic data is sent to Sentry. This is a platform-level control provided through Atlassian and is distinct from the scope-related re-consent on upgrade described in §4. Users may also object to this processing by contacting support@arkidor.io.

7. Data at rest, in transit, and isolation

8. Secure development & assurance

9. Hosting & sub-processors

The Confluence app itself runs on Atlassian's Forge platform, with no vendor-operated runtime for your model data.

Sub-processorPurposeData processedRegion
Atlassian Forge platform hosting, app runtime, tenant/attachment storage, Marketplace billing Model attachments, page/space metadata, account IDs — all within your own Confluence tenant Per your Atlassian data-residency configuration
Functional Software, Inc. (Sentry) Error monitoring / diagnostics Scrubbed technical error context and the IP address (transmitted, not stored); designed to exclude model content and page titles (client-side, best-effort scrubbing); no names or email addresses. Technical identifiers such as page, space or model IDs may appear in diagnostic messages. Breadcrumb URLs are reduced to the path or the site address only and the Referer value is not sent (see §6) EU (*.ingest.de.sentry.io)
Amazon Web Services EMEA SARL (AWS) Marketing/help/documentation hosting, support email, product feedback board — not part of the app runtime Help-page access logs (IP, user-agent, path, timestamp; no cookies; 90-day retention); support-email content; feedback-post content; feedback-board account details (name, email) where you create an account. No in-tenant model content EU (eu-west-1, Ireland)

The current, authoritative list — with data categories and transfer mechanisms — is maintained on our sub-processors page.

10. Data residency

11. Regulatory posture (shared responsibility)

Arkidor for Confluence is an ICT service delivered on Atlassian Forge. Because the app operates no vendor-side store or processing tier for customer model content, the customer's operational-resilience and network-security obligations (e.g. under DORA or NIS2, where applicable to the customer) are met principally at the Atlassian platform layer. Knaap supports customer ICT-third-party requirements through least-privilege scopes, EU data residency for vendor-operated telemetry, a published sub-processor list with change notice, a GDPR Art. 28 DPA (including breach assistance and audit-information provisions), and a vulnerability-disclosure channel. This is a posture statement, not a certification or a representation of the customer's own regulatory compliance.

12. Incident response & vulnerability disclosure

13. GDPR roles & related documents

GDPR controller/processor roles are defined in the Privacy Policy §5 and the DPA §1: the Customer is the controller and Knaap is the processor for in-tenant model/user data; Knaap is the controller for scrubbed Sentry telemetry. This security policy describes controls and does not duplicate or override those documents.

14. Changes

We will update this policy as the product evolves and post the revised effective date above.

15. Contact

Knaap · Itäinentie 50 · 06100 Porvoo · Finland · support@arkidor.io