A fairly dumb initial copy of RM-related design information from the Architecture Map

This commit is contained in:
Brian Remmington
2018-01-11 12:23:09 +00:00
parent be45b4ba37
commit 322c48600c
26 changed files with 1500 additions and 1 deletions

View File

@@ -0,0 +1,14 @@
# RM Patch Service
The RM Patch service operates independently of the Core Patch service & behaves differently.
Schema numbering is sequential, its 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 its 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 cores behaviour, which updates the schema number after each successful patch.
DB Schema number is stored in the attribute service (key: “module-schema”) against the RMs module ID. This is not exposed in the UI. Nor in a REST API. The attribute service stores it directly in the DB, so isnt even accessible via the node browser.
If a customer wants to determine the schema number for a running system, theyll 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.

View File

@@ -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)

View File

@@ -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
***

View File

@@ -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
***

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

View File

@@ -0,0 +1,43 @@
@startuml
DestroyAction --> 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

View File

@@ -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

View File

@@ -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
***

View File

@@ -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
***

View File

@@ -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
***

View File

@@ -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
***

View File

@@ -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
***

View File

@@ -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
***

View File

@@ -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
***

View File

@@ -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
***

View File

@@ -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
***

View File

@@ -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
***

View File

@@ -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
***

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

View File

@@ -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

View File

@@ -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
***

View File

@@ -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
***

View File

@@ -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
***

View File

@@ -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
***

View File

@@ -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
***