forked from internet2/event-msg
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
nckroy
committed
Aug 12, 2020
1 parent
a0d553d
commit 3e948e4
Showing
1 changed file
with
98 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,98 @@ | ||
| **Title**: FM Message Schema | ||
|
|
||
| **Status**: Implementer’s Draft (I-D) | ||
|
|
||
| **Version**: 1.1 | ||
|
|
||
| **Date**: 2020-07-29 | ||
|
|
||
| **Prepared by**: Nic Roy, Internet2 Trust and Identity Services | ||
|
|
||
| **Contributors**: Nic Roy, David Shafer, Keith Hazelton, Shannon Roddy | ||
|
|
||
| === Notes: | ||
|
|
||
| * ? == nullable field. Field must not contain null values if not prepended with “?” | ||
|
|
||
| * Null fields are represented in the JSON-standard way, with a non-quoted literal value of null. | ||
|
|
||
| * All values are strings unless otherwise specified in [ ] after the value | ||
|
|
||
| * “read” actions are in here specifically for situations where an object instance is included within a message for a different object type | ||
|
|
||
| * All eventTypes determine the behavior in the source system and do not dictate what the clients should do with them | ||
|
|
||
| == Object type: FMperson (person) | ||
|
|
||
| === Attributes: | ||
|
|
||
| resourceTypeVersion: { string literal: “1.0.0” } | ||
|
|
||
| resourceType: { string literal: “FMperson” } | ||
|
|
||
| schemas: { collection of schema references for the message format(s) } | ||
|
|
||
| eventType: {create, read, update, delete} | ||
|
|
||
| sorID: ? {COmanage user identifier (COmanage-generated ePPN- this will be null at first, then we will start flowing it into FM user models from COmanage. Need to add this as an attribute on FM user model/database now)} Format should be according to: https://github.internet2.edu/api-schema/person/blob/master/schema/minimalRegistryPerson.json[https://github.internet2.edu/api-schema/person/blob/master/schema/minimalRegistryPerson.json] and “source” should be “icp-comanage” for COmanage-sourced identifiers. The FM primary int32 user record key should also be included as a “source” of “fm-user-pk” | ||
|
|
||
| lastModified: ? { ISO 8601 date time stamp of object most recent modification } | ||
|
|
||
| email: ? { email address formatted according to https://github.internet2.edu/api-schema/person/blob/master/schema/minimalRegistryPerson.json[https://github.internet2.edu/api-schema/person/blob/master/schema/minimalRegistryPerson.json]} “emailType” should be “fm-user-email” | ||
|
|
||
| ePPN: ? { eduPersonPrincipalName/”username”} | ||
|
|
||
| name: ? { name element formatted according to https://github.internet2.edu/api-schema/person/blob/master/schema/minimalRegistryPerson.json[https://github.internet2.edu/api-schema/person/blob/master/schema/minimalRegistryPerson.json], including all properties that exist for this person in the FM database } | ||
|
|
||
| phone: ? { phone number(s) formatted according to https://github.internet2.edu/api-schema/person/blob/master/schema/minimalRegistryPerson.json[https://github.internet2.edu/api-schema/person/blob/master/schema/minimalRegistryPerson.json] containing zero or more phoneNumber/phoneType elements } | ||
|
|
||
| fmIsIdentityProofed: ? {if LOA < 1, should be “false”; if LOA > 1, should be “true”} [bool] | ||
|
|
||
| == Object type: FMrole (role) | ||
|
|
||
| === Attributes: | ||
|
|
||
| resourceTypeVersion: { string literal: “1.0.0” } | ||
|
|
||
| resourceType: { string literal: “FMrole” } | ||
|
|
||
| schemas: { collection of schema references for the message format(s) } | ||
|
|
||
| lastModified: ? { ISO 8601 date time stamp of object most recent modification } | ||
|
|
||
| eventType: {create, read, update, delete, personadd, personremove } | ||
|
|
||
| sorID: ? { FM role primary key [int32] } Format should be according to: https://github.internet2.edu/api-schema/person/blob/master/schema/minimalRegistryPerson.json[https://github.internet2.edu/api-schema/person/blob/master/schema/minimalRegistryPerson.json] and “source” should be “fm-role-pk” | ||
|
|
||
| roleName: {Name of role: {exec, site-admin, delegated-admin, registration-authority-admin, cert-rao, etc.} | ||
|
|
||
| FMorg: {embedded FMorg object that this role applies to, see below. Action should be “read” in the embedded FMorg in this case} [FMorg] | ||
|
|
||
| FMperson: ? {If message action is personadd or personremove, this value MUST NOT be null, and this attribute should contain a collection of one or more embedded FMperson objects that the change applies to, see above. Action should be “read” in the embedded FMperson in this case} [FMperson] | ||
|
|
||
| == Object type: FMorg (organization) | ||
|
|
||
| === Attributes: | ||
|
|
||
| resourceTypeVersion: { string literal: “1.0.0” } | ||
|
|
||
| resourceType: { string literal: “FMorg” } | ||
|
|
||
| schemas: { collection of schema references for the message format(s) } | ||
|
|
||
| lastModified: ? { ISO 8601 date time stamp of object most recent modification } | ||
|
|
||
| eventType: {create, read, update, delete} | ||
|
|
||
| sorID: ? { FM role primary key [int32] } Format should be according to: https://github.internet2.edu/api-schema/person/blob/master/schema/minimalRegistryPerson.json[https://github.internet2.edu/api-schema/person/blob/master/schema/minimalRegistryPerson.json] and “source” should be “fm-org-pk”; Also include SalesForce org identifier with a “source” set to “fm-sf-id” | ||
|
|
||
| orgName: ? {FM organization name NOTE: These can include punctuation and other special characters that Grouper doesn’t like. Will need to post-normalize them in message consumers } | ||
|
|
||
| orgDisplayName: ? {FM organization display name} | ||
|
|
||
| orgURL: ? {FM organization URL} | ||
|
|
||
| == Object type: FederationMetadata | ||
|
|
||
| (CURRENTLY OUT OF SCOPE) | ||
| ** |