{"id":27974588,"url":"https://github.com/strapdata/gravitee-repository-elassandra","last_synced_at":"2026-01-30T00:07:20.243Z","repository":{"id":39821485,"uuid":"195473172","full_name":"strapdata/gravitee-repository-elassandra","owner":"strapdata","description":"Elassandra gravitee repository for management, ratelimit and analytics","archived":false,"fork":false,"pushed_at":"2022-12-16T04:52:57.000Z","size":598,"stargazers_count":3,"open_issues_count":3,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2023-03-03T19:03:24.767Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/strapdata.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.AGPL","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-07-05T22:24:24.000Z","updated_at":"2020-12-18T17:50:00.000Z","dependencies_parsed_at":"2022-08-28T00:23:52.012Z","dependency_job_id":null,"html_url":"https://github.com/strapdata/gravitee-repository-elassandra","commit_stats":null,"previous_names":[],"tags_count":null,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/strapdata%2Fgravitee-repository-elassandra","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/strapdata%2Fgravitee-repository-elassandra/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/strapdata%2Fgravitee-repository-elassandra/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/strapdata%2Fgravitee-repository-elassandra/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/strapdata","download_url":"https://codeload.github.com/strapdata/gravitee-repository-elassandra/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252973770,"owners_count":21834137,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-05-08T00:18:45.316Z","updated_at":"2026-01-30T00:07:20.209Z","avatar_url":"https://github.com/strapdata.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Gravitee Elassandra Repository [![Build Status](https://travis-ci.org/strapdata/gravitee-repository-elassandra.svg?branch=master)](https://travis-ci.org/strapdata/gravitee-repository-elassandra)\n\n[Elassandra](https://www.elassandra.io/) repository (Management, Rate Limit and Analytics), with the following benefits:\n\n* Distributed gravitee configuration on many datacenters through the Cassandra replication (in active/active mode).\n* Elasticsearch reporting for gravitee analytics.\n* Scalability by adding Elassandra nodes (without re-indexing) and datacenters (for geo localisation concerns or workload separation)\n* Reduce the global complexity and TCO by using the same NoSQL database for both gravitee configuration, reporting and APIs data storage.\n\n![Gravitee Elassandra architecture](elassandra-repository.png)\n\nThis repository uses Datastax Java driver for communication with Cassandra and Elasticsearch query over CQL.\n\n## Requirement\n\nThe minimum requirement is :\n * Maven3\n * Jdk8\n\nIn order to use **Gravitee** snapshot, You need to declare the following repository in you Maven settings :\n\nhttps://oss.sonatype.org/content/repositories/snapshots\n\n\n## Building\n\nThis Elassandra repository use [Elassandra-Unit](https://github.com/strapdata/elassandra-unit) to run gravitee unit tests.\n\n```\n$ git clone https://github.com/strapdata/gravitee-repository-elassandra.git\n$ cd gravitee-repository-elassandra\n$ mvn clean package\n```\n\nTo build the gravitee docker images including this gravitee-repository-elassandra.zip, \n\n```bash\nbuild.sh\n```\n\nStrapdata docker images are also available on the Docker Hub:\n\n * [strapdata/graviteeio-management-api](https://hub.docker.com/r/strapdata/graviteeio-management-api)\n * [strapdata/graviteeio-gateway](https://hub.docker.com/r/strapdata/graviteeio-gateway)\n\n## Installing\n\n* Unzip the gravitee-repository-elassandra-[version].zip in the gravitee home directory.\n* Copy the *gravitee-repository-elassandra-[version].zip* in the **Gravitee** */plugins* directory.\n\n\n## Configuration\n\nConfiguration settings, prefixed by *scope*.**elassandra**, where *scope* is **management** or **ratelimit**:\n\n\n| Parameter               |   Description   |        default |\n| ----------------------- | --------------- | -------------: |\n| localDc                 | Sets the name of the datacenter that will be considered \"local\" |     |\n| contactPoint            | Allows to connect to Cassandra cluster nodes. It is not necessary to add all contact points because Cassandra driver will use auto-discovery mechanism. |       localhost |\n| endpoint                | Defines the Elasticsearch endpoint used to create Elasticsearch indices. | http://localhost:9200 |\n| port                    | Defines the CQL native transport port |            9042 |\n| keyspaceName            | Name of the keyspace. Note that the final will be prefixed with the corresponding scope. |gravitee |\n| username                | Permit to connect to Cassandra and Elasticsearch if using access with credentials. |        cassandra |\n| password                | Permit to connect to Cassandra and Elasticsearch if using access with credentials. |        cassandra |\n| index.prefix            | Index name prefix (to setup elasticsearch template for indices starting with this prefix) |    |\n| connectTimeoutMillis    | Defines how long the driver waits to establish a new connection to a Cassandra node before giving up |            5000 |\n| readTimeoutMillis       | Controls how long the driver waits for a response from a given Cassandra node before considering it unresponsive |           12000 |\n| reconnectDelay          | Reconnection retry delay in milliseconds | 5000 |\n| consistencyLevel        | Sets the level of consistency for read \u0026 write access, e.g. ONE, QUORUM, ALL (see Datastax documentation for comprehensive list) | LOCAL_QUORUM      | ssl.provider            | Java SSL/TLS provider | JDK |\n| ssl.truststore.path     | Truststore file name (JKS or P12) |   |\n| ssl.truststore.password | Truststore password |   |\n| ssl.keystore.path       | Keystore file name (JKS or P12) for TLS client authentication |   |\n| ssl.keystore.password   | Keystore password |   |\n\nFor analytics, settings are the same as Elasticsearch, see the\n[gravitee documentation](https://docs.gravitee.io/apim_installguide_management_api_configuration.html#analytics) (Elassandra is seen as a vanilla Elasticsearch).\n\nConfiguration sample:\n\n```yaml\nmanagement:\n  type: elassandra\n  elassandra:\n    clusterName: elassandra\n    port: 39042\n    contactPoint: elassandra.default.svc.cluster.local\n    endpoint: https://elassandra-elasticsearch.default.svc.cluster.local:9200\n    username: cassandra\n    password: cassandra\n    ssl:\n      truststore:\n        path: /ca-pub/truststore.p12\n        password: changeit\nratelimit:\n  type: elassandra\n  elassandra:\n    clusterName: elassandra\n    port: 39042\n    contactPoint: elassandra.default.svc.cluster.local\n    endpoint: https://elassandra-elasticsearch.default.svc.cluster.local:9200\n    username: cassandra\n    password: cassandra\n    ssl:\n      truststore:\n        path: /ca-pub/truststore.p12\n        password: changeit\nanalytics:\n  type: elasticsearch\n  elasticsearch:\n    endpoints:\n      - https://elassandra-elasticsearch.default.svc.cluster.local:9200\n    security:\n      username: cassandra\n      password: cassandra\n      ssl:\n        truststore:\n          path: /ca-pub/truststore.p12\n          password: changeit\n    index: analytics\n    cluster: elassandra\n...\n```\n\n## Support\n\n * Commercial support is available through [Strapdata](http://www.strapdata.com/).\n * Community support available via [elassandra google groups](https://groups.google.com/forum/#!forum/elassandra).\n * Post feature requests and bugs on [gravitee-repository-elassandra](https://github.com/strapdata/gravitee-repository-elassandra).\n\n## License\n\nThis software is licensed under the GNU AFFERO GENERAL PUBLIC LICENSE.\n\n## Acknowledgments\n\n* Elasticsearch and Kibana are trademarks of Elasticsearch BV, registered in the U.S. and in other countries.\n* Apache Cassandra, Apache Lucene, Apache, Lucene and Cassandra are trademarks of the Apache Software Foundation.\n* Gravitee is a trademark of Graviteesource.\n* Elassandra is a trademark of Strapdata SAS.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstrapdata%2Fgravitee-repository-elassandra","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstrapdata%2Fgravitee-repository-elassandra","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstrapdata%2Fgravitee-repository-elassandra/lists"}