|
106 | 106 | # whatever that means for you receiving system in your model code.
|
107 | 107 | #
|
108 | 108 | # optional_value_fields_required: false
|
| 109 | + |
| 110 | + # The SCIM standard `/Schemas` endpoint lists, by default, all known schema |
| 111 | + # definitions with the mutabilty (read-write, read-only, write-only) state |
| 112 | + # described by those definitions, and includes all defined attributes. For |
| 113 | + # user-defined schema, this will typically exactly match your underlying |
| 114 | + # mapped attribute and model capability - it wouldn't make sense to define |
| 115 | + # your own schema that misrepresented the implementation! For core SCIM RFC |
| 116 | + # schema, though, you might want to only list actually mapped attributes. |
| 117 | + # Further, if you happen to have a non-compliant implementation especially |
| 118 | + # in relation to mutability of some attributes, you may want to report that |
| 119 | + # accurately in the '/Schemas' list, for auto-discovery purposes. To switch |
| 120 | + # to a significantly slower but more accurate render method for the list, |
| 121 | + # driven by your resource subclasses and their attribute maps, set: |
| 122 | + # |
| 123 | + # schema_list_from_attribute_mappings: [...array...] |
| 124 | + # |
| 125 | + # ...where you provide an Array of *models*, your classes that include the |
| 126 | + # Scimitar::Resources::Mixin module and, therefore, define an attribute map |
| 127 | + # translating SCIM schema attributes into actual implemented data. These |
| 128 | + # must *uniquely* describe, via the Scimitar resources they each declare in |
| 129 | + # their Scimitar::Resources::Mixin::scim_resource_type implementation, the |
| 130 | + # set of schemas and extended schemas you want to render. Should resources |
| 131 | + # share schema, the '/Schemas' endpoint will fail since it cannot determine |
| 132 | + # which model attribute map it should use and it needs the map in order to |
| 133 | + # resolve the differences (if any) between what the schema might say, and |
| 134 | + # what the actual underlying model supports. |
| 135 | + # |
| 136 | + # It is further _very_ _strongly_ _recommended_ that, for any |
| 137 | + # +scim_attributes_map+ containing a collection which has "list:" key (for |
| 138 | + # an associative array of zero or more entities; the Groups to which a User |
| 139 | + # might belong is a good example) then you should also specify the "class:" |
| 140 | + # key, giving the class used for objects in that associated collection. The |
| 141 | + # class *must* include Scimitar::Resources::Mixin, since its own attribute |
| 142 | + # map is consulted in order to render the part of the schema describing |
| 143 | + # those associated properties in the owning resource. If you don't do this, |
| 144 | + # and if you're using ActiveRecord, then Scimitar attempts association |
| 145 | + # reflection to determine the collection class - but that's more fragile |
| 146 | + # than just being told the exact class in the attribute map. No matter how |
| 147 | + # this class is determined, though, it must be possible to create a simple |
| 148 | + # instance with +new+ and no parameters, since that's needed in order to |
| 149 | + # call Scimitar::Resources::Mixin#scim_mutable_attributes. |
109 | 150 | })
|
110 | 151 |
|
111 | 152 | end
|
0 commit comments