outline-server/src/shadowbox/model
Jonathan Cohen cf355a6fee
Per-Key Data Limits in Shadowbox (#769)
* s/AccessKeyDataLimit/DefaultDataLimit/g for shadowbox

* Implement per-key custom data limits in shadowbox

* Shadowbox integration test

* Fix the manager service test to maintain backwards compatibility with
the GET /server response

* Fix integration test for Travis

* Fix lint errors

* Implement removal of access key data limits

* Persist custom data limits

* Bump Shadowbox version number

* Add a per key dat alimit count to the feature metrics endpoint

This also involved modifying the schema of
uproxysite:uproxy_metrics_dev.feature_metrics to include the new field.
See https://cloud.google.com/bigquery/docs/managing-table-schemas#bq_1
for how this was accomplished

Tested:
  yarn do metrics_server/test && yarn do metrics_server/test_integration

* Collect usage metrics for per-key data limits

* API documentation and cleanup

* Respond to review comments

* Respond to review comments

* Don't encode the data limit in the access key url

This should have been caught in the integration test, but the
integration test was miswritten with "echo" instead of "fail", cause the
test to mistakenly pass.

Fixing this exposed other errors in the test, which were fixed.  The
test has been confirmed to both pass and fail successfully.

* Fix the manager service unit test

* Remove stray files

* Split integration test into individual functions

* Clarify comment in the AccessKey interface

* Be more explicit about behavior when no data limits are set

* Remove spuriosu import added by vscode

* DOn't bump shadowbox version number yet

* Rename to accessKeyToApiJson

* Don't export AccessKeyJson and use "StorageJson"

* Don't await data limit enforcement

* Rename the defaultDataLimit getter

* Make dataLimit in the accesskey model readonly

* Use nullish coalescing operator
2020-12-23 13:52:50 -05:00
..
access_key.ts Per-Key Data Limits in Shadowbox (#769) 2020-12-23 13:52:50 -05:00
errors.ts Per-Key Data Limits in Shadowbox (#769) 2020-12-23 13:52:50 -05:00
metrics.ts Server data usage timeframe (#485) 2019-09-13 18:21:09 -04:00
shadowsocks_server.ts Access key quotas (#456) 2019-07-19 15:01:08 -04:00
text_file.ts import code 2018-03-14 17:52:39 -04:00