From 322c48600ca6c4defadbe91a95fec30dd18ce6cf Mon Sep 17 00:00:00 2001 From: Brian Remmington Date: Thu, 11 Jan 2018 12:23:09 +0000 Subject: [PATCH] A fairly dumb initial copy of RM-related design information from the Architecture Map --- rm-community/documentation/PatchService.md | 14 ++++ rm-community/documentation/README.md | 28 ++++++- .../content-classification/README.md | 74 ++++++++++++++++++ .../documentation/destruction/README.md | 60 ++++++++++++++ .../resource/class/destruction-class.png | Bin 0 -> 35633 bytes .../resource/class/destruction-class.puml | 43 ++++++++++ .../sequence/destruction-sequence.png | Bin 0 -> 26419 bytes .../sequence/destruction-sequence.puml | 40 ++++++++++ .../easy-access-records/README.md | 74 ++++++++++++++++++ .../documentation/email-records/README.md | 74 ++++++++++++++++++ .../documentation/file-plan/README.md | 74 ++++++++++++++++++ .../documentation/governance-audit/README.md | 74 ++++++++++++++++++ .../documentation/governance-rules/README.md | 74 ++++++++++++++++++ .../documentation/governance-search/README.md | 74 ++++++++++++++++++ .../documentation/legal-holds/README.md | 74 ++++++++++++++++++ .../documentation/list-of-values/README.md | 74 ++++++++++++++++++ .../documentation/physical-records/README.md | 74 ++++++++++++++++++ .../record-import-export/README.md | 74 ++++++++++++++++++ rm-community/documentation/records/README.md | 74 ++++++++++++++++++ .../resource/component/ig-component.png | Bin 0 -> 34348 bytes .../resource/component/ig-component.puml | 58 ++++++++++++++ .../retention-schedules/README.md | 74 ++++++++++++++++++ .../roles-capabilities-permissions/README.md | 74 ++++++++++++++++++ .../documentation/security-marks/README.md | 74 ++++++++++++++++++ .../transfer-and-accession/README.md | 74 ++++++++++++++++++ .../documentation/version-records/README.md | 74 ++++++++++++++++++ 26 files changed, 1500 insertions(+), 1 deletion(-) create mode 100644 rm-community/documentation/PatchService.md create mode 100644 rm-community/documentation/content-classification/README.md create mode 100644 rm-community/documentation/destruction/README.md create mode 100644 rm-community/documentation/destruction/resource/class/destruction-class.png create mode 100644 rm-community/documentation/destruction/resource/class/destruction-class.puml create mode 100644 rm-community/documentation/destruction/resource/sequence/destruction-sequence.png create mode 100644 rm-community/documentation/destruction/resource/sequence/destruction-sequence.puml create mode 100644 rm-community/documentation/easy-access-records/README.md create mode 100644 rm-community/documentation/email-records/README.md create mode 100644 rm-community/documentation/file-plan/README.md create mode 100644 rm-community/documentation/governance-audit/README.md create mode 100644 rm-community/documentation/governance-rules/README.md create mode 100644 rm-community/documentation/governance-search/README.md create mode 100644 rm-community/documentation/legal-holds/README.md create mode 100644 rm-community/documentation/list-of-values/README.md create mode 100644 rm-community/documentation/physical-records/README.md create mode 100644 rm-community/documentation/record-import-export/README.md create mode 100644 rm-community/documentation/records/README.md create mode 100644 rm-community/documentation/resource/component/ig-component.png create mode 100644 rm-community/documentation/resource/component/ig-component.puml create mode 100644 rm-community/documentation/retention-schedules/README.md create mode 100644 rm-community/documentation/roles-capabilities-permissions/README.md create mode 100644 rm-community/documentation/security-marks/README.md create mode 100644 rm-community/documentation/transfer-and-accession/README.md create mode 100644 rm-community/documentation/version-records/README.md diff --git a/rm-community/documentation/PatchService.md b/rm-community/documentation/PatchService.md new file mode 100644 index 0000000000..3472dde7fe --- /dev/null +++ b/rm-community/documentation/PatchService.md @@ -0,0 +1,14 @@ +# RM Patch Service + +The RM Patch service operates independently of the Core Patch service & behaves differently. + +Schema numbering is sequential, it’s a 4 digit number, prefixed with the major/minor version number, e.g. schema from a 2.4 version will be 24xx. This is a different policy to the core numbering (which bumps the schema number by 10 for each release). + +Patches run in a single transaction. They may process data in batches, but it’s all wrapped in a single transaction, which is rolled back if the patch fails or is interrupted. AbstractModulePatch#245. When we implement applyInternal within a patch, that whole method runs inside a transaction. + +DB Schema numbers update only after every patch runs. This means if a patch fails, earlier patches will re run. (see: ModulePatchExecuterImpl.executeInternal#140). This behaviour is different than core’s behaviour, which updates the schema number after each successful patch. + +DB Schema number is stored in the attribute service (key: “module-schema”) against the RM’s module ID. This is not exposed in the UI. Nor in a REST API. The attribute service stores it directly in the DB, so isn’t even accessible via the node browser. +If a customer wants to determine the schema number for a running system, they’ll need to execute a DB query. + +It's possible to configure a patch not to run if being upgraded from a earlier schema version by setting `fixesFromSchema` in the patch config xml. diff --git a/rm-community/documentation/README.md b/rm-community/documentation/README.md index 7f958b9eb7..3fb29102f9 100644 --- a/rm-community/documentation/README.md +++ b/rm-community/documentation/README.md @@ -2,4 +2,30 @@ * [Enterprise Technical Documentation](../../rm-enterprise/documentation/README.md) (the link will only work if this repository contains the enterprise code) * [Overview of the design of RM](overview.md) -* [Extended permission service](extendedPermissionService.md) +* Records Management + * [File Plan](./file-plan) + * [List of Values](./list-of-values) + * Records + * [EMail Records](./email-records) + * [Filed and Unfiled Records](./records) + * [Easy Access Records](./easy-access-records) + * [Physical Records](./physical-records) + * [Record Import and Export](./record-import-export) + * [Version Records](./version-records) + * Retention + * [Destruction](./destruction) + * [Retention Schedules and Events](./retention-schedules) + * [Transfer and Accession](./transfer-and-accession) +* Security + * [Content Classification](./content-classification) + * [Extended permission service](extendedPermissionService.md) + * [Roles,Capabilities and Permissions](./roles-capabilities-permissions) + * [Security Marks](./security-marks) +* Discovery + * [Governance Search](./governance-search) + * [Legal Holds](./legal-holds) +* Compliance + * [Governance Audit](./governance-audit) + * [Governance Rules](./governance-rules) +* Core Module Services + * [RM Patch Service](./PatchService.md) diff --git a/rm-community/documentation/content-classification/README.md b/rm-community/documentation/content-classification/README.md new file mode 100644 index 0000000000..7a33fc4adb --- /dev/null +++ b/rm-community/documentation/content-classification/README.md @@ -0,0 +1,74 @@ +## Content Classification + +### Purpose + +TODO + +*** + +### Overview + +TODO + +*** + +### Artifacts and Guidance + +* Source Code Link +* License +* Issue Tracker Link +* Documentation Link +* Summary of governance model (ideation, contributions, build) + +*** + +### Prerequisite Knowledge + +TODO + +*** + +### Design + +#### Component Model + +TODO + +#### Data Model + +TODO + +#### Data Dictionary + +TODO + +#### Flows + +TODO + +#### Class Diagram + +TODO + +*** + +### Interfaces and API's + +TODO + +*** + +### Configuration + +TODO + +*** + +### Considerations + +TODO - Performance/Security/Cloud/Etc + +*** + + + diff --git a/rm-community/documentation/destruction/README.md b/rm-community/documentation/destruction/README.md new file mode 100644 index 0000000000..b43c16bf18 --- /dev/null +++ b/rm-community/documentation/destruction/README.md @@ -0,0 +1,60 @@ +## Destruction + +### Purpose + +Ensure the immediate and permanent destruction of sensitive content. + +This includes: + + * Records + * Classified content + +### Overview + +Sensitive content is immediately deleted from the content store. It does not get added to the trashcan or any other recoverable location and as such should not be recoverable. + +It is possible to configure the component to include a cleansing step prior to content deletion. This allows the binary content to be repeatedly overwritten prior to deletion to make it harder to forensically recover the binary data. + +Recorded content can be explicitly destroyed whilst maintaining the original node and associated meta-data. This is configured as a characteristic of the destruction step within a retention schedule. + +### Artifacts and Guidance + +* Source Code Link: [GitLab](https://gitlab.alfresco.com/records-management/records-management/tree/master) +* License: Alfresco Community +* Issue Tracker Link: [JIRA RM](https://issues.alfresco.com/jira/projects/RM/summary) +* Contribution Model: Alfresco Closed Source +* Documentation: [docs.alfresco.com (Records Management)](http://docs.alfresco.com/rm2.4/concepts/welcome-rm.html) + +*** + +### Design + +#### Component Model + +#### Content Model + +* uri - http://www.alfresco.org/model/recordsmanagement/1.0 +* prefix - rma +* rma:ghosted - aspect that indicates that a records content has been destroyed, but the records meta-data is still available. + +#### Flows + +![Alfresco Destruction Flow Diagram](./resource/sequence/destruction-sequence.png) + +#### Class Diagram + +![Alfresco Destruction Class Diagram](./resource/class/destruction-class.png) + +*** + +### Interfaces and APIs + +*** + +### Configuration + +*** + +### Considerations + +*** diff --git a/rm-community/documentation/destruction/resource/class/destruction-class.png b/rm-community/documentation/destruction/resource/class/destruction-class.png new file mode 100644 index 0000000000000000000000000000000000000000..1b8b0e383267adf01b043ee8caa82f61c11512e0 GIT binary patch literal 35633 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≈TB}70M``+*Py=#^W4*?o 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 ContentDestructionComponent +ContentDestructionComponent <|-- ExtendedContentDestructionComponent +ContentDestructionComponent --> EagerContentStoreCleaner +EagerContentStoreCleaner --> ContentCleanser +ContentCleanser <|-- ContentCleanser522022M +ContentCleanser +-- OverwriteOperation + +class DestroyAction { + + boolean ghostingEnabled +} + +class ContentDestructionComponent { + + boolean cleansingEnabled + + void destroyContent(NodeRef nodeRef) + + void destroyContent(NodeRef nodeRef, boolean includeRenditions) + + void registerAllContentForDestruction(NodeRef nodeRef, boolean clearContentProperty) +} + +class ExtendedContentDestructionComponent { + + void onBeforeNodeDelete(NodeRef nodeRef) +} + +class EagerContentStoreCleaner { + + void registerOrphanedContentUrlForCleansing(String contentUrl) + # boolean deleteFromStore(String contentUrl, ContentStore store) +} + +abstract class ContentCleanser { + # OverwriteOperation overwriteZeros + # OverwriteOperation overwriteOnes + # OverwriteOperation overwriteRandom + + {abstract} void cleanse(File file) + # void overwrite(File file, OverwriteOperation overwriteOperation) +} + +abstract class OverwriteOperation { + + {abstract} void operation(OutputStream os) throws IOException +} + +@enduml + diff --git a/rm-community/documentation/destruction/resource/sequence/destruction-sequence.png b/rm-community/documentation/destruction/resource/sequence/destruction-sequence.png new file mode 100644 index 0000000000000000000000000000000000000000..06d4fb442606fe06def4fcc4dfb7f7e2ea5d7d10 GIT binary patch literal 26419 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 literal 0 HcmV?d00001 diff --git a/rm-community/documentation/destruction/resource/sequence/destruction-sequence.puml b/rm-community/documentation/destruction/resource/sequence/destruction-sequence.puml new file mode 100644 index 0000000000..3dc04692c2 --- /dev/null +++ b/rm-community/documentation/destruction/resource/sequence/destruction-sequence.puml @@ -0,0 +1,40 @@ +@startuml + +Title: Content Destruction and Cleansing Flow + +participant "Repository" as R +participant "Behaviour" as B +participant "ContentDestructionComponent" as CDC +participant "EagerContentStoreCleaner" as ECSC +participant ConentCleanser as CC +participant ContentStore as CS + +R->B:beforeNodeDelete +activate B + +note right of B: sensitive content +B->CDC:registerAllContentForDestruction +deactivate B +activate CDC +note right of CDC: cleansing enabled + +CDC->ECSC:registerOrphanedContentUrlForCleansing +deactivate CDC +activate ECSC + +ECSC->ECSC: registerOrphanedContentUrl + +R->ECSC:afterCommit + +ECSC->CC:cleanse +activate CC +CC->ECSC +deactivate CC + +ECSC->CS:delete +activate CS +CS->ECSC +deactivate CS +deactivate ECSC + +@enduml \ No newline at end of file diff --git a/rm-community/documentation/easy-access-records/README.md b/rm-community/documentation/easy-access-records/README.md new file mode 100644 index 0000000000..609d765a7d --- /dev/null +++ b/rm-community/documentation/easy-access-records/README.md @@ -0,0 +1,74 @@ +## Easy Access Records + +### Purpose + +TODO + +*** + +### Overview + +TODO + +*** + +### Artifacts and Guidance + +* Source Code Link +* License +* Issue Tracker Link +* Documentation Link +* Summary of governance model (ideation, contributions, build) + +*** + +### Prerequisite Knowledge + +TODO + +*** + +### Design + +#### Component Model + +TODO + +#### Data Model + +TODO + +#### Data Dictionary + +TODO + +#### Flows + +TODO + +#### Class Diagram + +TODO + +*** + +### Interfaces and API's + +TODO + +*** + +### Configuration + +TODO + +*** + +### Considerations + +TODO - Performance/Security/Cloud/Etc + +*** + + + diff --git a/rm-community/documentation/email-records/README.md b/rm-community/documentation/email-records/README.md new file mode 100644 index 0000000000..3e66f97615 --- /dev/null +++ b/rm-community/documentation/email-records/README.md @@ -0,0 +1,74 @@ +## EMail Records + +### Purpose + +TODO + +*** + +### Overview + +TODO + +*** + +### Artifacts and Guidance + +* Source Code Link +* License +* Issue Tracker Link +* Documentation Link +* Summary of governance model (ideation, contributions, build) + +*** + +### Prerequisite Knowledge + +TODO + +*** + +### Design + +#### Component Model + +TODO + +#### Data Model + +TODO + +#### Data Dictionary + +TODO + +#### Flows + +TODO + +#### Class Diagram + +TODO + +*** + +### Interfaces and API's + +TODO + +*** + +### Configuration + +TODO + +*** + +### Considerations + +TODO - Performance/Security/Cloud/Etc + +*** + + + diff --git a/rm-community/documentation/file-plan/README.md b/rm-community/documentation/file-plan/README.md new file mode 100644 index 0000000000..2013929885 --- /dev/null +++ b/rm-community/documentation/file-plan/README.md @@ -0,0 +1,74 @@ +## File Plan + +### Purpose + +TODO + +*** + +### Overview + +TODO + +*** + +### Artifacts and Guidance + +* Source Code Link +* License +* Issue Tracker Link +* Documentation Link +* Summary of governance model (ideation, contributions, build) + +*** + +### Prerequisite Knowledge + +TODO + +*** + +### Design + +#### Component Model + +TODO + +#### Data Model + +TODO + +#### Data Dictionary + +TODO + +#### Flows + +TODO + +#### Class Diagram + +TODO + +*** + +### Interfaces and API's + +TODO + +*** + +### Configuration + +TODO + +*** + +### Considerations + +TODO - Performance/Security/Cloud/Etc + +*** + + + diff --git a/rm-community/documentation/governance-audit/README.md b/rm-community/documentation/governance-audit/README.md new file mode 100644 index 0000000000..b6f490b6ce --- /dev/null +++ b/rm-community/documentation/governance-audit/README.md @@ -0,0 +1,74 @@ +## Audit + +### Purpose + +TODO + +*** + +### Overview + +TODO + +*** + +### Artifacts and Guidance + +* Source Code Link +* License +* Issue Tracker Link +* Documentation Link +* Summary of governance model (ideation, contributions, build) + +*** + +### Prerequisite Knowledge + +TODO + +*** + +### Design + +#### Component Model + +TODO + +#### Data Model + +TODO + +#### Data Dictionary + +TODO + +#### Flows + +TODO + +#### Class Diagram + +TODO + +*** + +### Interfaces and API's + +TODO + +*** + +### Configuration + +TODO + +*** + +### Considerations + +TODO - Performance/Security/Cloud/Etc + +*** + + + diff --git a/rm-community/documentation/governance-rules/README.md b/rm-community/documentation/governance-rules/README.md new file mode 100644 index 0000000000..16f1e03c89 --- /dev/null +++ b/rm-community/documentation/governance-rules/README.md @@ -0,0 +1,74 @@ +## Governance Rules + +### Purpose + +TODO + +*** + +### Overview + +TODO + +*** + +### Artifacts and Guidance + +* Source Code Link +* License +* Issue Tracker Link +* Documentation Link +* Summary of governance model (ideation, contributions, build) + +*** + +### Prerequisite Knowledge + +TODO + +*** + +### Design + +#### Component Model + +TODO + +#### Data Model + +TODO + +#### Data Dictionary + +TODO + +#### Flows + +TODO + +#### Class Diagram + +TODO + +*** + +### Interfaces and API's + +TODO + +*** + +### Configuration + +TODO + +*** + +### Considerations + +TODO - Performance/Security/Cloud/Etc + +*** + + + diff --git a/rm-community/documentation/governance-search/README.md b/rm-community/documentation/governance-search/README.md new file mode 100644 index 0000000000..aa510c0b34 --- /dev/null +++ b/rm-community/documentation/governance-search/README.md @@ -0,0 +1,74 @@ +## Governance Search + +### Purpose + +TODO + +*** + +### Overview + +TODO + +*** + +### Artifacts and Guidance + +* Source Code Link +* License +* Issue Tracker Link +* Documentation Link +* Summary of governance model (ideation, contributions, build) + +*** + +### Prerequisite Knowledge + +TODO + +*** + +### Design + +#### Component Model + +TODO + +#### Data Model + +TODO + +#### Data Dictionary + +TODO + +#### Flows + +TODO + +#### Class Diagram + +TODO + +*** + +### Interfaces and API's + +TODO + +*** + +### Configuration + +TODO + +*** + +### Considerations + +TODO - Performance/Security/Cloud/Etc + +*** + + + diff --git a/rm-community/documentation/legal-holds/README.md b/rm-community/documentation/legal-holds/README.md new file mode 100644 index 0000000000..31a841e735 --- /dev/null +++ b/rm-community/documentation/legal-holds/README.md @@ -0,0 +1,74 @@ +## Legal Holds + +### Purpose + +TODO + +*** + +### Overview + +TODO + +*** + +### Artifacts and Guidance + +* Source Code Link +* License +* Issue Tracker Link +* Documentation Link +* Summary of governance model (ideation, contributions, build) + +*** + +### Prerequisite Knowledge + +TODO + +*** + +### Design + +#### Component Model + +TODO + +#### Data Model + +TODO + +#### Data Dictionary + +TODO + +#### Flows + +TODO + +#### Class Diagram + +TODO + +*** + +### Interfaces and API's + +TODO + +*** + +### Configuration + +TODO + +*** + +### Considerations + +TODO - Performance/Security/Cloud/Etc + +*** + + + diff --git a/rm-community/documentation/list-of-values/README.md b/rm-community/documentation/list-of-values/README.md new file mode 100644 index 0000000000..3d7aa52778 --- /dev/null +++ b/rm-community/documentation/list-of-values/README.md @@ -0,0 +1,74 @@ +## List of Values + +### Purpose + +TODO + +*** + +### Overview + +TODO + +*** + +### Artifacts and Guidance + +* Source Code Link +* License +* Issue Tracker Link +* Documentation Link +* Summary of governance model (ideation, contributions, build) + +*** + +### Prerequisite Knowledge + +TODO + +*** + +### Design + +#### Component Model + +TODO + +#### Data Model + +TODO + +#### Data Dictionary + +TODO + +#### Flows + +TODO + +#### Class Diagram + +TODO + +*** + +### Interfaces and API's + +TODO + +*** + +### Configuration + +TODO + +*** + +### Considerations + +TODO - Performance/Security/Cloud/Etc + +*** + + + diff --git a/rm-community/documentation/physical-records/README.md b/rm-community/documentation/physical-records/README.md new file mode 100644 index 0000000000..212556614d --- /dev/null +++ b/rm-community/documentation/physical-records/README.md @@ -0,0 +1,74 @@ +## Physical Records + +### Purpose + +TODO + +*** + +### Overview + +TODO + +*** + +### Artifacts and Guidance + +* Source Code Link +* License +* Issue Tracker Link +* Documentation Link +* Summary of governance model (ideation, contributions, build) + +*** + +### Prerequisite Knowledge + +TODO + +*** + +### Design + +#### Component Model + +TODO + +#### Data Model + +TODO + +#### Data Dictionary + +TODO + +#### Flows + +TODO + +#### Class Diagram + +TODO + +*** + +### Interfaces and API's + +TODO + +*** + +### Configuration + +TODO + +*** + +### Considerations + +TODO - Performance/Security/Cloud/Etc + +*** + + + diff --git a/rm-community/documentation/record-import-export/README.md b/rm-community/documentation/record-import-export/README.md new file mode 100644 index 0000000000..a07d968eea --- /dev/null +++ b/rm-community/documentation/record-import-export/README.md @@ -0,0 +1,74 @@ +## Record Import/Export + +### Purpose + +TODO + +*** + +### Overview + +TODO + +*** + +### Artifacts and Guidance + +* Source Code Link +* License +* Issue Tracker Link +* Documentation Link +* Summary of governance model (ideation, contributions, build) + +*** + +### Prerequisite Knowledge + +TODO + +*** + +### Design + +#### Component Model + +TODO + +#### Data Model + +TODO + +#### Data Dictionary + +TODO + +#### Flows + +TODO + +#### Class Diagram + +TODO + +*** + +### Interfaces and API's + +TODO + +*** + +### Configuration + +TODO + +*** + +### Considerations + +TODO - Performance/Security/Cloud/Etc + +*** + + + diff --git a/rm-community/documentation/records/README.md b/rm-community/documentation/records/README.md new file mode 100644 index 0000000000..6199401827 --- /dev/null +++ b/rm-community/documentation/records/README.md @@ -0,0 +1,74 @@ +## Filed and Unfiled Records + +### Purpose + +TODO + +*** + +### Overview + +TODO + +*** + +### Artifacts and Guidance + +* Source Code Link +* License +* Issue Tracker Link +* Documentation Link +* Summary of governance model (ideation, contributions, build) + +*** + +### Prerequisite Knowledge + +TODO + +*** + +### Design + +#### Component Model + +TODO + +#### Data Model + +TODO + +#### Data Dictionary + +TODO + +#### Flows + +TODO + +#### Class Diagram + +TODO + +*** + +### Interfaces and API's + +TODO + +*** + +### Configuration + +TODO + +*** + +### Considerations + +TODO - Performance/Security/Cloud/Etc + +*** + + + diff --git a/rm-community/documentation/resource/component/ig-component.png b/rm-community/documentation/resource/component/ig-component.png new file mode 100644 index 0000000000000000000000000000000000000000..788642c604c9f9ad852bb0bc946bbce3b96a8655 GIT binary patch literal 34348 zcmce;XF!unv;_)yP!H8YRRk63Rgn^DM-fq~3J6G*u9VOOLXC0&r3y%Iq9P(4giw

)!Srb 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�C_<8AG<21cuIS5o<1TAG$X+Q(RB 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 CaGM|i literal 0 HcmV?d00001 diff --git a/rm-community/documentation/resource/component/ig-component.puml b/rm-community/documentation/resource/component/ig-component.puml new file mode 100644 index 0000000000..1c446ccb46 --- /dev/null +++ b/rm-community/documentation/resource/component/ig-component.puml @@ -0,0 +1,58 @@ +@startuml + +skinparam componentArrowColor white + +' IG Component Breakdown +rectangle "Information Governance" as IG { + + rectangle "Records Management" as RM { + + component "File Plan" as FP + + rectangle "Records" as Rec { + component "Filed and Unfiled Records" + component "Easy Access Records" + component "Version Records" + component "Physical Records" + component "Email Records" + component "Record Import and Export" + } + + rectangle "Retention" as Ret { + component "Retention Schedules and Events" + component "Transfer and Accession" + component "Destruction" + } + component "List of Values" as LOV + } + + rectangle "Security" as Sec { + component "Roles, Capabilities and Permissions" + component "Security Marks" + component "Content Classification" + } + + rectangle "Discovery" as Dis { + component "Search" + component "Legal Holds" + } + + rectangle "Compliance" as Comp { + component "Audit" + component "DoD 5015.2" + } + + rectangle "Automation" as Auto { + component "Rules" + } +} + +' Fomatting +RM -[hidden]---- Sec +RM -[hidden]---- Dis +Dis -[hidden]- Comp +Rec -[hidden]-- Ret +FP -[hidden]- LOV +Sec -[hidden]-- Auto + +@enduml \ No newline at end of file diff --git a/rm-community/documentation/retention-schedules/README.md b/rm-community/documentation/retention-schedules/README.md new file mode 100644 index 0000000000..553bd3d42a --- /dev/null +++ b/rm-community/documentation/retention-schedules/README.md @@ -0,0 +1,74 @@ +## Retention Schedules + +### Purpose + +TODO + +*** + +### Overview + +TODO + +*** + +### Artifacts and Guidance + +* Source Code Link +* License +* Issue Tracker Link +* Documentation Link +* Summary of governance model (ideation, contributions, build) + +*** + +### Prerequisite Knowledge + +TODO + +*** + +### Design + +#### Component Model + +TODO + +#### Data Model + +TODO + +#### Data Dictionary + +TODO + +#### Flows + +TODO + +#### Class Diagram + +TODO + +*** + +### Interfaces and API's + +TODO + +*** + +### Configuration + +TODO + +*** + +### Considerations + +TODO - Performance/Security/Cloud/Etc + +*** + + + diff --git a/rm-community/documentation/roles-capabilities-permissions/README.md b/rm-community/documentation/roles-capabilities-permissions/README.md new file mode 100644 index 0000000000..d95e1b390d --- /dev/null +++ b/rm-community/documentation/roles-capabilities-permissions/README.md @@ -0,0 +1,74 @@ +## Roles, Capabilities and Permissions + +### Purpose + +TODO + +*** + +### Overview + +TODO + +*** + +### Artifacts and Guidance + +* Source Code Link +* License +* Issue Tracker Link +* Documentation Link +* Summary of governance model (ideation, contributions, build) + +*** + +### Prerequisite Knowledge + +TODO + +*** + +### Design + +#### Component Model + +TODO + +#### Data Model + +TODO + +#### Data Dictionary + +TODO + +#### Flows + +TODO + +#### Class Diagram + +TODO + +*** + +### Interfaces and API's + +TODO + +*** + +### Configuration + +TODO + +*** + +### Considerations + +TODO - Performance/Security/Cloud/Etc + +*** + + + diff --git a/rm-community/documentation/security-marks/README.md b/rm-community/documentation/security-marks/README.md new file mode 100644 index 0000000000..db9f38d9d2 --- /dev/null +++ b/rm-community/documentation/security-marks/README.md @@ -0,0 +1,74 @@ +## Security Marks + +### Purpose + +TODO + +*** + +### Overview + +TODO + +*** + +### Artifacts and Guidance + +* Source Code Link +* License +* Issue Tracker Link +* Documentation Link +* Summary of governance model (ideation, contributions, build) + +*** + +### Prerequisite Knowledge + +TODO + +*** + +### Design + +#### Component Model + +TODO + +#### Data Model + +TODO + +#### Data Dictionary + +TODO + +#### Flows + +TODO + +#### Class Diagram + +TODO + +*** + +### Interfaces and API's + +TODO + +*** + +### Configuration + +TODO + +*** + +### Considerations + +TODO - Performance/Security/Cloud/Etc + +*** + + + diff --git a/rm-community/documentation/transfer-and-accession/README.md b/rm-community/documentation/transfer-and-accession/README.md new file mode 100644 index 0000000000..a3db5367ee --- /dev/null +++ b/rm-community/documentation/transfer-and-accession/README.md @@ -0,0 +1,74 @@ +## Transfer and Accession + +### Purpose + +TODO + +*** + +### Overview + +TODO + +*** + +### Artifacts and Guidance + +* Source Code Link +* License +* Issue Tracker Link +* Documentation Link +* Summary of governance model (ideation, contributions, build) + +*** + +### Prerequisite Knowledge + +TODO + +*** + +### Design + +#### Component Model + +TODO + +#### Data Model + +TODO + +#### Data Dictionary + +TODO + +#### Flows + +TODO + +#### Class Diagram + +TODO + +*** + +### Interfaces and API's + +TODO + +*** + +### Configuration + +TODO + +*** + +### Considerations + +TODO - Performance/Security/Cloud/Etc + +*** + + + diff --git a/rm-community/documentation/version-records/README.md b/rm-community/documentation/version-records/README.md new file mode 100644 index 0000000000..44d36f6366 --- /dev/null +++ b/rm-community/documentation/version-records/README.md @@ -0,0 +1,74 @@ +## Version Records + +### Purpose + +TODO + +*** + +### Overview + +TODO + +*** + +### Artifacts and Guidance + +* Source Code Link +* License +* Issue Tracker Link +* Documentation Link +* Summary of governance model (ideation, contributions, build) + +*** + +### Prerequisite Knowledge + +TODO + +*** + +### Design + +#### Component Model + +TODO + +#### Data Model + +TODO + +#### Data Dictionary + +TODO + +#### Flows + +TODO + +#### Class Diagram + +TODO + +*** + +### Interfaces and API's + +TODO + +*** + +### Configuration + +TODO + +*** + +### Considerations + +TODO - Performance/Security/Cloud/Etc + +*** + + +