Where communities thrive

  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
    Markus Witte
    @brasseld Is there any documentation about how to develop a gravitee service? I tried to write an own service and used the gravitee-gateway-service-ratelimit/gravitee-policy-ratelimit as the development base. The new AbstractService .doStart() method is called as expected and the Service is registered without any exception by using parentBeanFactory.registerSingleton(...). Unfortunately in my Policy which should use this singleton instance, it will not resolve my service from the context (executionContext.getComponent(...)). Is there any additional step to register my service? Or what I am doing wrong?
    15 replies
    Tom Brendlé

    Hi Room, I'm trying to setup a gmail SMTP using helm,

      enabled: true
      host: smtp.gmail.com
      port: 587
      from: test@gmail.com
      username: test@gmail.com
      password: password
      subject: "[Gravitee] %s"
        auth: true
        starttlsEnable: true
        ssl.trust: smtp.gmail.com

    Unfortunately I get this error :

    11:31:17.708 [SimpleAsyncTaskExecutor-5] ERROR i.g.r.a.s.impl.EmailServiceImpl - Error while sending email notification
    org.springframework.mail.MailSendException: Mail server connection failed; nested exception is javax.mail.MessagingException: Could not convert socket to TLS;
      nested exception is:
        javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate). Failed messages: javax.mail.MessagingException: Could not convert socket to TLS;

    Seems something is wrong with TLS here .. any idea on how I can debug this ?

    Thank you in advance :)

    5 replies
    Hello is there a guide to use Consul.io with Gravitee?
    2 replies

    hello, i am using the gravitee 3.x GUI for the first time, and I am trying to determine what the baseURL is for my APIs. In gravitee 2.x I was able to just open the API gallery, select the API endpoint's Overview, and the baseURL was the first thing listed, front and center. In gravitee 3.x, I no longer see a comparable field. I have been digging around for awhile with no luck,

    I also tried searching the gravitee API documentation to see if there i can run a curl command against a restful endpoint to GET the baseURL for a given API entry, but when i searched the 3.x documentation for "baseURL" I only got hits on Identity provider creation.

    I may be missing something obvious in using the new GUI, I don't have a lot of experience tinkering with it. But any help would be greatly appreciated!

    3 replies
    I created a new issue. can you reply quickly? gravitee-io/issues#6177
    i tryied to deploy gravitee-apim on kubernetes (microk8s) with the following command:

    microk8s helm3 install --set mongo.uri=mongodb://gravitee:gravitee@mongodb.default.svc.cluster.local:27017/gravitee?connectTimeoutMS=30000 --set elasticsearch.enabled=true --set es.endpoints={http://graviteeio-apim3-elasticsearch-client.default.svc.cluster.local:9200} graviteeio-apim3 graviteeio/apim3

    but i get the following warnings in the apim3-api pod :

    14:53:42.741 [vertx-blocked-thread-checker] WARN i.v.core.impl.BlockedThreadChecker - Thread Thread[vert.x-eventloop-thread-0,5,main] has been blocked for 2391 ms, time limit is 2000 ms
    14:53:43.740 [vertx-blocked-thread-checker] WARN i.v.core.impl.BlockedThreadChecker - Thread Thread[vert.x-eventloop-thread-0,5,main] has been blocked for 3391 ms, time limit is 2000 ms
    14:53:44.740 [vertx-blocked-thread-checker] WARN i.v.core.impl.BlockedThreadChecker - Thread Thread[vert.x-eventloop-thread-0,5,main] has been blocked for 4391 ms, time limit is 2000 ms
    14:53:45.750 [vertx-blocked-thread-checker] WARN i.v.core.impl.BlockedThreadChecker - Thread Thread[vert.x-eventloop-thread-0,5,main] has been blocked for 5391 ms, time limit is 2000 ms
    io.vertx.core.VertxException: Thread blocked

    After a loop blocked thread i get the follwing error:

    14:53:52.349 [graviteeio-node] ERROR i.g.r.a.s.GraviteeApisContainer - An unexpected error occurs while starting Gravitee.io - Rest APIs
    java.lang.NullPointerException: Name is null
    at java.base/java.lang.Enum.valueOf(Unknown Source)
    at io.gravitee.repository.management.model.RoleScope.valueOf(RoleScope.java:22)
    at io.gravitee.repository.mongodb.management.MongoRoleRepository.map(MongoRoleRepository.java:137)
    at java.base/java.util.stream.ReferencePipeline$3$1.accept(Unknown Source)
    at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(Unknown Source)
    at java.base/java.util.stream.AbstractPipeline.copyInto(Unknown Source)
    at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source)
    at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(Unknown Source)
    at java.base/java.util.stream.AbstractPipeline.evaluate(Unknown Source)
    at java.base/java.util.stream.ReferencePipeline.collect(Unknown Source)
    at io.gravitee.repository.mongodb.management.MongoRoleRepository.findAllByReferenceIdAndReferenceType(MongoRoleRepository.java:173)
    at io.gravitee.rest.api.repository.proxy.RoleRepositoryProxy.findAllByReferenceIdAndReferenceType(RoleRepositoryProxy.java:61)
    at io.gravitee.rest.api.service.impl.RoleServiceImpl.findAllByOrganization(RoleServiceImpl.java:104)
    at io.gravitee.rest.api.service.impl.RoleServiceImpl.findAll(RoleServiceImpl.java:97)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.base/java.lang.reflect.Method.invoke(Unknown Source)
    at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:344)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:198)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
    at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)
    at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)
    at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:215)
    at com.sun.proxy.$Proxy47.findAll(Unknown Source)
    at io.gravitee.rest.api.service.impl.upgrade.DefaultRolesUpgrader.upgrade(DefaultRolesUpgrader.java:50)
    at io.gravit
    Full logs in attachment.
    Can you please help us?
    Thanks for replies @brasseld
    André Santos
    I am using docker compose to launch gravitee to connect to AWS ES managed service and Document DB. With just the ES everything is working fine, when I delete the mongodb dependency and change the mongo_uri for the documentDB from AWS I get an error :
    org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'graviteeTransactionManager' available: No matching PlatformTransactionManager bean found for qualifier 'graviteeTransactionManager' - neither qualifier match nor bean name match!
    at org.springframework.beans.factory.annotation.BeanFactoryAnnotationUtils.qualifiedBeanOfType(BeanFactoryAnnotationUtils.java:109)
    at org.springframework.beans.factory.annotation.BeanFactoryAnnotationUtils.qualifiedBeanOfType(BeanFactoryAnnotationUtils.java:68)
    at org.springframework.transaction.interceptor.TransactionAspectSupport.determineQualifiedTransactionManager(TransactionAspectSupport.java:406)
    at org.springframework.transaction.interceptor.TransactionAspectSupport.determineTransactionManager(TransactionAspectSupport.java:384)
    at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:284)
    at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:98)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:212)
    at com.sun.proxy.$Proxy56.findDefaultByKey(Unknown Source)
    11 replies
    how do i edit an existing API's upstream endpoint? I dont see the ability to change that field anywhere in the GUI or in the API docs. I created a new test API with a "foobar" upstream endpoint, and I cant find "foobar" -anywhere-
    I don't see how to do that from the documentation either. I am looking here at the documentation https://docs.gravitee.io/apim/3.x/apim_publisherguide_create_apis.html#manage_your_api but I'm not sure if this is the right page.
    Baptiste GAILLET
    Hi I'm lauching mongoDB migration from 3.6 to 3.10 but one script for MongoDB is missing : https://docs.gravitee.io/apim/3.x/apim_installguide_migration.html#mongodb
    this one : Upgrade to 3.10.1
    Hi @bat79a
    Thanks you for highlight this issue. I will submit it to the team .
    Baptiste GAILLET
    Perfect thx a lot, do you know if I can get this script somewhere because the migration is bloqued for me rigth now ;p
    ok, it has been fixed but the script isn't yet merge into the master branch so the documentation link is broken
    Baptiste GAILLET
    Yes thx a lot ;p
    John Lithgow

    Hi all,
    I am trying to enable prometheus metrics on the API gateway -- running on Openshift. No matter what i try , i get a connection refused error on port 18082.

    my gravitee.yaml contains:

          enabled: true
          port: 18082
          host: ${APIM3_GATEWAY_SERVICE_HOST}
            type: basic
              admin: adminadmin
          secured: false
        enabled: true
          enabled: true

    on the gateway pod, I've tried:

    wget localhost:18082
    wget <pod_id>:18082

    and all return : can't connect to remote host (xxxxxxxx): Connection refused

    Any Ideas? thanks in Advance

    1 reply
    John Lithgow

    Hi all, when i set the JAVA_OPTS Environment variable with my own -Xms and -Xmx, it seems Gravitee is always appending -Xms512m -Xmx512m to the options. example , i set -Xmx to 1 GB, but some other process is appending -Xmx512m:

    JAVA_OPTS: -Djava.net.preferIPv4Stack=true -Xms512m -Xmx1g -Djava.awt.headless=true -XX:+HeapDumpOnOutOfMemoryError -XX:+DisableExplicitGC -Dfile.encoding=UTF-8 -Djava.net.preferIPv4Stack=true -Xms512m -Xmx512m -Djava.awt.headless=true -XX:+HeapDumpOnOutOfMemoryError -XX:+DisableExplicitGC -Dfile.encoding=UTF-8

    2 replies
    Baptiste GAILLET

    Hi all.
    I'm trying to migrat from 3.8.6 to 3.9.4, but I have an error on my gateway and my management-api :

    Caused by: com.mongodb.MongoCommandException: Command failed with error 292 (QueryExceededMemoryLimitNoDiskUseAllowed): 'Error in $cursor stage :: caused by :: Sort exceed │
    │ ed memory limit of 104857600 bytes, but did not opt in to external sorting.' on server scw-my-server-name.mongodb.net:27xxx. The full response is {"ope │
    │ rationTime": {"$timestamp": {"t": 1632219698, "i": 3}}, "ok": 0.0, "errmsg": "Error in $cursor stage :: caused by :: Sort exceeded memory limit of 104857600 bytes, but did │
    │  not opt in to external sorting.", "code": 292, "codeName": "QueryExceededMemoryLimitNoDiskUseAllowed", "$clusterTime": {"clusterTime": {"$timestamp": {"t": 1632219698, "i │
    │ ": 3}}, "signature": {"hash": {"$binary": "Kmwq5ieodKBkmxxxx=", "$type": "00"}, "keyId": {"$numberLong": "6975232359939440641"}}}}

    If someone know what append or what I'm doing wrong ?

    Hi @bat79a, Do you have a full stack trace to see where the exception is raised ?
    Baptiste GAILLET
    yes sure, the full stack trace on the gateway logs is :
    Caused by: com.mongodb.MongoCommandException: Command failed with error 292 (QueryExceededMemoryLimitNoDiskUseAllowed): 'Error in $cursor stage :: caused by :: Sort exceeded memory limit of 104857600 byt │
    │ es, but did not opt in to external sorting.' on server scw-my-server-dev-shard-00-02.dje4n.mongodb.net:27xxx. The full response is {"operationTime": {"$timestamp": {"t": 1632224563, "i": 6}}, "ok": 0. │
    │ 0, "errmsg": "Error in $cursor stage :: caused by :: Sort exceeded memory limit of 104857600 bytes, but did not opt in to external sorting.", "code": 292, "codeName": "QueryExceededMemoryLimitNoDiskUseAl │
    │ lowed", "$clusterTime": {"clusterTime": {"$timestamp": {"t": 1632224563, "i": 6}}, "signature": {"hash": {"$binary": "ojpLSHCcOzSFtJx5bRkexxx=", "$type": "00"}, "keyId": {"$numberLong": "697523235993 │
    │ 9440641"}}}}                                                                                                                                                                                                │
    │     at com.mongodb.internal.connection.ProtocolHelper.getCommandFailureException(ProtocolHelper.java:175)                                                                                                   │
    │     at com.mongodb.internal.connection.InternalStreamConnection.receiveCommandMessageResponse(InternalStreamConnection.java:303)                                                                            │
    │     at com.mongodb.internal.connection.InternalStreamConnection.sendAndReceive(InternalStreamConnection.java:259)                                                                                           │
    │     at com.mongodb.internal.connection.UsageTrackingInternalConnection.sendAndReceive(UsageTrackingInternalConnection.java:99)                                                                              │
    │     at com.mongodb.internal.connection.DefaultConnectionPool$PooledConnection.sendAndReceive(DefaultConnectionPool.java:450)                                                                                │
    │     at com.mongodb.internal.connection.CommandProtocolImpl.execute(CommandProtocolImpl.java:72)                                                                                                             │
    │     at com.mongodb.internal.connection.DefaultServer$DefaultServerProtocolExecutor.execute(DefaultServer.java:226)                                                                                          │
    │     at com.mongodb.internal.connection.DefaultServerConnection.executeProtocol(DefaultServerConnection.java:269)                                                                                            │
    │     at com.mongodb.internal.connection.DefaultServerConnection.command(DefaultServerConnection.java:131)                                                                                                    │
    │     at com.mongodb.internal.connection.DefaultServerConnection.command(DefaultServerConnection.java:123)                                                                                                    │
    │     at com.mongodb.operation.CommandOperationHelper.executeCommand(CommandOperationHelper.java:343)                                                                                                         │
    │     at com.mongodb.operation.CommandOperationHelper.executeCommand(CommandOperationHelper.java:334)                                                                                                         │
    │     at com.mongodb.operation.CommandOperationHelper.executeCommandWithConnection(CommandOperationHelper.java:220)                                                                                           │
    │     at com.mongodb.operation.CommandOperationHelper$5.call(CommandOperationHelper.java:206)                                                                                                                 │
    │     at com.mongodb.operation.OperationHelper.withReadConnectionSource(OperationHelper.java:463)
    Is gravitee API gateway async logging API call into elasticsearch or sync ?
    9 replies
    @brasseld @aelamrani
    Baptiste GAILLET
    11:42:43.858 [vert.x-eventloop-thread-1] [] INFO  i.g.r.e.ElasticsearchReporter - Index mapping template successfully defined                                                                               │
    │ 11:42:47.971 [gio.sync-1] [] INFO  i.g.g.s.s.s.OrganizationSynchronizer - 0 organization(s) synchronized in 11ms.                                                                                           │
    │ 11:42:48.009 [gio.sync-1] [] ERROR i.g.g.services.sync.SyncManager - An error occurs while synchronizing APIs                                                                                               │
    │ org.springframework.data.mongodb.UncategorizedMongoDbException: Command failed with error 292 (QueryExceededMemoryLimitNoDiskUseAllowed): 'Error in $cursor stage :: caused by :: Sort exceeded memory limi │
    │ t of 104857600 bytes, but did not opt in to external sorting.' on server scw-my-server-name-shard-00-02.dje4n.mongodb.net:27xxx. The full response is {"operationTime": {"$timestamp": {"t": 1632224563,  │
    │ "i": 6}}, "ok": 0.0, "errmsg": "Error in $cursor stage :: caused by :: Sort exceeded memory limit of 104857600 bytes, but did not opt in to external sorting.", "code": 292, "codeName": "QueryExceededMemo │
    │ ryLimitNoDiskUseAllowed", "$clusterTime": {"clusterTime": {"$timestamp": {"t": 1632224563, "i": 6}}, "signature": {"hash": {"$binary": "ojpLSHCcOzSFtJx5bRkekGCrkp8=", "$type": "00"}, "keyId": {"$numberLo │
    │ ng": "6975232359939440641"}}}}; nested exception is com.mongodb.MongoCommandException: Command failed with error 292 (QueryExceededMemoryLimitNoDiskUseAllowed): 'Error in $cursor stage :: caused by :: So │
    │ rt exceeded memory limit of 104857600 bytes, but did not opt in to external sorting.' on server scw-gorenove-aws-dev-shard-00-02.dje4n.mongodb.net:27017. The full response is {"operationTime": {"$timesta │
    │ mp": {"t": 1632224563, "i": 6}}, "ok": 0.0, "errmsg": "Error in $cursor stage :: caused by :: Sort exceeded memory limit of 104857600 bytes, but did not opt in to external sorting.", "code": 292, "codeNa │
    │ me": "QueryExceededMemoryLimitNoDiskUseAllowed", "$clusterTime": {"clusterTime": {"$timestamp": {"t": 1632224563, "i": 6}}, "signature": {"hash": {"$binary": "ojpLSHCcOzSFtJx5bRkekGCrkp8=", "$type": "00" │
    │ }, "keyId": {"$numberLong": "6975232359939440641"}}}}                                                                                                                                                       │
    │     at org.springframework.data.mongodb.core.MongoExceptionTranslator.translateExceptionIfPossible(MongoExceptionTranslator.java:138)                                                                       │
    │     at org.springframework.data.mongodb.core.MongoTemplate.potentiallyConvertRuntimeException(MongoTemplate.java:2774)                                                                                      │
    │     at org.springframework.data.mongodb.core.MongoTemplate.execute(MongoTemplate.java:540)                                                                                                                  │
    │     at org.springframework.data.mongodb.core.MongoTemplate.doAggregate(MongoTemplate.java:2094)                                                                                                             │
    │     at org.springframework.data.mongodb.core.MongoTemplate.aggregate(MongoTemplate.java:2064)                                                                                                               │
    │     at org.springframework.data.mongodb.core.MongoTemplate.aggregate(MongoTemplate.java:1963)                                                                                                               │
    │     at io.gravitee.repository.mongodb.management.internal.event.EventMongoRepositoryImpl.searchLatest(EventMongoRepositoryImpl.java:80)                                                                     │
    │     at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    How many events do you have in the events collection? Do you have indexes on it ? Here is the indexes we create on our mongo instance:
    db.getCollection(`events`).createIndex( { "type" : 1 } );
    db.getCollection(`events`).createIndex( { "updatedAt" : 1 } );
    db.getCollection(`events`).createIndex( { "properties.api_id" : 1 } );
    db.getCollection(`events`).createIndex( { "properties.api_id":1, "type":1} );
    Baptiste GAILLET
    I really don't know, how I can check this ?
    Baptiste GAILLET
    I think that I have 662 docs in the events collection with a document like that for the first one :
    {"_id":"xxxxxx","type":"START_API","payload":"{\n  \"id\" : \"xxxxxx\",\n  \"environmentId\" : \"DEFAULT\",\n  \"name\" : \"TEST API\",\n  \"description\" : \"TEST d'une api après installation from scratch\",\n  \"version\" : \"0.1.0\",\n  \"definition\" : \"{\\n  \\\"id\\\" : \\\"xxxxxxxxxxxx\\\",\\n  \\\"name\\\" : \\\"TEST API\\\",\\n  \\\"version\\\" : \\\"0.1.0\\\",\\n  \\\"proxy\\\" : {\\n    \\\"virtual_hosts\\\" : [ {\\n      \\\"path\\\" : \\\"/qmaster-version\\\"\\n    } ],\\n    \\\"strip_context_path\\\" : false,\\n    \\\"preserve_host\\\" : false,\\n    \\\"groups\\\" : [ {\\n      \\\"name\\\" : \\\"default-group\\\",\\n      \\\"endpoints\\\" : [ {\\n        \\\"name\\\" : \\\"default\\\",\\n        \\\"target\\\" : \\\"https://xxx.fr/version/\\\",\\n        \\\"weight\\\" : 1,\\n        \\\"backup\\\" : false,\\n        \\\"type\\\" : \\\"HTTP\\\",\\n        \\\"inherit\\\" : true\\n      } ],\\n      \\\"load_balancing\\\" : {\\n        \\\"type\\\" : \\\"ROUND_ROBIN\\\"\\n      },\\n      \\\"http\\\" : {\\n        \\\"connectTimeout\\\" : 5000,\\n        \\\"idleTimeout\\\" : 60000,\\n        \\\"keepAlive\\\" : true,\\n        \\\"readTimeout\\\" : 10000,\\n        \\\"pipelining\\\" : false,\\n        \\\"maxConcurrentConnections\\\" : 100,\\n        \\\"useCompression\\\" : true,\\n        \\\"followRedirects\\\" : false\\n      }\\n    } ]\\n  },\\n  \\\"paths\\\" : {\\n    \\\"/\\\" : [ ]\\n  }\\n}\",\n  \"deployedAt\" : 1590144654223,\n  \"createdAt\" : 1590140383716,\n  \"updatedAt\" : 1590144654223,\n  \"visibility\" : \"private\",\n  \"lifecycleState\" : \"started\",\n  \"apiLifecycleState\" : \"created\"\n}","properties":{"api_id":"xxx","origin":"xxx","user":"xxx"},"createdAt":{"$date":"2020-05-22T10:50:54.223Z"},"updatedAt":{"$date":"2020-05-22T10:50:54.223Z"},"_class":"io.gravitee.repository.mongodb.management.internal.model.EventMongo","environments":["DEFAULT"]}

    and the index is

    _id_ (or _id)

    with a size of 98,3kb

    Is it possible to create the indexes and see if it fixes the error?
    db.getCollection(`events`).createIndex( { "type" : 1 } );
    db.getCollection(`events`).createIndex( { "updatedAt" : 1 } );
    db.getCollection(`events`).createIndex( { "properties.api_id" : 1 } );
    db.getCollection(`events`).createIndex( { "properties.api_id":1, "type":1} );
    Baptiste GAILLET
    reIndex is unauthorized for the atlas mongoDB cluster ? But I think that the commands fix the problem ;p
    Thx a lot, I will make some tests and verification.
    Thank you so much @leleueri
    gravitee-io/issues#6177 @brasseld @leleueri
    Dietrich Schulten
    The Enable Emailing option in Settings-Settings/Smtp is disabled, I cannot enable the checkbox. Why is that? Can I somehow make the Smtp section editable?
    1 reply
    Vivek Gupta
    Hi All,
    I had to deploy Graviteeio AM on Kubernetes using helm chart but management-api and gateway give me 404 not found can anyone help ho to resolve it
    6 replies

    graviteeio-am3-gateway am-auth.dev.k8s.kalisseo.dappit.fr
    graviteeio-am3-management-api am-mgmt.auth.dev.k8s.kalisseo.dappit.fr
    graviteeio-am3-management-ui am.auth.dev.k8s.kalisseo.dappit.fr

    This are the URL's

    26 replies
    Vivek Gupta

    Hi All,

    I am facing difficulty in deploy Gravitee APIM3x here is my configuration file http://pastie.org/p/1NJIj4XMwRRg1ncqjtIrmy this is the my URL path https://apim.dev.k8s.kalisseo.dappit.fr/

    Dietrich Schulten

    @brasseld Gravitee is running in docker and we have used environment vars, but not to specify smtp settings. I believe they would have to be set on the apim-management-api container:

        image: ${DOCKER_REGISTRY_MIRROR:-}graviteeio/apim-management-api:${GRAVITEE}
        hostname: management
        restart: always
          - 8083:8083
          - gravitee_management_mongodb_uri=mongodb://${MONGODB_HOST}/gravitee?serverSelectionTimeoutMS=5000&connectTimeoutMS=5000&socketTimeoutMS=5000
          - gravitee_analytics_elasticsearch_endpoints_0=${ELASTICSEARCH_URL_0}

    Even the manual shows a deactivated SMTP section in settings: https://docs.gravitee.io/apim/3.x/apim_installguide_rest_apis_configuration.html#smtp-configuration. What causes those settings to be deactivated?

    2 replies
    Jonathan Bennett
    Has anyone seen before in the portal when you click ‘gateways’ it just returns ‘null’ and in the error log there’s a numeric exception?
    2 replies
    Victor Dusautois
    Hello, We are experiencing issues with JWT plan : Signed JWT rejected: Another algorithm expected, or no matching key(s) found
    Some APIs work, some just don't (APIM 3.10). Any insight on where to look ? Thanks !
    7 replies
    Stephen Nguyen
    Anyone can show me how to add TRY IT OUT with redoc swagger mode in portal ? It's very important for my company. Thanks
    1 reply
    Hello! Which tls version protocols and ciphers are used in gravitee gateway and apim by default? How I can change them?
    4 replies