✓ GET /api/ping -- returns "pong" ✓ POST /api/auth-token -- create an return an auth token given {"username": "...", "password": "..."} ✓ GET /api/verify-auth -- returns 200 or 401 depend on validity of the provided auth (auth ping) ✓ GET /api/projects -- return project summaries - POST /api/projects -- create a new project - GET /api/project/<proj-id> -- TODO * GET /api/project/<proj-id>/runs -- list summary information for all runs * GET /api/project/<proj-id>/runs/active -- list summary information about all currently active runs - GET /api/project/<proj-id>/runs/<run-id> -- list detailed information about a specific run ✓ GET /api/project/<proj-id>/versions -- list the versions of this project that have been built * GET /api/project/<proj-id>/version/<ref> -- return detailed project definition (include steps) at a specific version - GET /api/project/<proj-id>/step/<step-id> -- return detailed step information (include runs) * POST /api/project/<proj-id>/step/<step-id>/run/<ref> -- kick off a run Legend: ✓ implemented with passing tests * implemented, needs testing - not implemented M missing (not even stubbed out)