cryostatio / cryostatio/cryostat
[Meta] API v5
- Dominant language
- Java
- Stars
- 57
- Forks
- 17
- Avg merge
- 15h 39m
- Merged PRs (30d)
- 42
Description
Brainstorming ideas for API v5. This entails any breaking changes to the current v4 API.
1. Remove numeric `targetId` from path parameters. Targets should only ever be identified by the JVM hash ID. If the Target does not yet have a hash ID, or if the configuration means its hash ID cannot be determined (ex. missing credentials), then the Target may appear in API responses (ie listing discovered Targets) but cannot be referenced in any further request.
2. Promote various `beta` endpoints to `v5`, for example the various archive-listing endpoints.
3. (non-API) Audit logging should not be configurable - it will be required. Various other important features are enabled by the presence of full audit log history (or otherwise soft deletion instead, but audit logging is implemented now and fills the same needs).
4. #1734 can be expanded to cover #630 and finally implement what https://github.com/cryostatio/cryostat-legacy/pull/1188 tried to do by using the audit log, archived recording metadata (JVM ID), and RBAC hooks in combination
5. Data stored in object storage buckets should be placed into named subdirectories by default, instead of flatly into the buckets. For example, the `archivedrecordings` bucket should contain a subdirectory also named `archivedrecordings`, which will then contain further subdirectories named ``, each of which will contain archived recording files. This way, Cryostat can be configured so that multiple different data types can share the same storage bucket without conflicting with each other since each will be scoped to a top-level subdirectory. For example, one bucket could be shared across archived recordings, thread dumps, heap dumps, and async profiler.
Contributor guide
Research direction
Start with the API v5 brainstorming list in this issue and review the current v4 and beta endpoint behavior. Trace related work in #1734, #630, and cryostat-legacy PR #1188, then determine which proposals have an agreed scope and implementation entry points. Done requires a decided, scoped change rather than an open-ended list of breaking-change ideas.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- api, backend-api-design
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100