All Downloads are FREE. Search and download functionalities are using the official Maven repository.

schemas.schema-form.json Maven / Gradle / Ivy

There is a newer version: 4.6.0-alpha.2
Show newest version
{
  "type" : "object",
  "id" : "urn:jsonschema:io:gravitee:am:identityprovider:jdbc:JdbcIdentityProviderConfiguration",
  "properties" : {
    "host" : {
      "type" : "string",
      "title": "Database connection host",
      "description": "IP address or DNS of the database server."
    },
    "port" : {
      "type": "number",
      "title": "Database connection port",
      "description": "Database server port number."
    },
    "protocol" : {
      "type": "string",
      "enum": ["postgresql", "mysql", "sqlserver", "mariadb"],
      "title": "Database driver identifier",
      "description": "Type of your relational database (RDBMS). PostgreSQL, MySQL, SQL Server, MariaDB, ..."
    },
    "database" : {
      "type" : "string",
      "title": "The database used to run query",
      "description": "The database used to run query to search for users."
    },
    "usersTable" : {
      "type" : "string",
      "default": "users",
      "title": "The table used to run query",
      "description": "The table used to run query to search for users."
    },
    "user" : {
      "type" : "string",
      "title": "Authentication user",
      "description": "User to access database."
    },
    "password" : {
      "type" : "string",
      "title": "Authentication password",
      "description": "User password.",
      "widget": "password",
      "sensitive": true
    },
    "selectUserByUsernameQuery" : {
      "type" : "string",
      "default": "SELECT * FROM users WHERE username = %s",
      "widget": "textarea",
      "title": "Query to find for a user using its identifier (username)",
      "description": "The query which is executed to search for an user using its identifier (username)."
    },
    "selectUserByMultipleFieldsQuery" : {
      "type": "string",
      "widget": "textarea",
      "title": "Query to find for a user using multiple fields (username or email)",
      "description": "The query which is executed to search for an user using its identifier (username) or another field (email). If this field isn't specified, the findUserByUsernameQuery is used"
    },
    "selectUserByEmailQuery" : {
      "type" : "string",
      "default": "SELECT * FROM users WHERE email = %s",
      "widget": "textarea",
      "title": "Query to find for a user using its email (email)",
      "description": "The query which is executed to search for an user using its email (email)."
    },
    "identifierAttribute": {
      "type": "string",
      "title": "User identifier attribute",
      "default": "id",
      "description": "Identifier field of your users"
    },
    "usernameAttribute" : {
      "type" : "string",
      "default": "username",
      "title": "User username attribute",
      "description": "Username field of your users"
    },
    "emailAttribute" : {
      "type" : "string",
      "default": "email",
      "title": "User email attribute",
      "description": "Email field of your users"
    },
    "passwordAttribute" : {
      "type" : "string",
      "default": "password",
      "title": "User password attribute",
      "description": "Password field of your users"
    },
    "passwordEncoder" : {
      "type": "string",
      "enum": ["BCrypt", "SHA", "SHA-1", "SHA-256", "SHA-384", "SHA-512", "MD5", "SHA-256+MD5", "None"],
      "default": "BCrypt",
      "title": "Password encoder",
      "description": "The encoding mechanism used to store user password value."
    },
    "passwordEncoderOptions": {
      "type": "object",
      "id": "urn:jsonschema:io:gravitee:am:identityprovider:jdbc:PasswordEncoderOptions",
      "htmlClass": "resource",
      "title": "Password Encoder Options",
      "properties": {
        "rounds": {
          "type": "number",
          "title": "Rounds",
          "description": "Number of iterations (useful only for BCrypt, SHA)"
        }
      }
    },
    "passwordEncoding" : {
      "type": "string",
      "title": "Password binary-to-text encoding",
      "description": "This property will cause the encoded pass to be returned as encoding text representation",
      "enum" : ["Base64", "Hex"]
    },
    "useDedicatedSalt" : {
      "type": "boolean",
      "title": "Separate salt from the password value ?"
    },
    "passwordSaltAttribute" : {
      "type" : "string",
      "title": "User password salt attribute",
      "description": "Password salt field of your users if any (make sure the column exists in your datatable)"
    },
    "passwordSaltLength" : {
      "type" : "number",
      "default" : 32,
      "title": "User password salt length in bytes",
      "description": "Password salt length in bytes"
    },
    "passwordSaltFormat" : {
      "type" : "string",
      "default" : "DIGEST",
      "enum": ["DIGEST", "APPENDING", "PREPENDING"],
      "title": "How is salt added to password ?",
      "description": "Password + salt format"
    },
    "userProvider" : {
      "type" : "boolean",
      "default": true,
      "title": "Allow CRUD operations",
      "description": "When enable, the user profile provided by the identity provider can be managed (CRUD operations)"
    },
    "options" : {
      "title": "Connection options",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "option": {
            "title": "Option",
            "description": "Connection option name (https://r2dbc.io/ for more information)",
            "type": "string"
          },
          "value": {
            "title": "Value",
            "description": "Connection option value (https://r2dbc.io/ for more information)",
            "type": "string"
          }
        }
      }
    }
  },
  "required": [
    "host",
    "protocol",
    "database",
    "usersTable",
    "user",
    "selectUserByUsernameQuery",
    "selectUserByEmailQuery",
    "identifierAttribute",
    "usernameAttribute",
    "passwordAttribute",
    "passwordEncoder"
  ]
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy