save request as part of the placement
validate requests using the openAPI schema
embed the schema in binary
test postgresql down, and up again
script to push/create/update AWS lambda function
create OpenAPIValidation middleware for schema validation
create openapi internal router from doc at startup, not on every request
use go-chi instead of httprouter:
100% compatible with standard library
nice interface for middleware
/api/v1/accounts/{name} won’t work when we have other cloud providers. do /api/v1/accounts/{kind}/{name} instead
Decrypt using ansible-vault (MVP only)
auth token errors output should be JSON too, not text.
rename Book() to Request() ?
protect routes with middleware and JWT
save token name+iat into DB
check db in Authenticator middleware
PUT /admin/jwt/{id}/invalidate to invalidate one token
GET /admin/jwt to list login tokens
publish/subscribe channels
dispatcher listener worker
define AWS credential (root account) to manage the sandbox lifecycle – use the same as dynamodb access
claim latest Job, cancel and delete previous jobs if any
create lifecycle handler for accounts
create golang channel for stop/start
parameterize the number of concurrent workers
create lifecycle handler for placements
test legacy placement/stop/start/status
proper lifecyclePlacementResponse with examples
OpenShift limit and req for pods
unit tests and fixture/functional tests
patch clients (sandbox-list, mark_for_cleanup script, etc) to use the sandbox-API instead of dynamodb
move handlers per version?
mark sandbox for cleanup once migrate from prod to dev
add hurl to the admin image
unit tests fixture/functional tests
prometheus endpoint and metrics
Encrypt IAM secret key using AWS KMS instead of ansible-vault. Use and support both while transitioning
aws lambda function to replicate changes from dynamoDB to postgresql
add POST /refresh to get new access token
rename env variable: prefix with DYNAMODB_ for anything related to dynamodb access
Update OpenAPI schema to support passing the group parameter
safeguard: do not allow reservation if capacity (after reservation) is <20%
conan: preserve reservation when cleaning up
update AWS sandbox prometheus endpoint to show reservation information
update sandbox-list: add reservation column
patch legacy scripts to filter out accounts that are in a reservation
make sure a comment is added to accounts when their expiration expires, so we can find them back.