cryostatio / cryostatio/cryostat

[Meta] API v5

Open
#1,735 6 comments 0 reactions 0 assignees View on GitHub
breaking change feat question
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.