scim_proto/
constants.rs

1pub const SCIM_CONTENT_TYPE: &str = "application/scim+json";
2
3pub const SCIM_SCHEMA_PREIX: &str = "urn:ietf:params:scim:api:";
4
5// https://datatracker.ietf.org/doc/html/rfc7643#section-2.1
6// Attrs must contain $ - _ digit alpha only
7// case insense.
8
9pub const SCIM_SCHEMA_USER: &str = "urn:ietf:params:scim:schemas:core:2.0:User";
10pub const SCIM_SCHEMA_GROUP: &str = "urn:ietf:params:scim:schemas:core:2.0:Group";
11
12#[cfg(test)]
13pub(crate) const RFC7643_USER: &str = r#"
14{
15  "schemas": [
16    "urn:ietf:params:scim:schemas:core:2.0:User"
17  ],
18  "id": "2819c223-7f76-453a-919d-413861904646",
19  "externalId": "701984",
20  "userName": "bjensen@example.com",
21  "name": {
22    "formatted": "Ms. Barbara J Jensen, III",
23    "familyName": "Jensen",
24    "givenName": "Barbara",
25    "middleName": "Jane",
26    "honorificPrefix": "Ms.",
27    "honorificSuffix": "III"
28  },
29  "displayName": "Babs Jensen",
30  "nickName": "Babs",
31  "profileUrl": "https://login.example.com/bjensen",
32  "emails": [
33    {
34      "value": "bjensen@example.com",
35      "type": "work",
36      "primary": true
37    },
38    {
39      "value": "babs@jensen.org",
40      "type": "home"
41    }
42  ],
43  "addresses": [
44    {
45      "type": "work",
46      "streetAddress": "100 Universal City Plaza",
47      "locality": "Hollywood",
48      "region": "CA",
49      "postalCode": "91608",
50      "country": "USA",
51      "formatted": "100 Universal City Plaza\nHollywood, CA 91608 USA",
52      "primary": true
53    },
54    {
55      "type": "home",
56      "streetAddress": "456 Hollywood Blvd",
57      "locality": "Hollywood",
58      "region": "CA",
59      "postalCode": "91608",
60      "country": "USA",
61      "formatted": "456 Hollywood Blvd\nHollywood, CA 91608 USA"
62    }
63  ],
64  "phoneNumbers": [
65    {
66      "value": "555-555-5555",
67      "type": "work"
68    },
69    {
70      "value": "555-555-4444",
71      "type": "mobile"
72    }
73  ],
74  "ims": [
75    {
76      "value": "someaimhandle",
77      "type": "aim"
78    }
79  ],
80  "photos": [
81    {
82      "value": "https://photos.example.com/profilephoto/72930000000Ccne/F",
83      "type": "photo"
84    },
85    {
86      "value": "https://photos.example.com/profilephoto/72930000000Ccne/T",
87      "type": "thumbnail"
88    }
89  ],
90  "userType": "Employee",
91  "title": "Tour Guide",
92  "preferredLanguage": "en-US",
93  "locale": "en-US",
94  "timezone": "America/Los_Angeles",
95  "active": true,
96  "password": "t1meMa$heen",
97  "groups": [
98    {
99      "value": "e9e30dba-f08f-4109-8486-d5c6a331660a",
100      "$ref": "https://example.com/v2/Groups/e9e30dba-f08f-4109-8486-d5c6a331660a",
101      "display": "Tour Guides"
102    },
103    {
104      "value": "fc348aa8-3835-40eb-a20b-c726e15c55b5",
105      "$ref": "https://example.com/v2/Groups/fc348aa8-3835-40eb-a20b-c726e15c55b5",
106      "display": "Employees"
107    },
108    {
109      "value": "71ddacd2-a8e7-49b8-a5db-ae50d0a5bfd7",
110      "$ref": "https://example.com/v2/Groups/71ddacd2-a8e7-49b8-a5db-ae50d0a5bfd7",
111      "display": "US Employees"
112    }
113  ],
114  "x509Certificates": [
115    {
116      "value": "MIIDQzCCAqygAwIBAgICEAAwDQYJKoZIhvcNAQEFBQAwTjELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFDASBgNVBAoMC2V4YW1wbGUuY29tMRQwEgYDVQQDDAtleGFtcGxlLmNvbTAeFw0xMTEwMjIwNjI0MzFaFw0xMjEwMDQwNjI0MzFaMH8xCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRQwEgYDVQQKDAtleGFtcGxlLmNvbTEhMB8GA1UEAwwYTXMuIEJhcmJhcmEgSiBKZW5zZW4gSUlJMSIwIAYJKoZIhvcNAQkBFhNiamVuc2VuQGV4YW1wbGUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA7Kr+Dcds/JQ5GwejJFcBIP682X3xpjis56AK02bc1FLgzdLI8auoR+cC9/Vrh5t66HkQIOdA4unHh0AaZ4xL5PhVbXIPMB5vAPKpzz5iPSi8xO8SL7I7SDhcBVJhqVqr3HgllEG6UClDdHO7nkLuwXq8HcISKkbT5WFTVfFZzidPl8HZ7DhXkZIRtJwBweq4bvm3hM1Os7UQH05ZS6cVDgweKNwdLLrT51ikSQG3DYrl+ft781UQRIqxgwqCfXEuDiinPh0kkvIi5jivVu1Z9QiwlYEdRbLJ4zJQBmDrSGTMYn4lRc2HgHO4DqB/bnMVorHB0CC6AV1QoFK4GPe1LwIDAQABo3sweTAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVyYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQU8pD0U0vsZIsaA16lL8En8bx0F/gwHwYDVR0jBBgwFoAUdGeKitcaF7gnzsNwDx708kqaVt0wDQYJKoZIhvcNAQEFBQADgYEAA81SsFnOdYJtNg5Tcq+/ByEDrBgnusx0jloUhByPMEVkoMZ3J7j1ZgI8rAbOkNngX8+pKfTiDz1RC4+dx8oU6Za+4NJXUjlL5CvV6BEYb1+QAEJwitTVvxB/A67g42/vzgAtoRUeDov1+GFiBZ+GNF/cAYKcMtGcrs2i97ZkJMo="
117    }
118  ],
119  "meta": {
120    "resourceType": "User",
121    "created": "2010-01-23T04:56:22Z",
122    "lastModified": "2011-05-13T04:42:34Z",
123    "version": "W/\"a330bc54f0671c9\"",
124    "location": "https://example.com/v2/Users/2819c223-7f76-453a-919d-413861904646"
125  }
126}
127"#;
128
129#[cfg(test)]
130pub(crate) const RFC7643_GROUP: &str = r#"
131{
132  "schemas": [
133    "urn:ietf:params:scim:schemas:core:2.0:Group"
134  ],
135  "id": "e9e30dba-f08f-4109-8486-d5c6a331660a",
136  "displayName": "Tour Guides",
137  "members": [
138    {
139      "value": "2819c223-7f76-453a-919d-413861904646",
140      "$ref": "https://example.com/v2/Users/2819c223-7f76-453a-919d-413861904646",
141      "display": "Babs Jensen"
142    },
143    {
144      "value": "902c246b-6245-4190-8e05-00816be7344a",
145      "$ref": "https://example.com/v2/Users/902c246b-6245-4190-8e05-00816be7344a",
146      "display": "Mandy Pepperidge"
147    }
148  ],
149  "meta": {
150    "resourceType": "Group",
151    "created": "2010-01-23T04:56:22Z",
152    "lastModified": "2011-05-13T04:42:34Z",
153    "version": "W/\"3694e05e9dff592\"",
154    "location": "https://example.com/v2/Groups/e9e30dba-f08f-4109-8486-d5c6a331660a"
155  }
156}
157"#;