Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 18 additions & 10 deletions Governance/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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

Expand Down
70 changes: 70 additions & 0 deletions Governance/matrices/DATA_ACCESS_MATRIX.md
Original file line number Diff line number Diff line change
@@ -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 }
Loading