From e4d74a7f8cf4c05d5e22062ab577ceda9f9c526b Mon Sep 17 00:00:00 2001 From: Jemin Date: Sat, 7 Sep 2024 14:04:33 +0900 Subject: [PATCH 1/2] add litmus java sdk proposal Signed-off-by: Jemin --- proposals/java-sdk.md | 45 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 proposals/java-sdk.md diff --git a/proposals/java-sdk.md b/proposals/java-sdk.md new file mode 100644 index 00000000000..edf9b6ab62b --- /dev/null +++ b/proposals/java-sdk.md @@ -0,0 +1,45 @@ +| title | authors | creation-date | last-updated | +|---------------------|--------------------------------------|---------------|--------------| +| add litmus java sdk | [@jemlog](https://github.com/jemlog) | 2024-09-07 | 2024-09-07 | + +# Adding Litmus Java SDK + +- [Summary](#summary) +- [Motivation](#motivation) + - [Goals](#goals) + - [Non-Goals](#non-goals) +- [Proposal](#proposal) + - [Use Cases](#use-cases) + - [Implementation Details](#implementation-details) +- [Risks and Mitigations](#risks-and-mitigations) +- [Upgrade / Downgrade Strategy](#upgrade--downgrade-strategy) +- [Drawbacks](#drawbacks) +- [Alternatives](#alternatives) +- [References](#references) + +## Summary + + +## Motivation + + +### Goals + + +### Non-Goals + +## Proposal + +### Use Cases + +### Implementation Details + +## Risks and Mitigations + +## Upgrade / Downgrade Strategy + +## Drawbacks + +## Alternatives + +## References From 375985a6e0503b71c2ab45d208194e5f1e38ed0a Mon Sep 17 00:00:00 2001 From: Jemin Date: Wed, 11 Sep 2024 22:35:18 +0900 Subject: [PATCH 2/2] update java-sdk-proposal Signed-off-by: Jemin --- proposals/java-sdk.md | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/proposals/java-sdk.md b/proposals/java-sdk.md index edf9b6ab62b..20d4def025c 100644 --- a/proposals/java-sdk.md +++ b/proposals/java-sdk.md @@ -19,27 +19,53 @@ ## Summary +The purpose of litmus-java-sdk is to provide a client that can easily access to auth and backend server of litmus. ## Motivation +Litmuschaos’ backend server uses graphQL as an API communication method. +Graphql is not as familiar to developers as REST API, so it is difficult to call backend server directly. +Therefore we planned to add a Java-based SDK that makes developers to communicate easily with litmus backend server. +The SDK also provides an interface to communicate with the auth server to wrap the entire litmus control plane. ### Goals +- Add client calling the API for Auth Server +- Add client calling graphQL for Backend Server + ### Non-Goals +- Changing APIs that auth server and backend server already provide is non-goal +- Add auto configuration for SpringBoot is non-goal + ## Proposal ### Use Cases +In organization, litmusChaos administrators can call java SDK to manage multiple users and projects. + ### Implementation Details +```java +public void call(){ + // create client + LitmusClient litmusClient = new LitmusClient("test_user"); + // method call + CreateProjectResponse response = litmusClient.createProject("sample_project"); +} +``` + ## Risks and Mitigations ## Upgrade / Downgrade Strategy ## Drawbacks +It will be a great opportunity for administrators of litmusChaos to manage users and conduct experiments more conveniently. + ## Alternatives +This is the first java sdk we created in Litmus. No other alternatives exist. + ## References