diff --git a/rm-community/documentation/resource/class/governance-services.png b/rm-community/documentation/resource/class/governance-services.png index 8237410429..f682a9d1eb 100644 Binary files a/rm-community/documentation/resource/class/governance-services.png and b/rm-community/documentation/resource/class/governance-services.png differ diff --git a/rm-community/documentation/resource/class/governance-services.puml b/rm-community/documentation/resource/class/governance-services.puml index 82089ab649..2dda190d31 100644 --- a/rm-community/documentation/resource/class/governance-services.puml +++ b/rm-community/documentation/resource/class/governance-services.puml @@ -1,143 +1,247 @@ @startuml -class RecordCategory { +'Core ACS entities + +package "ACS core - content" { + + class Content { + } + + class Folder { + } + + class File { + } + + class Site { + } + } -class Record { +package "RM Core" { + + class FilePlanComponent { + rootNodeRef: NodeRef + } + + class RecordsManagementContainer { + recordComponentIdentifier: String + } + + class RmSite { + } + + class FilePlan { + } + + class RecordCategory { + } + + class RecordFolder { + recordComponentIdentifier: String + } + + class Record { + recordComponentIdentifier: String + dateFiled: Date + originalName: String + location: String + } + + class DodRecord { + publicationDate: Date + originator: String + originatingOrganization: String + mediaType: String + format: String + dateReceived: Date + address: String + otherAddress: String + } + + class NonElectronicRecord { + physicalSize: Int + numberOfCopies: Int + storageLocation: String + shelf: String + box: String + file: String + } + + class EasyAccessRecord { + } + + class UnfiledRecordContainer { + } + + class UnfiledRecordFolder { + } + } -class NonElectronicRecord { +package "ACS core - people" { + + class User { + } + + class Group { + } } -class FilePlanComponent { +package "RM Roles and Capabilities" { + class Role { + } + + class Capability { + name:String + } + } -class Transfer { - location : String - pdfIndicator : boolean +package "Information Lifecycle Management" { + + class TransferContainer { + } + + class Transfer { + location : String + pdfIndicator : boolean + } + + class RetentionSchedule { + authority: String + instructions: String + recordLevelDisposition: Boolean + } + + class DispositionActionDefinition { + dispositionActionName: String + dispositionDescription: String + dispositionLocation: String + dispositionPeriod: Period + dispositionPeriodProperty: String + dispositionEvent: String + dispositionEventCombination: String + combineDispositionStepConditions: String + } + + class DispositionEvent { + } + + class DispositionLifecycle { + } + + class DispositionAction { + dispositionActionId: String + dispositionAction: String + dispositionAsOf: Date + manuallySetAsOf: Date + dispositionEventsEligible: Boolean + dispositionActionStartedAt: Date + dispositionActionStartedBy: String + dispositionActionCompletedAt: Date + dispositionActionCompletedBy: String + } + + class EventExecution { + } + +} + +note bottom of RetentionSchedule { + Retention is the new name for disposition. + Retention is the user facing name, + code refers to disposition } note bottom of Transfer { - A holding pen for records - that are being transferred - out of the system + A holding pen for records + that are being transferred + out of the system } -class Hold { +package "Legal Holds" { + class HoldContainer { + } + + class Hold { + holdReason: String + } + + class Frozen { + frozenAt: Date + frozenBy: String + } + } -class EasyAccessRecord { +package "Security Controls" { + + class SecurityGroup <> { + enum groupType + {HIERARCHICAL, + USER_REQUIRES_ANY, + USER_REQUIRES_ALL} + unmarkedMark: SecurityMark + } + + class SecurityMark <> { + } + + class SecurityClassification <> { + } + + class ClassificationReason <> { + } + + class ClassificationExemption <> { + } + + class ClassificationInfo <> { + classification: SecurityClassification + reason:ClassificationReason[] + classifiedBy: String + agency:String + } + + class SourceReference <> { + name:String + originatingOrg:String + publicationDate:Date + } + + class DowngradeSchedule <> { + date:Date + event:String + instructions:String + } + + class DeclassificationSchedule <> { + date:Date + event:String + exemption:Exemption[] + } + + class ClassificationGuide <> { + } + + class DeclassificationTimeframe <> { + } } -class RetentionSchedule { -} - -class SecurityGroup { - enum groupType - {HIERARCHICAL, - USER_REQUIRES_ANY, - USER_REQUIRES_ALL} - unmarkedMark: SecurityMark -} - -class SecurityMark { -} - -class SecurityClassification { -} - -class Event { -} - -class Role { -} - -class Capability { - name:String -} - -class RmSite { -} - -class FilePlan { -} - -class UnfiledRecordContainer { -} - -class UnfiledRecordFolder { -} - -class HoldContainer { -} - -class TransferContainer { -} - -class RecordsManagementContainer { -} - -class RecordFolder { -} - -class ClassificationReason { -} - -class ClassificationExemption { -} - -class Content { -} - -class Folder { -} - -class File { -} - -class User { -} - -class Group { -} - -class ClassificationInfo { - classification: SecurityClassification - reason:ClassificationReason[] - classifiedBy: String - agency:String -} - -class SourceReference { - name:String - originatingOrg:String - publicationDate:Date -} - -class DowngradeSchedule { - date:Date - event:String - instructions:String -} - -class DeclassificationSchedule { - date:Date - event:String - exemption:Exemption[] -} - -class ClassificationGuide <> { -} - -class DeclassificationTimeframe { -} - - -ClassificationInfo *-- "*" SourceReference -ClassificationInfo *-- "0..1" DowngradeSchedule +Content <|-- Folder +Content <|-- File +File <|-- Record Folder <|-- RecordFolder +Site <|-- RmSite + +Record <|- EasyAccessRecord +Folder "1" o-- "*" EasyAccessRecord + +Record <|-- DodRecord + FilePlanComponent <|-- RecordsManagementContainer FilePlanComponent <|-- RecordFolder FilePlanComponent <|-- NonElectronicRecord @@ -149,14 +253,6 @@ RecordsManagementContainer <|-- TransferContainer RecordsManagementContainer <|-- FilePlan RecordsManagementContainer <|-- RecordCategory -Hold "*" o- "*" FilePlanComponent : contains - -SecurityGroup "1" *- "*" SecurityMark - -Content o-- "*" SecurityMark : securityControls -User o-- "*" SecurityMark : clearance -Group o-- "*" SecurityMark : clearance - RecordCategory "1" *- "*" RecordFolder RecordCategory *- "*" RecordCategory @@ -166,31 +262,47 @@ note bottom of RecordCategory { as the child of either another RecordCategory or the FilePlan } -FilePlan *- "*" RecordsManagementContainer -HoldContainer *- "*" Hold -UnfiledRecordContainer *-- "*" UnfiledRecordFolder -UnfiledRecordFolder *-- "*" Record RecordFolder *- "*" Record : contains RecordFolder *-- "*" NonElectronicRecord : contains -File <|-- Record +UnfiledRecordContainer *-- "*" UnfiledRecordFolder +UnfiledRecordFolder *-- "*" Record + +FilePlan *- "*" RecordsManagementContainer +FilePlan "1" *- "*" RecordCategory + +RmSite "1" *- "1" FilePlan + +Hold "*" o- "*" FilePlanComponent : contains +HoldContainer *- "*" Hold +(FilePlanComponent, Hold) .. Frozen TransferContainer *- "*" Transfer Transfer *- "*" Record +DispositionLifecycle o- "0..1" DispositionAction: nextDispositionAction +DispositionLifecycle o- "*" DispositionAction: dispositionActionHistory + +RetentionSchedule o- "*" DispositionActionDefinition +RetentionSchedule o- "*" FilePlanComponent + +DispositionAction O-- "*" EventExecution + Role o- "*" Capability User o- "*" Role Group o- "*" Role +Content o-- "*" SecurityMark : securityControls +User o-- "*" SecurityMark : clearance +Group o-- "*" SecurityMark : clearance + +SecurityGroup "1" *- "*" SecurityMark SecurityMark <|-- SecurityClassification Content o- "0..1" SecurityClassification -Record <|- EasyAccessRecord -Folder "1" o-- "*" EasyAccessRecord - -Content <|-- Folder -Content <|-- File - (Content, SecurityClassification) .. ClassificationInfo +ClassificationInfo *-- "*" SourceReference +ClassificationInfo *-- "0..1" DowngradeSchedule + @enduml \ No newline at end of file