You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat: add runtime parity for handling both ElasticSearch 6 and 7 upstreams (#51)
* feat: support es version > 7.0
* feat: add logs
* feat: update es version
* feat(build): reduce docker image size
* fix: PATCH user and permissions endpoint
* fix: size issue in logs
* feat: add billing
* Update main.go
* fix: Use tier_validity from accapi
* fix: resolve comments
* fix: update validity check condition
* fix: request logs at index level
* fix: billing env & remove email
* update accapi
* fix: remove subscription id
* fix: minor fixes
* add logs
* fix: minor fixes
* fix: update request
* fix: remove subscription id
* fix: update URL
* fix: remove fmt.Println(..) log
* fix: minor fixes
* fix: minor fixes
* fix: update URL
* fix: update arc instance endpoint
* fix: update URL
* feat: allow self signed certs
* fix: handle invalid ARC_ID + minor fixes
* fix: Rename variable
* Refactor: Enhancements + fixes to the billing mechanism (#24)
* test: use local ACC_API URL for test
* wip: add debug log
* wip: add debug log
* wip: add debug log
* wip: handle case where time validity = 0
* wip: fix time_validity value while a user is in trial
* fix: export ArcInstanceDetails and NodeCount
- make sure nodes are counted at init time irrespective of a valid subscription_id and report usage call
* fix: set type of NodeCount to int
* format: remove debug statements
* fix: handle case of an invalid ARC_ID
* format: improve error message for env not found
* fix: Modified query path for Patch Permission test
* feat: expose billing variable from util.go (#26)
* Add support for custom jwt usename key
The usename could be both for users & permissions
* Fix indentation
* feat: sync to dev
* Add support for modifying/deleting role in
permission using PATCH request
Also add GET handler for getting a permission
using role
* Fix indentation
* feat: allow self signed certs
* fix: es7 changes
* fixed middleware test of plugin
* fix: permission + post user
* fix: permission + post user (#29)
* RBAC: Add routes to GET/SET public key (#27)
* Create CRUD permission handlers for roles
* feat: add routes to GET/SET public key
* fix: minor fixes
* Fix: get public key route if es index is not present (#30)
* fix: permission + post user
* fix: get public key route if es index is not present
* Fixed getCredentialsTest of dao
* Fixed minor bug
* Fixed putPermissionTest of dao
* Fixed jwt token tests
* Minor change
* Made tests for handlers and completed methods for middleware
* Minor changes
* feat: support custom headers (#34)
* feat: add report usage for hosted cluster (#33)
* wip: add flag for hosted billing
* feat: add cron for reporting arc cluster usage
* fix: remove encryption
* Modified tests
* fix: allow sources check to pass if all is set
* handles IPv6 match case
* fix(permission): update referers error message
* feat: validate plan
* feat: add suggestions category
* feat: add limits for missing categories
* fix: plan validation for hosted billing
* fix: change the plan validation logic
* fix: auth header redirection
* feat: fetch & set cluster plan
* fix: minor fixes
* feat: improve validat
* fix: minor category fix
* fix: minor fixes
* fix: suggestions category
* fix: minor fixes
* fix: update URL
* add build flags
* fix: minor fixes
* feat: apply billing middleware for cluster plans
* fix: revert ACC_API url
* fix: stop execution if arc instance is not present
* fix(billing): hosted arc (#41)
* fix: arc_hosted billing
* fix: serious billing issue with time_validity
* feat: add ingnoreBillingMiddleware flag
* fix: revert acc_api
* fix: minor fixes
* fix: minor changes
* fix: docker file (#42)
change CMD -> ENTRYPOINT
add shared-docker volume path creation
* chore: adds default CMD, ignore config files
* fix: fallback to highest plan when billing is disabled
* fix: minor fixes
* mock: proxy getRawLogs() to work with ES v6 and ES v7
* wip: move es client instantiation to a separate file
* chore: update to use the new endpoint route
* test
* fix: use consistent report_usage URI
* fix: update report_usage route
* fix: time_validity in self-hosted billing
* fix: test
* fix: blacklist subscription route
* fix: blacklist plan route
* fix: revert ACC_API
* fix(auth): authentication bug with JWT
* fix a bug where role name should be queried against .keyword field
* fix bug where JWT key from environment variables would override values
set in DB
* fix a crash where the role key isn't present in JWT claims
* format error messages related to username/role authentication for better comprehension
* chore: transform POST search request to GET requests (#43)
* fix: remove CMD preset
* fix: test accapi
* fix: remove use of arc_id
* fix: revert accapi
* fix: set retrier max limit to 8 sec (from 8 ms)
* hotfix: add retry logic to ES proxy
* feat: use retrable (#46)
* feat: add support for source_filtering
* feat: apply source filtering for msearch
* feat: support es6 in logs plugin
* feat: add support for es6 in auth plugin
* refactor: parity changes
* chore: change the func name
* feat: add support for es6 in permissions plugin
* feat: add support for es6 in reindexer plugin
* feat: add es6 support for users plugin
* chore: refactor auth plugin
* chore: refactor logs
* chore: refactor permissions
* fix: warnings
* fix: test cases
* chore: update to go1.13
* chore: remove test cases + initialize e2e test
* fix: GET permissions for es6
* fix: es6 issues in users and permissions
* chore: add test cases for permissions
* chore: add users plugins test
* fix: minor fixes
* fix: minor fixes
Copy file name to clipboardExpand all lines: README.md
+13-13Lines changed: 13 additions & 13 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
# Arc
2
2
3
-
Arc is a simple, modular API Gateway that sits between a client and an [ElasticSearch](https://elastic.co) cluster. It acts as a reverse proxy, routing requests from clients to services. Arc is extended through plugins, which provide extra functionality and services beyond the ElasticSearch's RESTful API. It can perform various cross-cutting tasks such as basic authentication, logging, rate-limiting, source/referers whitelisting, analytics etc. These functionalities can clearly be extended by adding a plugin encapsulating a desired functionality. It also provides some useful abstractions that helps in managing and controlling the access
3
+
Arc is a simple, modular API Gateway that sits between a client and an [ElasticSearch](https://elastic.co) cluster. It acts as a reverse proxy, routing requests from clients to services. Arc is extended through plugins, which provide extra functionality and services beyond the ElasticSearch's RESTful API. It can perform various cross-cutting tasks such as basic authentication, logging, rate-limiting, source/referers whitelisting, analytics etc. These functionalities can clearly be extended by adding a plugin encapsulating a desired functionality. It also provides some useful abstractions that helps in managing and controlling the access
4
4
to ElasticSearch's RESTful API.
5
5
6
6
## Table of contents
@@ -14,10 +14,10 @@ to ElasticSearch's RESTful API.
14
14
15
15
## Overview
16
16
17
-
When Arc is deployed, every client request being made to the Elasticsearch
18
-
will hit Arc first and then be proxied to the Elasticsearch cluster. In between requests and responses, Arc
19
-
may execute the installed plugins, essentially extending the Elasticsearch API feature set. Arc effectively
20
-
becomes an entry point for every API request made to Elasticsearch. Arc can be used and deployed against any
17
+
When Arc is deployed, every client request being made to the Elasticsearch
18
+
will hit Arc first and then be proxied to the Elasticsearch cluster. In between requests and responses, Arc
19
+
may execute the installed plugins, essentially extending the Elasticsearch API feature set. Arc effectively
20
+
becomes an entry point for every API request made to Elasticsearch. Arc can be used and deployed against any
21
21
Elasticsearch cluster (locally and hosted as provided by [Appbase.io](https://appbase.io)).
22
22
23
23
```
@@ -60,12 +60,12 @@ In order to run arc, you'll require an Elasticsearch node. There are multiple wa
60
60
61
61
2. Start a single node Elasticsearch cluster locally
For convenience, the steps described above are combined into a single `docker-compose` file. You can execute the file with command:
70
70
71
71
docker-compose up
@@ -172,16 +172,16 @@ A `User` grants a `Permission` to a certain `User`, predefining its capabilities
172
172
173
173
#### Category
174
174
175
-
Categories can be used to control access to data and APIs in Arc. Along with Elasticsearch APIs, Categories cover the APIs provided by Arc itself to allow fine-grained control over the API consumption. For Elasticsearch, Categories broadly resembles to the API [classification](https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html) that Elasticsearch
176
-
provides such as **Document APIs**, **Search APIs**, **Indices APIs** and so on. For Arc, Categories resembles to the
175
+
Categories can be used to control access to data and APIs in Arc. Along with Elasticsearch APIs, Categories cover the APIs provided by Arc itself to allow fine-grained control over the API consumption. For Elasticsearch, Categories broadly resembles to the API [classification](https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html) that Elasticsearch
176
+
provides such as **Document APIs**, **Search APIs**, **Indices APIs** and so on. For Arc, Categories resembles to the
177
177
additional APIs on top of Elasticsearch APIs, such as analytics and book keeping. Refer to category [docs](https://github.com/appbaseio/arc/blob/ugo/update-readme/31-12-2018/docs/categories.md) for the list of
178
178
categories that Arc supports.
179
179
180
180
#### ACL
181
181
182
182
ACLs allow a fine grained control over the Elasticsearch APIs in addition to the Categories. Each ACL resembles an
183
-
action performed by an Elasticsearch API. For brevity, setting and organising Categories automatically sets the default
184
-
ACLs associated with the set Categories. Setting ACLs adds just another level of control to provide access to
183
+
action performed by an Elasticsearch API. For brevity, setting and organising Categories automatically sets the default
184
+
ACLs associated with the set Categories. Setting ACLs adds just another level of control to provide access to
185
185
Elasticsearch APIs within a given Category. Refer to acl [docs](https://github.com/appbaseio/arc/blob/ugo/update-readme/31-12-2018/docs/acls.md) for the list of acls that Arc supports.
186
186
187
187
#### Op
@@ -194,8 +194,8 @@ of the plugin. Operation is currently classified into three kinds:
0 commit comments