Aedilis
What is this?
An OAuth server on top of consul.
Why should I use this?
TODO
Installation
TODO
Expanding default entities with additional properties
Schema definition
Getting started
- Create folder "_schema" under path "_system/store"
- Create a key for the for the entity you would like to expand (e.g. user) and build a schema as this key's value.
Our Schema's are built upon JSON schema standard version 4. tv4 is used for validation.
Example for path "_system/store/_schema/user":
{
"type": "object",
"properties": {
"firstname": {
"type": "string",
"minLength": 2,
"title": "Firstname",
"validationMessage": "Firstname is required."
}
},
"required": [
"firstname"
]
}
Adding additional properties to entities
Additional properties are fields which can be added onto the core entities of Aedilis.
An example for expanding the User entity would be: (key path "_system/store/_schema/user")
{
"type": "object",
"properties": {
"firstname": {
"title": "Firstname",
"type": "string"
},
"lastname": {
"title": "Lastname",
"type": "string"
},
"email": {
"title": "Email",
"type": "string",
"pattern": "^\\S+@\\S+$",
"description": "Email will be used for evil."
},
"comment": {
"title": "Comment",
"type": "string",
"maxLength": 20,
"validationMessage": "Don't be greedy!"
}
},
"required": [
"firstname"
]
}
Common attributes for defining properties
Key | Description |
---|---|
type | the datatype for this property |
title | a title for this property |
pattern | a regular expression to validate this property |
maxLength | the maximum length for this property |
description | the description for this property |
validationMessage | the message to show when this property is invalid |
Known limitations
For now the extending of Aedilis entities is limited to the Client, User and Group type.
Dependencies
Aedilis makes use of the following Open Source libraries: