Skip to content

Latest commit

 

History

History
83 lines (82 loc) · 3.44 KB

todo.org

File metadata and controls

83 lines (82 loc) · 3.44 KB

Todo

all endpoints

Placements

GET all

available

min-age param

max-age param

unit param

POST

save request as part of the placement

GET one

DELETE one

Accounts

GET one

PUT (mark for cleanup)

Lifecycle

STOP

START

STATUS

validate requests using the openAPI schema

embed the schema in binary

add credential type

add AccountWithCreds

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

make clean

/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() ?

add JWT for auth

protect routes with middleware and JWT

add POST /admin/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

create OCI image

create helm chart

lifecycle worker pool

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

documentation coverage

move handlers per version?

mark sandbox for cleanup once migrate from prod to dev

add hurl to the admin image

Post MVP

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

Prometheus endpoint

rename env variable: prefix with DYNAMODB_ for anything related to dynamodb access

Reservations

functional tests (hurl)

sandbox-api

Update OpenAPI schema to support passing the group parameter

patch handlers

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

expiration

make sure a comment is added to accounts when their expiration expires, so we can find them back.