docs(distro-vertx) Rename headless to headless-es.
MODIFY
distro/vertx/src/main/resources/overlay/configs/conf-es.json
distro/vertx/src/main/resources/overlay/configs/conf-es.json
"flowType": "PASSWORD",
"requiredRole": "realm:apipublisher",
// Paste and overwrite your Keycloak config here.
- // Remember to change to *confidential client* type in KC console.
+ // Remember to change to *confidential client* type in KC console. TODO.
// See: https://msavy.gitbooks.io/apiman-production-guide/content/production-guide/gateway/vertx.html#_configuring_keycloak_authentication_for_the_gateway_api
"realm": "apiman",
"realm-public-key": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxyG61ohrfJQKNmDA/ePZtqZVpPXjwn3k3T+iWiTvMsxW2+WlnqIEmL5qZ09DMhBH9r50WZRO2gVoCb657Er9x0vfD6GNf/47XU2y33TX8axhP+hSwkv/VViaDlu4jQrfgPWz/FXMjWIZxg1xQS+nOBF2ScCRYWNQ/ZnUNnvrq8dGC2/AlyeYcgDUOdwlJuvgkGlF0QoVPQiRPurR3RwlG+BjL8JB3hbaAZhdJqwqApmGQbcpgLj2tODnlrZnEAp5cPPU/lgqCE1OOp78BAEiE91ZLPl/+D8qDHk+Maz0Io3bkeRZMXPpvtbL3qN+3GlF8Yz264HDSsTNrH+nd19tFQIDAQAB",

RENAME
distro/vertx/src/main/resources/overlay/configs/conf-headless.json
distro/vertx/src/main/resources/overlay/configs/conf-headless-es.json
-{ // Example Headless config
+{ // Example headless config with ES-based components (e.g. rate-limiting).
+ "variables": {
+ "apiman": {
+ "es": {
+ "protocol": "http",
+ "host": "localhost",
+ "port": 19200,
+ "username": null,
+ "password": null,
+ "timeout": 10000
+ }
+ }
+ },
+
"registry": {
"class": "io.apiman.gateway.engine.vertx.polling.URILoadingRegistry",
"config": {
- // Path to your apiman JSON config; see data format @ <link to docs>
- // Supports file, HTTP & HTTPS.
+ // Path to your apiman JSON config; see data format @ TODO <link to docs>
+ // Supports: file, HTTP & HTTPS.
"configUri": "file:///path/to/my/json/config.json",
// For HTTP/HTTPS auth is supported: BASIC, OAUTH2, KEYCLOAKOAUTH2
- // For more detail see: <link to docs>
+ // For more detail see: <link to docs> TODO
"auth": "NONE"
}
},
"tls": {
// Enable devMode for HTTPS connections (gateway trusts any certificate).
// This should *NOT* be used in production mode. *Use with great care.*
- "devMode": true,
+ "devMode": true
// Whether self-signed certificates should be automatically trusted. *Use with great care.*
// "allowSelfSigned": false,
"config": {
"client": {
"type": "jest",
- "protocol": "http",
- "host": "127.0.0.1",
- "port": "9200",
- "initialize": true
- //"username": "",
- //"password": ""
- //"index": ""
+ "protocol": "${apiman.es.protocol}",
+ "host": "${apiman.es.host}",
+ "port": "${apiman.es.port}",
+ "initialize": true,
+ "username": "${apiman.es.username}",
+ "password": "${apiman.es.password}",
+ "timeout": "${apiman.es.timeout}"
}
}
},
"components": {
- // LDAP Component Settings
- "ILdapComponent": {
- "class": "io.apiman.gateway.engine.impl.DefaultLdapComponent",
- "config": {}
- },
-
- // HTTP Component Settings
- "IHttpClientComponent": {
- "class": "io.apiman.gateway.platforms.vertx3.components.HttpClientComponentImpl",
- "config": {}
- },
-
// Shared State Component Settings
"ISharedStateComponent": {
"class": "io.apiman.gateway.engine.es.ESSharedStateComponent",
"config": {
"client": {
"type": "jest",
- "protocol": "http",
- "host": "127.0.0.1",
- "port": "9200",
- "initialize": true
- //"username": "",
- //"password": ""
- //"index": ""
+ "protocol": "${apiman.es.protocol}",
+ "host": "${apiman.es.host}",
+ "port": "${apiman.es.port}",
+ "initialize": true,
+ "username": "${apiman.es.username}",
+ "password": "${apiman.es.password}",
+ "timeout": "${apiman.es.timeout}"
}
}
},
"config": {
"client": {
"type": "jest",
- "protocol": "http",
- "host": "127.0.0.1",
- "port": "9200",
- "initialize": true
- //"username": "",
- //"password": ""
- //"index": ""
+ "protocol": "${apiman.es.protocol}",
+ "host": "${apiman.es.host}",
+ "port": "${apiman.es.port}",
+ "initialize": true,
+ "username": "${apiman.es.username}",
+ "password": "${apiman.es.password}",
+ "timeout": "${apiman.es.timeout}"
+ }
}
+ },
+
+ // Cache Store Component Settings
+ "ICacheStoreComponent": {
+ "class": "io.apiman.gateway.engine.es.ESCacheStoreComponent",
+ "config": {
+ "type": "jest",
+ "protocol": "${apiman.es.protocol}",
+ "host": "${apiman.es.host}",
+ "port": "${apiman.es.port}",
+ "initialize": true,
+ "username": "${apiman.es.username}",
+ "password": "${apiman.es.password}",
+ "timeout": "${apiman.es.timeout}"
}
},
+ // Execute Blocking Component
+ "IExecuteBlockingComponent": {
+ "class": "io.apiman.gateway.platforms.vertx3.components.ExecuteBlockingComponentImpl",
+ "config": {}
+ },
+
+ // JDBC Component Settings
+ "IJdbcComponent": {
+ "class": "io.apiman.gateway.platforms.vertx3.components.JdbcClientComponentImpl",
+ "config": {}
+ },
+
+ // LDAP Component Settings
+ "ILdapComponent": {
+ "class": "io.apiman.gateway.platforms.vertx3.components.LdapClientComponentImpl",
+ "config": {}
+ },
+
+ // HTTP Component Settings
+ "IHttpClientComponent": {
+ "class": "io.apiman.gateway.platforms.vertx3.components.HttpClientComponentImpl",
+ "config": {}
+ },
+
// Policy Failure Factory Component
"IPolicyFailureFactoryComponent": {
"class": "io.apiman.gateway.platforms.vertx3.components.PolicyFailureFactoryComponent",
"IBufferFactoryComponent": {
"class": "io.apiman.gateway.platforms.vertx3.components.BufferFactoryComponentImpl",
"config": {}
- },
-
- // Execute Blocking Component
- "IExecuteBlockingComponent": {
- "class": "io.apiman.gateway.platforms.vertx3.components.ExecuteBlockingComponentImpl",
- "config": {}
}
},
// You can force a particular endpoint to be reported here (e.g.
// if you have some clustered setup with exotic DNS setup)
- //"publicEndpoint": "path-to-gateway.io:8081/foo/bar",
+ //"publicEndpoint": "localhost",
// Verticle configuration
// Port - The port a given verticle listens on (where relevant)
// Configure the following SSL section to enable SSL/TLS.
"https": {
"port": 8443,
- "count": 0 // "auto"
+ "count": 0
},
// The Gateway API; this will be the port to set in the UI.
// e.g. http://localhost:8081 or https://gateway.machine:8081
}
},
- // When reporting an API's endpoint, prefer secure (i.e. https)
- // If you enable SSL/TLS for the API, you should probably set this to true.
- "preferSecure": false,
-
// SSL configuration to the gateway's *front end* (i.e. client <-> gateway)
// and the Gateway API (i.e. Manager -> Gateway API).
// "ssl": {
"config": {
"flowType": "PASSWORD",
"requiredRole": "realm:apipublisher",
- // Paste your Keycloak config here. Remember to change to confidential client type.
+ // Paste and overwrite your Keycloak config here.
+ // Remember to change to *confidential client* type in KC console. TODO
// See: https://msavy.gitbooks.io/apiman-production-guide/content/production-guide/gateway/vertx.html#_configuring_keycloak_authentication_for_the_gateway_api
"realm": "apiman",
"realm-public-key": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxyG61ohrfJQKNmDA/ePZtqZVpPXjwn3k3T+iWiTvMsxW2+WlnqIEmL5qZ09DMhBH9r50WZRO2gVoCb657Er9x0vfD6GNf/47XU2y33TX8axhP+hSwkv/VViaDlu4jQrfgPWz/FXMjWIZxg1xQS+nOBF2ScCRYWNQ/ZnUNnvrq8dGC2/AlyeYcgDUOdwlJuvgkGlF0QoVPQiRPurR3RwlG+BjL8JB3hbaAZhdJqwqApmGQbcpgLj2tODnlrZnEAp5cPPU/lgqCE1OOp78BAEiE91ZLPl/+D8qDHk+Maz0Io3bkeRZMXPpvtbL3qN+3GlF8Yz264HDSsTNrH+nd19tFQIDAQAB",
"auth-server-url": "http://localhost:8080/auth",
"ssl-required": "none",
- "resource": "apiman",
+ "resource": "apiman-gateway-api",
"credentials": {
- "secret": "5af5458f-0a96-4251-8f92-08ebcc3a8aa2"
- }
+ "secret": "217b725d-7790-47a7-a3fc-5cf31f92a8db"
}
+ // End paste here
}
+ },
+
+ // When reporting an API's endpoint, prefer secure (i.e. https)
+ "preferSecure": false
}

DELETE
gateway/platforms/vertx3/vertx3/examples/configs/conf-headless.json
-{ // Example Headless config
- "registry": {
- "class": "io.apiman.gateway.engine.vertx.polling.URILoadingRegistry",
- "config": {
- // Path to your apiman JSON config; see data format @ <link to docs>
- // Supports file, HTTP & HTTPS.
- "configUri": "file:///path/to/my/json/config.json",
- // For HTTP/HTTPS auth is supported: BASIC, OAUTH2, KEYCLOAKOAUTH2
- // For more detail see: <link to docs>
- "auth": "NONE"
- }
- },
-
- // Gateway error writer
- // A "trace" version of the error writer - comment out/remove this to suppress stack traces
- // in the JSON/XML payload returned by the gateway when an error occurs.
- "writers": {
- "error": {
- "class": "io.apiman.gateway.engine.impl.TracePolicyErrorWriter",
- "config": {}
- }//,
- // "policy-failure": {
- // "class": "",
- // "config": {}
- // }
- },
-
- "encrypter": {
- "class": "io.apiman.gateway.engine.impl.DefaultDataEncrypter",
- "config": {}
- },
-
- "plugin-registry": {
- "class": "io.apiman.gateway.platforms.vertx3.engine.VertxPluginRegistry",
- "config": {}
- },
-
- "connector-factory": {
- "class": "io.apiman.gateway.platforms.vertx3.connector.ConnectorFactory",
- "config": {
- // -----------------------------------------------
- // SSL/TLS settings for the gateway connector(s).
- // -----------------------------------------------
- "tls": {
- // Enable devMode for HTTPS connections (gateway trusts any certificate).
- // This should *NOT* be used in production mode. *Use with great care.*
- "devMode": true,
-
- // Whether self-signed certificates should be automatically trusted. *Use with great care.*
- // "allowSelfSigned": false,
-
- // Whether certificate host checks should be bypassed. *Use with great care.*
- // "allowAnyHost": false,
-
- // Trust store contains certificate(s) trusted by gateway.
- // "trustStore": "/path/to/your/truststore.jks",
- // "trustStorePassword": "abc123",
-
- // Key store contains gateway's keys (including private components: keep it safe).
- // "keyStore": "/path/to/your/keystore.jks",
- // "keyStorePassword": "abc123",
-
- // By default all keys can be used (will try all). If alias list provided, will only attempt to use listed keys.
- // "keyAliases": "mykey,myotherkey",
-
- // Allowed TLS/SSL protocols and ciphers suites as CSV. Availability will vary depending on your JVM impl.
- // Uses JVM defaults depending if not explicitly provided.
- // See: https://docs.oracle.com/javase/7/docs/technotes/guides/security/SunProviders.html
- // You may wish to consider global JVM settings by modifying java.security
- // "allowedProtocols": "TLSv1.2,TLSv1.1",
- // "allowedCiphers": "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA,...",
- // "disallowedCiphers": "..."
- }
- }
- },
-
- "policy-factory": {
- "class": "io.apiman.gateway.engine.policy.PolicyFactoryImpl",
- "config": {}
- },
-
- // Elasticsearch Metrics Settings
- "metrics": {
- "class": "io.apiman.gateway.engine.es.ESMetrics",
- "config": {
- "client": {
- "type": "jest",
- "protocol": "http",
- "host": "127.0.0.1",
- "port": "9200",
- "initialize": true
- //"username": "",
- //"password": ""
- //"index": ""
- }
- }
- },
-
- "components": {
- // LDAP Component Settings
- "ILdapComponent": {
- "class": "io.apiman.gateway.engine.impl.DefaultLdapComponent",
- "config": {}
- },
-
- // HTTP Component Settings
- "IHttpClientComponent": {
- "class": "io.apiman.gateway.platforms.vertx3.components.HttpClientComponentImpl",
- "config": {}
- },
-
- // Shared State Component Settings
- "ISharedStateComponent": {
- "class": "io.apiman.gateway.engine.es.ESSharedStateComponent",
- "config": {
- "client": {
- "type": "jest",
- "protocol": "http",
- "host": "127.0.0.1",
- "port": "9200",
- "initialize": true
- //"username": "",
- //"password": ""
- //"index": ""
- }
- }
- },
-
- // Rate Limiter Component Settings
- "IRateLimiterComponent": {
- "class": "io.apiman.gateway.engine.es.ESRateLimiterComponent",
- "config": {
- "client": {
- "type": "jest",
- "protocol": "http",
- "host": "127.0.0.1",
- "port": "9200",
- "initialize": true
- //"username": "",
- //"password": ""
- //"index": ""
- }
- }
- },
-
- // Policy Failure Factory Component
- "IPolicyFailureFactoryComponent": {
- "class": "io.apiman.gateway.platforms.vertx3.components.PolicyFailureFactoryComponent",
- "config": {}
- },
-
- // Buffer Factory Component
- "IBufferFactoryComponent": {
- "class": "io.apiman.gateway.platforms.vertx3.components.BufferFactoryComponentImpl",
- "config": {}
- },
-
- // Execute Blocking Component
- "IExecuteBlockingComponent": {
- "class": "io.apiman.gateway.platforms.vertx3.components.ExecuteBlockingComponentImpl",
- "config": {}
- }
- },
-
- // Host-name to bind to for this machine.
- "hostname": "localhost",
-
- // You can force a particular endpoint to be reported here (e.g.
- // if you have some clustered setup with exotic DNS setup)
- //"publicEndpoint": "path-to-gateway.io:8081/foo/bar",
-
- // Verticle configuration
- // Port - The port a given verticle listens on (where relevant)
- // Count - Number of given verticle type launched
- "verticles": {
- "http": {
- "port": 8082,
- "count": "auto"
- },
- // Configure the following SSL section to enable SSL/TLS.
- "https": {
- "port": 8443,
- "count": 0
- },
- // The Gateway API; this will be the port to set in the UI.
- // e.g. http://localhost:8081 or https://gateway.machine:8081
- // Configure the following SSL section to enable SSL/TLS.
- "api": {
- "port": 8081,
- "count": 1
- }
- },
-
- // When reporting an API's endpoint, prefer secure (i.e. https)
- // If you enable SSL/TLS for the API, you should probably set this to true.
- "preferSecure": false,
-
- // SSL configuration to the gateway's *front end* (i.e. client <-> gateway)
- // and the Gateway API (i.e. Manager -> Gateway API).
- // "ssl": {
- // "keystore": {
- // "path": "/the/keystore/path/here.jks",
- // "password": "password-here"
- // },
- // "truststore": {
- // "path": "/the/truststore/path/here.jks",
- // "password": "password-here"
- // }
- // },
-
- // API authentication; presently just BASIC auth.
- "auth": {
- "type": "keycloak",
- "config": {
- "flowType": "PASSWORD",
- "requiredRole": "realm:apipublisher",
- // Paste your Keycloak config here. Remember to change to confidential client type.
- // See: https://msavy.gitbooks.io/apiman-production-guide/content/production-guide/gateway/vertx.html#_configuring_keycloak_authentication_for_the_gateway_api
- "realm": "apiman",
- "realm-public-key": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxyG61ohrfJQKNmDA/ePZtqZVpPXjwn3k3T+iWiTvMsxW2+WlnqIEmL5qZ09DMhBH9r50WZRO2gVoCb657Er9x0vfD6GNf/47XU2y33TX8axhP+hSwkv/VViaDlu4jQrfgPWz/FXMjWIZxg1xQS+nOBF2ScCRYWNQ/ZnUNnvrq8dGC2/AlyeYcgDUOdwlJuvgkGlF0QoVPQiRPurR3RwlG+BjL8JB3hbaAZhdJqwqApmGQbcpgLj2tODnlrZnEAp5cPPU/lgqCE1OOp78BAEiE91ZLPl/+D8qDHk+Maz0Io3bkeRZMXPpvtbL3qN+3GlF8Yz264HDSsTNrH+nd19tFQIDAQAB",
- "auth-server-url": "http://localhost:8080/auth",
- "ssl-required": "none",
- "resource": "apiman",
- "credentials": {
- "secret": "5af5458f-0a96-4251-8f92-08ebcc3a8aa2"
- }
- }
- }
-}

docs(distro-vertx) Rename headless to headless-es.