diff --git a/Governance/README.md b/Governance/README.md index 5b2b334..8bc1a3d 100644 --- a/Governance/README.md +++ b/Governance/README.md @@ -27,7 +27,7 @@ The governance documents are organised into the following areas. Individual documents are added and refined over time (tracked as issues): - **Templates** — contributor and maintainer starting points, including the - [`templates/BUG_REPORT_TEMPLATE.md`](templates/BUG_REPORT_TEMPLATE.md) for + [`Templates/BUG_REPORT_TEMPLATE.md`](templates/BUG_REPORT_TEMPLATE.md) for reporting app defects. - **Foundations** — charter, mission, values, principles, and glossary. - **Roles & membership** — contributor ladder, maintainer/reviewer roles, and the @@ -47,21 +47,29 @@ documents are added and refined over time (tracked as issues): - **Community & on-chain governance** — treasury, grants, and proposal governance. ## Domain documents - -Domain-specific policies live in `Governance/domains/`. Each document is +Domain-specific policies live in `Governance/domains/`. Each document ir self-contained and versioned with the repository: - `domains/APP_REVIEW_COMPLIANCE.md` — store guideline checklist, pre-submission review, and rejection handling for app store submissions. - `domains/APP_VERSION_BUMP.md` — build-number and version-name rules. - `domains/BACKGROUND_TASK_GOVERNANCE.md` — background task ownership and limits. -- `domains/BIOMETRIC_AUTH.md` — biometric authentication requirements. -- `domains/DEVICE_SUPPORT.md` — supported device tiers and testing matrix. -- `domains/EAS_BUILD_GOVERNANCE.md` — EAS build profiles, secrets, and promotion. -- `domains/MOBILE_ACCESSIBILITY.md` — accessibility targets and merge gate. -- `domains/MOBILE_FEATURE_FLAGS.md` — feature-flag lifecycle and ownership. -- `domains/MOBILE_TELEMETRY.md` — telemetry consent, PII exclusion, and crash reports. -- `domains/STORYBOOK_GOVERNANCE.md` — Storybook usage and maintenance. +- `domains/BIOMETRIC_AUTN.md` — biometric authentication requirements. +- `domains/DEVICE_SUPPORT.md` — supported device tiers and testing matrix. +- `domains/EAS_BUILD_GOVERNANCE.md` — EAS build profiles, secrets, and promotion. +- `domains/MOBILE_ACCESSIBILITY.md` — accessibility targets and merge gate. +- `domains/MOBILE_FEATURE_FLAGS.md` — feature-flag lifecycle and ownership. +- `domains/MOBILE_TELEMETRY.md` — telemetry consent, PII exclusion, and crash reports. +- `domains/STORYBOOK_GOVERNANCE.md` — Storybook usage and maintenance. + +## Matrices + +Matrices live in `Governance/matrices/`. Each matrix is a versioned, +self-contained reference that maps a governance area to concrete roles and +access rules: + +- `matrices/DATA_ACCESS_MATRIX.md` — data classifications, roles, allowed + access per role, and review cadence for TeachLink Mobile. ## Contributing to governance diff --git a/Governance/matrices/DATA_ACCESS_MATRIX.md b/Governance/matrices/DATA_ACCESS_MATRIX.md new file mode 100644 index 0000000..0eaa26b --- /dev/null +++ b/Governance/matrices/DATA_ACCESS_MATRIX.md @@ -0,0 +1,70 @@ +# Data Access Matrix + +This document defines the data classifications used by TeachLink Mobile, the roles that interact with that data, and the allowed access for each role. It is the versioned reference for data access governance and is self-contained within the `Governance/` folder. + +## Scope + +This matrix applies to data handled by the TeachLink Mobile application, its build and release pipelines, and the supporting operational processes described in this folder. It does not grant access by itself; it defines what access is allowed for each role and must be enforced through tooling, review, and operational procedures. + +## Data Classifications + +Data is classified into the following categories. Classification determines the minimum controls and the maximum access any role may hold. + +| Classification | Description | Examples | Handling requirements | +| --- | --- | --- | --- | +| **Public** | Information intended for open distribution. | Marketing content, public docs, open-source code. | No special handling. | +| **Internal** | Non-sensitive operational data restricted to the project team. | Internal roadmaps, build logs without PII, non-production configuration. | Access on a need-to-know basis. | +| **Confidential** | Sensitive business or technical data whose disclosure could harm the project or its users. | Private keys for signing, secrets, unreported security issues, contract terms. | Encrypted at rest, least privilege, audited access. | +| **Restricted / PII** | Personally identifiable information and other data subject to privacy obligations. | User names, email addresses, device identifiers, telemetry that can be linked to a person. | Explicit authorization, minimization, retention limits, audit trail. | + +Any data that cannot be confidently classified is treated as the highest applicable classification until a decision is recorded. + +## Roles + +Roles are defined consistently with the rest of the governance documents in this folder. + +| Role | Description | +| --- | --- | +| **Contributor** | Anyone who submits issues or pull requests to the repository. | +| **Reviewer** | Contributor trusted to review and approve changes in a designated area. | +| **Maintainer** | Responsible for merging changes, releases, and overall project health. | +| **Security team** | Handles vulnerability reports, embargoes, and advisories. | +| **Release manager** | Owns build and release pipelines and signing material. | +| **Operations / support** | Handles runtime operations and user support requests. | +| **Moderator** | Applies community and conduct policies (treated as a contributor for data access purposes). | + +## Access Matrix + +Legend: **F = Full** (allowed without additional approval), **R = Read-only**, **W = Write with review** (allowed with review/approval), **N = No access**. + +| Data classification | Contributor | Reviewer | Maintainer | Security team | Release manager | Operations / support | Moderator | +| --- | --- | --- | --- | --- | --- | --- | --- | +| **Public** | F | F | F | F | F | F | F | +| **Internal** | R | F | F | R | F | R | R | +| **Confidential** | N | N | W | F | W | N | N | +| **Restricted / PII** | N | N | W | W | N | R | N | + +### Notes on the matrix + +- **Full** access is still subject to the handling requirements for the classification. +- **Write with review** means the change must be approved by a second person holding at least the same access for that classification. +- **Security team** access to Restricted / PII data is limited to incident response and is subject to the disclosure process in this folder. +- **Operations / support** access to Restricted / PII data is read-only and must be justified by an open support request. +- No role has access to data outside the scope defined above; any exception requires a decision record in this folder. + +## Review Cadence + +- This matrix is reviewed at least **every six months** by the maintainers and security team. +- An **ad-hoc review** is triggered by any of the following: + - a new data classification is introduced; + - a new role is added or an existing role's responsibilities change; + - a security incident or privacy complaint is resolved; + - a relevant regulatory or platform requirement changes. +- Review outcomes are recorded by updating this document in a pull request that touches only the `Governance/` folder. +- If no changes are needed, the review is recorded in the relevant issue or pull request history. + +## Change Log + +| Date | Change | Author | +| --- | --- | --- | +| 2025-01-01 | Initial data access matrix for TeachLink Mobile. | Governance }