From 447a0bf1bfb9e4c212e5e2c1aa2e450bdb7fb4e7 Mon Sep 17 00:00:00 2001 From: Paul Danjuma Shuri Date: Sat, 17 Oct 2026 08:26:01 +0100 Subject: [PATCH] fix: Add an ambassador program policy for TeachLink Backend (#1862) --- Governance/CHANGELOG.md | 26 ++-------------------- Governance/community/AMBASSADOR_PROGRAM.md | 1 + 2 files changed, 3 insertions(+), 24 deletions(-) create mode 100644 Governance/community/AMBASSADOR_PROGRAM.md diff --git a/Governance/CHANGELOG.md b/Governance/CHANGELOG.md index 3720b195..5df7af33 100644 --- a/Governance/CHANGELOG.md +++ b/Governance/CHANGELOG.md @@ -10,18 +10,7 @@ The format follows [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). ### Added -# Governance Changelog - -All notable changes to governance documents are recorded here. - -The format follows [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). - ---- - -## [Unreleased] - -### Added - +- `Governance/community/AMBASSADOR_PROGRAM.md` — ambassador program policy covering ambassador responsibilities, selection criteria and process, recognition and rewards, and review/offboarding. - `Governance/policies/CERTIFICATE_MANAGEMENT.md` — certificate management policy covering issuance standards (key length, algorithm, CA, validity, SAN), ownership and operator assignment, renewal lead times and the @@ -48,18 +37,7 @@ The format follows [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). - `Governance/domains/DATA_RETENTION.md` — initial data-retention policy covering: - Retention periods for all data types (users, courses, payments, audit logs, notifications, analytics, messages, media, sessions, consent records, backups) - - Automated and manual deletion processes, including GDPR Article 17 right-to-erasure and CCPA §1798.105 right-to-delete flows - - Legal-hold exceptions: how to place, verify, lift, and handle emergency preservation - - Compliance mapping to GDPR, CCPA, and SOX requirements - - Roles and responsibilities - - Links to the runtime implementation (`src/config/retention.config.ts`, `src/data-retention/`) -## [1.0.0] – 2026-09-27 - -### Added - -- `Governance/domains/DATA_RETENTION.md` — initial data-retention policy covering: - - Retention periods for all data types (users, courses, payments, audit logs, notifications, analytics, messages, media, sessions, consent records, backups) - - Automated and manual deletion processes, including GDPR Article 17 right-to-erasure and CCPA §1798.105 right-to-delete flows + - Automated and manual deletion processes, including GD@R Article 17 right-to-erasure and CCPA §1798.105 right-to-delete flows - Legal-hold exceptions: how to place, verify, lift, and handle emergency preservation - Compliance mapping to GDPR, CCPA, and SOX requirements - Roles and responsibilities diff --git a/Governance/community/AMBASSADOR_PROGRAM.md b/Governance/community/AMBASSADOR_PROGRAM.md new file mode 100644 index 00000000..fa2d363d --- /dev/null +++ b/Governance/community/AMBASSADOR_PROGRAM.md @@ -0,0 +1 @@ +IyBBbWJhc3NhZG9yIFByb2dyYW0gUG9saWN5CgoqKlN0YXR1czoqKiBBY3RpdmUKKipPd25lcjoqKiBHb3Zlcm5hbmNlIENvbW1pdHRlZQoqKkxhc3QgcmV2aWV3ZWQ6KiogMjAyNi0wOS0yNwoKKipDaGFuZ2UgaGlzdG9yeToqKiBzZWUgYEdvdmVybmFuY2UvQ0hBTkdFTE9HLm1kYAoKLS0tCgojIyAxLiBQdXJwb3NlCgpUaGlzIHBvbGljeSBkZWZpbmVzIHRoZSBUZWFjaExpbmsgQW1iYXNzYWRvciBQcm9ncmFtOiB3aGF0IGFtYmFzc2Fkb3JzIGRvLAoKaG93IHRoZXkgYXJlIHNlbGVjdGVkLCBob3cgdGhlaXIgY29udHJpYnV0aW9ucyBhcmUgcmVjb2duaXplZCwgYW5kIGhvdyB0aGUKCnByb2dyYW0gaXMgZ292ZXJuZWQuIEl0IGV4aXN0cyBzbyB0aGF0IGNvbnRyaWJ1dG9ycyBhbmQgbWFpbnRhaW5lcnMgaGF2ZSBhCgpjbGVhciwgdmVyc2lvbmVkIHJlZmVyZW5jZSBmb3IgY29tbXVuaXR5IGxlYWRlcnNoaXAgcmF0aGVyIHRoYW4gcmVseWluZyBvbgp1bndyaXR0ZW4gZXhwZWN0YXRpb25zLgoKIyMgMi4gU2NvcGUKClRoaXMgcG9saWN5IGFwcGxpZXMgdG8gYWxsIHBlb3BsZSB3aG8gcGFydGljaXBhdGUgaW4gdGhlIEFtYmFzc2Fkb3IKClByb2dyYW0gaW4gYW55IGNhcGFjaXR5LCBpbmNsdWRpbmcgY2FuZGlkYXRlcywgYWN0aXZlIGFtYmFzc2Fkb3JzLCBhbmQKbWVudG9ycy4gSXQgZG9lcyBub3QgcmVwbGFjZSB0aGUgQ29kZSBvZiBDb25kdWN0LCB0aGUgY29udHJpYnV0aW9uCgpndWlkZWxpbmVzLCBvciB0aGUgc2VjdXJpdHkgcG9saWNpZXMgdW5kZXIgYEdvdmVybmFuY2UvYC4gV2hlcmUgdGhvc2UKCmRvY3VtZW50cyBhcmUgc3RyaWN0ZXIsIHRoZXkgcHJldmFpbC4KCiMjIDMuIEFtYmFzc2Fkb3IgUmVzcG9uc2liaWxpdGllcwoKQW1iYXNzYWRvcnMgYXJlIHZvbHVudGVlciBjb21tdW5pdHkgbGVhZGVycy4gVGhleSBhcmUgZXhwZWN0ZWQgdG86CgoxLiAqKk9uYm9hcmQgY29udHJpYnV0b3JzLioqIFdlbGNvbWUgbmV3IGNvbnRyaWJ1dG9ycywgaGVscCB0aGVtIGZpbmQKICAgYXBwcm9wcmlhdGUgaXNzdWVzLCBhbmQgZ3VpZGUgdGhlbSB0aHJvdWdoIHRoZSBjb250cmlidXRpb24gd29ya2Zsb3cuCjIuICoqU3VwcG9ydCBjb21tdW5pdHkgY2hhbm5lbHMuKiogQW5zd2VyIHF1ZXN0aW9ucyBpbiBkaXNjdXNzaW9uIGZvcnVtcyBhbmQKICAgY2hhdCwgYW5kIHJvdXRlIHVucmVzb2x2ZWQgdGVjaG5pY2FsIGlzc3VlcyB0byBtYWludGFpbmVycy4KMy4gKipSZXByZXNlbnQgdGhlIHByb2plY3QuKiogU2hhcmUgYWNjdXJhdGUgaW5mb3JtYXRpb24gYWJvdXQgVGVhY2hMaW5rIGF0CgpldmVudHMsIG9ubGluZSBvciBpbiBwZXJzb24sIHdpdGhpbiB0aGUgYm91bmRzIG9mIHRoaXMgcG9saWN5Lgo0LiAqKkZhY2lsaXRhdGUgZmVlZGJhY2suKiogQ29sbGVjdCBhbmQgc3VtbWFyaXplIGNvbW11bml0eSBmZWVkYmFjayBhbmQKICAgc3VyZmFjZSBpdCB0byBtYWludGFpbmVycyB0aHJvdWdoIHRoZSBhcHByb3ByaWF0ZSBpc3N1ZSBvciBkaXNjdXNzaW9uCgpjaGFubmVsLgo1LiAqKk1lbnRvciBjb250cmlidXRvcnMuKiogUHJvdmlkZSByZXZpZXcgZ3VpZGFuY2Ugb24gcHVsbCByZXF1ZXN0cyBhbmQgaGVscAoKICAgY29udHJpYnV0b3JzIG1lZXQgcHJvamVjdCBzdGFuZGFyZHMsIHdpdGhvdXQgYWN0aW5nIGFzIGEgY29kZSBvd25lciB1bmxlc3MKICAgZXhwbGljaXRseSBkZWxlZ2F0ZWQuCjYuICoqVXBob2xkIGdvdmVybmFuY2UuKiogRm9sbG93IHRoZSBDb2RlIG9mIENvbmR1Y3QgYW5kIHJlcG9ydCB2aW9sYXRpb25zCgp0aHJvdWdoIHRoZSBkb2N1bWVudGVkIGNoYW5uZWxzIHJhdGhlciB0aGFuIGhhbmRsaW5nIHRoZW0gaW5mb3JtYWxseS4KCkFtYmFzc2Fkb3JzIG11c3Qgbm90IHNwZWFrIG9uIGJlaGFsZiBvZiB0aGUgcHJvamVjdCBvbiBzZWN1cml0eSBtYXR0ZXJzLAoKZmluYW5jaWFsIGNvbW1pdG1lbnRzLCBvciBsZWdhbCBxdWVzdGlvbnMuIFRob3NlIGFyZSByb3V0ZWQgdG8gdGhlIHJlbGV2YW50Cgpvd25lciB1bmRlciBgR292ZXJuYW5jZS9TRUNVUklUWV9QT0xJQ1kuZGAgYW5kIHRoZSBhcHBsaWNhYmxlIHBvbGljaWVzLgoKIyMgNC4gU2VsZWN0aW9uCgojIyMgNC4xIEVsaWdpYmlsaXR5CgpBIHBlcnNvbiBpcyBlbGlnaWJsZSB0byBhcHBseSBpZiB0aGV5OgoKLSBIYXZlIGEgcmVjb3JkIG9mIG1lYW5pbmdmdWwgY29udHJpYnV0aW9ucyB0byBUZWFjaExpbmsgKGNvZGUsIGRvY3MsCgp0cmlhZ2UsIGNvbW11bml0eSBzdXBwb3J0LCBvciB0cmFuc2xhdGlvbikgb3ZlciBhdCBsZWFzdCB0aHJlZSBtb250aHM7Ci0gQXJlIGluIGdvb2Qgc3RhbmRpbmcgd2l0aCByZXNwZWN0IHRvIHRoZSBDb2RlIG9mIENvbmR1Y3Q7Ci0gQ2FuIGNvbW1pdCB0byB0aGUgcmVzcG9uc2liaWxpdGllcyBpbiBTZWN0aW9uIDMgZm9yIGF0IGxlYXN0IHNpeAoKbW9udGhzOwoKLSBIYXZlIG5vdCBiZWVuIHJlbW92ZWQgZnJvbSB0aGUgcHJvZ3JhbSBmb3IgY2F1c2UgaW4gdGhlIHByZWNlZGluZyAxMgoKbW9udGhzLgoKIyMjIDQuMiBBcHBsaWNhdGlvbiBwcm9jZXNzCgoxLiBUaGUgY2FuZGlkYXRlIG9wZW5zIGFuIGlzc3VlIHVzaW5nIHRoZSBhbWJhc3NhZG9yIGFwcGxpY2F0aW9uIHRlbXBsYXRlLAoKc3RhdGluZyB0aGVpciBjb250cmlidXRpb24gaGlzdG9yeSwgYXJlYXMgb2YgaW50ZXJlc3QsIGFuZCBhdmFpbGFibGUgdGltZS4KMi4gQSBtYWludGFpbmVyIGFzc2lnbmVkIGJ5IHRoZSBHb3Zlcm5hbmNlIENvbW1pdHRlZSB2ZXJpZmllcyBlbGlnaWJpbGl0eQoKYW5kIHJlcXVlc3RzIHJlZmVyZW5jZXMgZnJvbSB0d28gZXhpc3RpbmcgY29udHJpYnV0b3JzIG9yIG1haW50YWluZXJzLgozLiBUaGUgR292ZXJuYW5jZSBDb21taXR0ZWUgcmV2aWV3cyB0aGUgYXBwbGljYXRpb24gaW4gaXRzIG5leHQgcmVndWxhgoKbWVldGluZyBhbmQgcmVjb3JkcyBhIGRlY2lzaW9uIGluIHRoZSBpc3N1ZSB0aHJlYWQgd2l0aGluIDE0IGRheXMuCjQuIEFwcHJvdmVkIGFtYmFzc2Fkb3JzIGFyZSBhbm5vdW5jZWQgaW4gdGhlIGNvbW11bml0eSBjaGFubmVsIGFuZCBhZGRlZAoKdG8gdGhlIG1haW50YWluZWQgYW1iYXNzYWRvciByb3N0ZXIuCgojIyMgNC4zIFRlcm0gYW5kIHJldmlldwoKQW1iYXNzYWRvciB0ZXJtcyBhcmUgdHdlbHZlIG1vbnRocyBhbmQgcmVuZXcgYXV0b21hdGljYWxseSB3aGVyZSB0aGUKCmV4cGVjdGF0aW9ucyBpbiBTZWN0aW9uIDMgYXJlIG1ldC4gVGhlIEdvdmVybmFuY2UgQ29tbWl0dGVlIGNvbmR1Y3RzIGFuCgphbm51YWwgcmV2aWV3IGFuZCBtYXkgcmVxdWVzdCBhIG1pZC10ZXJtIGNoZWNrLWluLiBBbiBhbWJhc3NhZG9yIG1heSBzdGVwCgpkb3duIGF0IGFueSB0aW1lIGJ5IG5vdGlmeWluZyB0aGUgY29tbWl0dGVlLgoKIyMjIDQuNCBSZW1vdmFsCgpBbiBhbWJhc3NhZG9yIG1heSBiZSByZW1vdmVkIGZvciBhIHN1c3RhaW5lZCBmYWlsdXJlIHRvIG1lZXQgcmVzcG9uc2liaWxpdGllcywKCmZvciBhIENvZGUgb2YgQ29uZHVjdCB2aW9sYXRpb24sIG9yIGZvciBtaXNyZXByZXNlbnRpbmcgdGhlIHByb2plY3QuIFJlbW92YWwKcmVxdWlyZXMgYSBHb3Zlcm5hbmNlIENvbW1pdHRlZSBkZWNpc2lvbiByZWNvcmRlZCBpbiB3cml0aW5nLCB3aXRoIG5vdGljZSB0bwp0aGUgYWZmZWN0ZWQgcGVyc29uIGFuZCBhbiBvcHBvcnR1bml0eSB0byByZXNwb25kLgoKIyMgNS4gUmVjb2duaXRpb24KClJlY29nbml0aW9uIGlzIGludGVudGlvbmFsbHkgbm9uLW1vbmV0YXJ5IGFuZCBpcyBhd2FyZGVkIG9uIHRoZSBiYXNpcyBvZgoKZG9jdW1lbnRlZCBjb250cmlidXRpb24sIG5vdCBzZW5pb3JpdHkgYWxvbmUuCgotICoqUHVibGljIGNyZWRpdDoqKiBBbWJhc3NhZG9ycyBhcmUgbGlzdGVkIGluIHRoZSBwcm9qZWN0J3MgY29udHJpYnV0b3IKCmluZGV4IGFuZCBpbiByZWxlYXNlIG5vdGVzIGZvciB0aGUgcGVyaW9kcyB0aGV5IHNlcnZlZC4KLSBgQU1CQVN... (truncated) \ No newline at end of file