34 Commits

Author SHA1 Message Date
0b1979e4f1 Trigger build
Some checks failed
ci/woodpecker/push/go-generate Pipeline was successful
ci/woodpecker/push/js-generate Pipeline was successful
ci/woodpecker/push/lint Pipeline failed
ci/woodpecker/push/repo-checks Pipeline failed
Signed-off-by: Nikolai Rodionov <allanger@badhouseplants.net>
2026-04-25 15:39:24 +02:00
73f000791a Trigger build
Some checks failed
ci/woodpecker/push/js-generate Pipeline failed
ci/woodpecker/push/go-generate Pipeline was successful
ci/woodpecker/push/lint Pipeline failed
ci/woodpecker/push/repo-checks Pipeline failed
Signed-off-by: Nikolai Rodionov <allanger@badhouseplants.net>
2026-04-25 15:37:51 +02:00
1d3ceb07da Add old proto from 2 years ago
Some checks failed
ci/woodpecker/push/js-generate Pipeline failed
ci/woodpecker/push/go-generate Pipeline was successful
ci/woodpecker/push/lint Pipeline failed
ci/woodpecker/push/repo-checks Pipeline failed
Signed-off-by: Nikolai Rodionov <iam@allanger.xyz>
2026-04-23 20:02:04 +02:00
ed3bc02006 Remove proto dir
All checks were successful
ci/woodpecker/push/js-generate Pipeline was successful
ci/woodpecker/push/go-generate Pipeline was successful
ci/woodpecker/push/lint Pipeline was successful
ci/woodpecker/push/repo-checks Pipeline was successful
Signed-off-by: Nikolai Rodionov <allanger@badhouseplants.net>
2026-04-21 22:15:33 +02:00
b3d0888cc8 Change the js dir for proto
All checks were successful
ci/woodpecker/push/go-generate Pipeline was successful
ci/woodpecker/push/js-generate Pipeline was successful
ci/woodpecker/push/lint Pipeline was successful
ci/woodpecker/push/repo-checks Pipeline was successful
Signed-off-by: Nikolai Rodionov <allanger@badhouseplants.net>
2026-04-21 22:06:10 +02:00
b9154d1062 Add js generation
All checks were successful
ci/woodpecker/push/go-generate Pipeline was successful
ci/woodpecker/push/js-generate Pipeline was successful
ci/woodpecker/push/lint Pipeline was successful
ci/woodpecker/push/repo-checks Pipeline was successful
Signed-off-by: Nikolai Rodionov <iam@allanger.xyz>
2026-04-21 08:13:11 +02:00
f3e2a9dea1 Add js generation
Signed-off-by: Nikolai Rodionov <iam@allanger.xyz>
2026-04-21 08:11:30 +02:00
22e8ba2da5 Set the bot username
All checks were successful
ci/woodpecker/push/lint Pipeline was successful
ci/woodpecker/push/go-generate Pipeline was successful
ci/woodpecker/push/repo-checks Pipeline was successful
Signed-off-by: Nikolai Rodionov <allanger@badhouseplants.net>
2026-04-20 22:33:11 +02:00
cf30d5f2f2 Revert "Set the bot username"
Some checks failed
ci/woodpecker/push/lint Pipeline was successful
ci/woodpecker/push/go-generate Pipeline failed
ci/woodpecker/push/repo-checks Pipeline was successful
This reverts commit 08bd14d5f0.
2026-04-20 22:31:47 +02:00
674ffc982d Set the bot username
Some checks failed
ci/woodpecker/push/lint Pipeline was successful
ci/woodpecker/push/go-generate Pipeline failed
ci/woodpecker/push/repo-checks Pipeline was successful
Signed-off-by: Nikolai Rodionov <allanger@badhouseplants.net>
2026-04-20 22:30:46 +02:00
08bd14d5f0 Set the bot username
All checks were successful
ci/woodpecker/push/lint Pipeline was successful
ci/woodpecker/push/go-generate Pipeline was successful
ci/woodpecker/push/repo-checks Pipeline was successful
Signed-off-by: Nikolai Rodionov <allanger@badhouseplants.net>
2026-04-20 22:28:24 +02:00
bb5a976a1b Set the bot username
Some checks failed
ci/woodpecker/push/lint Pipeline was successful
ci/woodpecker/push/repo-checks Pipeline failed
ci/woodpecker/push/go-generate Pipeline failed
Signed-off-by: Nikolai Rodionov <allanger@badhouseplants.net>
2026-04-20 22:27:59 +02:00
ed05cf345a Set the bot username
All checks were successful
ci/woodpecker/push/lint Pipeline was successful
ci/woodpecker/push/go-generate Pipeline was successful
ci/woodpecker/push/repo-checks Pipeline was successful
Signed-off-by: Nikolai Rodionov <allanger@badhouseplants.net>
2026-04-20 22:15:52 +02:00
418fb64387 Set the bot username
Some checks failed
ci/woodpecker/push/lint Pipeline was successful
ci/woodpecker/push/go-generate Pipeline failed
ci/woodpecker/push/repo-checks Pipeline was successful
Signed-off-by: Nikolai Rodionov <allanger@badhouseplants.net>
2026-04-20 22:09:01 +02:00
2b810cf630 Test code generation in CI (#2)
All checks were successful
ci/woodpecker/push/lint Pipeline was successful
ci/woodpecker/push/go-generate Pipeline was successful
ci/woodpecker/push/repo-checks Pipeline was successful
Reviewed-on: #2
Co-authored-by: Nikolai Rodionov <allanger@badhouseplants.net>
Co-committed-by: Nikolai Rodionov <allanger@badhouseplants.net>
2026-04-20 20:03:17 +00:00
7f6a3e117e Try pulling the go repo
All checks were successful
ci/woodpecker/push/lint Pipeline was successful
ci/woodpecker/push/go-generate Pipeline was successful
ci/woodpecker/push/repo-checks Pipeline was successful
Signed-off-by: Nikolai Rodionov <allanger@badhouseplants.net>
2026-04-20 21:54:09 +02:00
659f9f8500 Try pulling the go repo
Some checks failed
ci/woodpecker/push/lint Pipeline was successful
ci/woodpecker/push/go-generate Pipeline failed
ci/woodpecker/push/repo-checks Pipeline was successful
Signed-off-by: Nikolai Rodionov <allanger@badhouseplants.net>
2026-04-20 21:53:18 +02:00
1b1e500ef8 Try pulling the go repo
Some checks failed
ci/woodpecker/push/lint Pipeline was successful
ci/woodpecker/push/go-generate Pipeline failed
ci/woodpecker/push/repo-checks Pipeline was successful
Signed-off-by: Nikolai Rodionov <allanger@badhouseplants.net>
2026-04-20 21:52:15 +02:00
0c909c00e1 Try pulling the go repo
Some checks failed
ci/woodpecker/push/lint Pipeline was successful
ci/woodpecker/push/go-generate Pipeline failed
ci/woodpecker/push/repo-checks Pipeline was successful
Signed-off-by: Nikolai Rodionov <allanger@badhouseplants.net>
2026-04-20 21:50:48 +02:00
7a23c4cacb Try pulling the go repo
Signed-off-by: Nikolai Rodionov <allanger@badhouseplants.net>
2026-04-20 21:50:23 +02:00
397e515f34 Try pulling the go repo
Signed-off-by: Nikolai Rodionov <allanger@badhouseplants.net>
2026-04-20 21:50:10 +02:00
f46757640b Try pulling the go repo
Some checks failed
ci/woodpecker/push/lint Pipeline was successful
ci/woodpecker/push/go-generate Pipeline failed
ci/woodpecker/push/repo-checks Pipeline was successful
Signed-off-by: Nikolai Rodionov <allanger@badhouseplants.net>
2026-04-20 21:47:00 +02:00
dab66a561c Try pulling the go repo
Some checks failed
ci/woodpecker/push/lint Pipeline was successful
ci/woodpecker/push/go-generate Pipeline failed
ci/woodpecker/push/repo-checks Pipeline was successful
Signed-off-by: Nikolai Rodionov <allanger@badhouseplants.net>
2026-04-20 21:43:46 +02:00
bc6cb2a6e0 Only the test service
All checks were successful
ci/woodpecker/push/lint Pipeline was successful
ci/woodpecker/push/repo-checks Pipeline was successful
Signed-off-by: Nikolai Rodionov <allanger@badhouseplants.net>
2026-04-20 19:32:13 +02:00
c63c766895 Only the test service
Some checks failed
ci/woodpecker/push/repo-checks Pipeline failed
ci/woodpecker/push/lint Pipeline was successful
Signed-off-by: Nikolai Rodionov <allanger@badhouseplants.net>
2026-04-20 19:31:35 +02:00
d518a692b2 A small fix and add pre-commit pipeline
Some checks failed
ci/woodpecker/push/lint Pipeline failed
ci/woodpecker/push/repo-checks Pipeline failed
Signed-off-by: Nikolai Rodionov <allanger@badhouseplants.net>
2026-04-20 19:15:26 +02:00
b643af2f3d Try using buf
Some checks failed
ci/woodpecker/push/lint Pipeline failed
Signed-off-by: Nikolai Rodionov <allanger@badhouseplants.net>
2026-04-20 19:11:24 +02:00
54e1cedeb0 A couple up updates
All checks were successful
ci/woodpecker/push/lint Pipeline was successful
Signed-off-by: Nikolai Rodionov <allanger@badhouseplants.net>
2026-04-19 22:28:28 +02:00
c2ec945fa4 A couple up updates
Some checks failed
ci/woodpecker/push/lint Pipeline failed
Signed-off-by: Nikolai Rodionov <allanger@badhouseplants.net>
2026-04-19 22:16:41 +02:00
4c45fd39fb A couple up updates
Some checks failed
ci/woodpecker/push/lint Pipeline failed
Signed-off-by: Nikolai Rodionov <allanger@badhouseplants.net>
2026-04-19 22:14:28 +02:00
066985346d A couple up updates
Signed-off-by: Nikolai Rodionov <allanger@badhouseplants.net>
2026-04-19 22:11:18 +02:00
Nikolai Rodionov
19468be271 Update the go module path 2024-09-23 13:15:16 +02:00
eb82a632ce Add an API to reset the password 2024-05-22 00:02:44 +02:00
165fe024d9 Add is email verified API 2024-05-22 00:02:44 +02:00
19 changed files with 689 additions and 490 deletions

1
.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
gen/

11
.pre-commit-config.yaml Normal file
View File

@@ -0,0 +1,11 @@
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v6.0.0 # Use the ref you want to point at
hooks:
- id: trailing-whitespace
exclude: README.md
- id: check-added-large-files
- id: check-case-conflict
- id: check-merge-conflict
- id: end-of-file-fixer
exclude: README.md

View File

@@ -1,6 +0,0 @@
# Lint directives.
lint:
rules_option:
max_line_length:
max_chars: 120
tab_chars: 2

View File

@@ -1,33 +0,0 @@
---
when:
event:
- push
branch: main
steps:
lint:
name: Generate docs
image: pseudomuto/protoc-gen-doc
secrets:
- softplayer_bot_ssh_key
- git_known_hosts
commands:
- mkdir -p ~/.ssh
- apk update && apk add git openssh
- echo $SOFTPLAYER_BOT_SSH_KEY | base64 -d > ~/.ssh/id_ed25519
- echo $GIT_KNOWN_HOSTS > ~/.ssh/known_hosts
- cat ~/.ssh/id_ed25519
- chmod 0600 ~/.ssh/id_ed25519
- protoc --proto_path=./proto --doc_out=. --doc_opt=markdown,README.md $(find ./proto -type f -iname "*.proto")
# To make sure there is always a change, even when protos are not updated
- echo "Generated on $(date)" >> README.md
- eval `ssh-agent`
- ssh-add ~/.ssh/id_ed25519
- git config --global user.email "allanger@badhouseplants.net"
- git config --global user.name "Softplayer Bot"
- git clone git@git.badhouseplants.net:softplayer/softplayer-proto.git /tmp/repo
- git -C /tmp/repo checkout generated-documentation
- mv README.md /tmp/repo/README.md
- git -C /tmp/repo add .
- git -C /tmp/repo commit -m "Update documentation from $CI_COMMIT_SHA"
- git -C /tmp/repo push

View File

@@ -0,0 +1,42 @@
---
when:
event:
- push
steps:
- name: Clone go repo
image: alpine
environment:
GITEA_USER: devops-bot
GITEA_TOKEN:
from_secret: gitea_repo_access
commands:
- apk update && apk add git
- git clone https://$GITEA_USER:$GITEA_TOKEN@gitea.badhouseplants.net/softplayer/softplayer-go-proto.git target
- git -C ./target config user.name "devops-bot"
- git -C ./target config user.email "bot@badhouseplants.net"
- name: Generate go code
image: bufbuild/buf
commands:
- buf generate
- rm -rf ./target/pkg/*
- cp -r ./gen/go/* ./target/pkg
- name: Clone go repo
image: alpine
environment:
GITEA_USER: devops-bot
GITEA_TOKEN:
from_secret: gitea_repo_access
commands:
- apk update && apk add git
- git config user.name "woodpecker-ci"
- git config user.email "bot@badhouseplants.net"
- git -C ./target checkout $CI_COMMIT_BRANCH || git -C ./target checkout -b $CI_COMMIT_BRANCH
- git -C ./target add .
- |-
git -C ./target commit --allow-empty \
-m "Update protobuf definitions: ${CI_COMMIT_SHA:0:8}" \
-m "By ${CI_COMMIT_AUTHOR}" \
-m "Commit link: ${CI_REPO_URL}/commit/${CI_COMMIT_SHA}" \
-m "Pipeline link: ${CI_PIPELINE_URL}"
- git -C ./target push --set-upstream origin $CI_COMMIT_BRANCH

View File

@@ -0,0 +1,43 @@
---
when:
event:
- push
steps:
- name: Clone js repo
image: alpine
environment:
GITEA_USER: devops-bot
GITEA_TOKEN:
from_secret: gitea_repo_access
commands:
- apk update && apk add git
- git clone https://$GITEA_USER:$GITEA_TOKEN@gitea.badhouseplants.net/softplayer/softplayer-js-proto.git target
- git -C ./target config user.name "devops-bot"
- git -C ./target config user.email "bot@badhouseplants.net"
- name: Generate js code
image: bufbuild/buf
commands:
- buf generate
- rm -rf ./target/src/api
- mkdir -p ./target/src/api
- cp -r ./gen/ts/* ./target/src/api
- name: Clone go repo
image: alpine
environment:
GITEA_USER: devops-bot
GITEA_TOKEN:
from_secret: gitea_repo_access
commands:
- apk update && apk add git
- git config user.name "woodpecker-ci"
- git config user.email "bot@badhouseplants.net"
- git -C ./target checkout $CI_COMMIT_BRANCH || git -C ./target checkout -b $CI_COMMIT_BRANCH
- git -C ./target add .
- |-
git -C ./target commit --allow-empty \
-m "Update protobuf definitions: ${CI_COMMIT_SHA:0:8}" \
-m "By ${CI_COMMIT_AUTHOR}" \
-m "Commit link: ${CI_REPO_URL}/commit/${CI_COMMIT_SHA}" \
-m "Pipeline link: ${CI_PIPELINE_URL}"
- git -C ./target push --set-upstream origin $CI_COMMIT_BRANCH

View File

@@ -4,8 +4,7 @@ when:
- push
steps:
lint:
name: Lint protobufs
image: yoheimuta/protolint
- name: Lint protobufs
image: bufbuild/buf
commands:
- protolint lint $(find . -type f -iname "*.proto")
- buf lint

View File

@@ -0,0 +1,10 @@
---
when:
event:
- push
steps:
- name: Run pre-commit
image: jfxs/pre-commit
commands:
- pre-commit run --all

View File

@@ -1,11 +0,0 @@
FROM alpine:3.16.2
RUN apk add --no-cache git make musl-dev go protobuf protobuf-dev
ENV GOROOT /usr/lib/go
ENV GOPATH /go
ENV PATH /go/bin:$PATH
RUN go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.26
RUN go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@v1.1
CMD [ "protoc -v" ]

View File

@@ -1,36 +0,0 @@
# ---------------------------------------------------------------------
# -- Which container tool to use
# ---------------------------------------------------------------------
CONTAINER_TOOL ?= docker
protoc-docs-gen:
protoc \
--proto_path=./proto \
--doc_out=. \
--doc_opt=markdown,readme.md \
$$(find ./proto -type f -iname "*.proto")
docker-docs-gen:
$(CONTAINER_TOOL) run --rm \
-v $$(pwd):/out \
-v $$(pwd)/proto:/proto \
pseudomuto/protoc-gen-doc --doc_opt=markdown,README.md --proto_path=proto \
$$(find proto -type f -iname "*.proto")
docker-lint:
$(CONTAINER_TOOL) run --rm \
-v $$(pwd):/workspace \
--workdir /workspace \
yoheimuta/protolint lint \
$$(find . -type f -iname "*.proto")
docker-protobuf:
$(CONTAINER_TOOL) build -t gogen . && \
$(CONTAINER_TOOL) run --rm \
-v $$(pwd)/proto:/proto \
-v $$(pwd)/pkg:/pkg \
gogen \
protoc --go_out=/pkg/ --go_opt=paths=source_relative \
--go-grpc_out=/pkg/ --go-grpc_opt=paths=source_relative \
--proto_path=proto/proto \
$$(find proto -type f -iname "*.proto")

901
README.md
View File

@@ -3,7 +3,41 @@
## Table of Contents
- [environments/environments_v1.proto](#environments_environments_v1-proto)
- [accounts/v1/accounts_v1.proto](#accounts_v1_accounts_v1-proto)
- [AccountData](#accounts-AccountData)
- [AccountFull](#accounts-AccountFull)
- [AccountFullWithToken](#accounts-AccountFullWithToken)
- [AccountId](#accounts-AccountId)
- [AccountPassword](#accounts-AccountPassword)
- [AccountWithPassword](#accounts-AccountWithPassword)
- [AccountWithPasswordAndCode](#accounts-AccountWithPasswordAndCode)
- [EmailVerified](#accounts-EmailVerified)
- [Accounts](#accounts-Accounts)
- [applications/v1/applications_v1.proto](#applications_v1_applications_v1-proto)
- [ApplicationFull](#applications-ApplicationFull)
- [ApplicationId](#applications-ApplicationId)
- [ApplicationMetadata](#applications-ApplicationMetadata)
- [ApplicationSpec](#applications-ApplicationSpec)
- [ApplicationSpec.ConfigEntry](#applications-ApplicationSpec-ConfigEntry)
- [CreateOptions](#applications-CreateOptions)
- [DeleteOptions](#applications-DeleteOptions)
- [GetOptions](#applications-GetOptions)
- [ListOptions](#applications-ListOptions)
- [OwnerId](#applications-OwnerId)
- [Token](#applications-Token)
- [UpdateOptions](#applications-UpdateOptions)
- [Applications](#applications-Applications)
- [email/v1/email_v1.proto](#email_v1_email_v1-proto)
- [ConfirmValidation](#email-ConfirmValidation)
- [RequestValidation](#email-RequestValidation)
- [EmailValidation](#email-EmailValidation)
- [environments/v1/environments_v1.proto](#environments_v1_environments_v1-proto)
- [CreateOptions](#environments-CreateOptions)
- [DeleteOptions](#environments-DeleteOptions)
- [EnvironmentFull](#environments-EnvironmentFull)
@@ -23,46 +57,470 @@
- [Environments](#environments-Environments)
- [accounts/accounts_v1.proto](#accounts_accounts_v1-proto)
- [AccountData](#accounts-AccountData)
- [AccountFull](#accounts-AccountFull)
- [AccountFullWithToken](#accounts-AccountFullWithToken)
- [AccountId](#accounts-AccountId)
- [AccountPassword](#accounts-AccountPassword)
- [AccountWithPassword](#accounts-AccountWithPassword)
- [test/v1/test_v1.proto](#test_v1_test_v1-proto)
- [PingRequest](#test-v1-PingRequest)
- [PingResponse](#test-v1-PingResponse)
- [PongRequest](#test-v1-PongRequest)
- [PongResponse](#test-v1-PongResponse)
- [Accounts](#accounts-Accounts)
- [applications/applications_v1.proto](#applications_applications_v1-proto)
- [ApplicationFull](#applications-ApplicationFull)
- [ApplicationId](#applications-ApplicationId)
- [ApplicationMetadata](#applications-ApplicationMetadata)
- [ApplicationSpec](#applications-ApplicationSpec)
- [ApplicationSpec.ConfigEntry](#applications-ApplicationSpec-ConfigEntry)
- [CreateOptions](#applications-CreateOptions)
- [DeleteOptions](#applications-DeleteOptions)
- [GetOptions](#applications-GetOptions)
- [ListOptions](#applications-ListOptions)
- [OwnerId](#applications-OwnerId)
- [Token](#applications-Token)
- [UpdateOptions](#applications-UpdateOptions)
- [Applications](#applications-Applications)
- [email/email_v1.proto](#email_email_v1-proto)
- [ConfirmValidation](#email-ConfirmValidation)
- [RequestValidation](#email-RequestValidation)
- [EmailValidation](#email-EmailValidation)
- [TestService](#test-v1-TestService)
- [Scalar Value Types](#scalar-value-types)
<a name="environments_environments_v1-proto"></a>
<a name="accounts_v1_accounts_v1-proto"></a>
<p align="right"><a href="#top">Top</a></p>
## environments/environments_v1.proto
## accounts/v1/accounts_v1.proto
This file has messages for describing environments
<a name="accounts-AccountData"></a>
### AccountData
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| name | [string](#string) | | Account name |
| email | [string](#string) | | Account email |
<a name="accounts-AccountFull"></a>
### AccountFull
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| id | [AccountId](#accounts-AccountId) | | |
| data | [AccountData](#accounts-AccountData) | | |
<a name="accounts-AccountFullWithToken"></a>
### AccountFullWithToken
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| id | [AccountId](#accounts-AccountId) | | |
| data | [AccountData](#accounts-AccountData) | | |
| token | [string](#string) | | |
<a name="accounts-AccountId"></a>
### AccountId
Represents a environment UUID only
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| id | [string](#string) | | Contour ID: UUID |
<a name="accounts-AccountPassword"></a>
### AccountPassword
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| password | [string](#string) | | |
<a name="accounts-AccountWithPassword"></a>
### AccountWithPassword
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| data | [AccountData](#accounts-AccountData) | | |
| password | [AccountPassword](#accounts-AccountPassword) | | |
<a name="accounts-AccountWithPasswordAndCode"></a>
### AccountWithPasswordAndCode
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| data | [AccountData](#accounts-AccountData) | | |
| password | [AccountPassword](#accounts-AccountPassword) | | |
| code | [string](#string) | | |
<a name="accounts-EmailVerified"></a>
### EmailVerified
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| verified | [bool](#bool) | | |
<a name="accounts-Accounts"></a>
### Accounts
Service for handling environments
| Method Name | Request Type | Response Type | Description |
| ----------- | ------------ | ------------- | ------------|
| SignUp | [AccountWithPassword](#accounts-AccountWithPassword) | [AccountFullWithToken](#accounts-AccountFullWithToken) | |
| SignIn | [AccountWithPassword](#accounts-AccountWithPassword) | [AccountFullWithToken](#accounts-AccountFullWithToken) | |
| ResetPassword | [AccountData](#accounts-AccountData) | [.google.protobuf.Empty](#google-protobuf-Empty) | |
| NewPassword | [AccountWithPasswordAndCode](#accounts-AccountWithPasswordAndCode) | [.google.protobuf.Empty](#google-protobuf-Empty) | |
| IsEmailVerified | [AccountData](#accounts-AccountData) | [EmailVerified](#accounts-EmailVerified) | |
<a name="applications_v1_applications_v1-proto"></a>
<p align="right"><a href="#top">Top</a></p>
## applications/v1/applications_v1.proto
This file has messages for describing applications
<a name="applications-ApplicationFull"></a>
### ApplicationFull
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| metadata | [ApplicationMetadata](#applications-ApplicationMetadata) | | |
| spec | [ApplicationSpec](#applications-ApplicationSpec) | | |
| id | [ApplicationId](#applications-ApplicationId) | | |
<a name="applications-ApplicationId"></a>
### ApplicationId
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| uuid | [string](#string) | | |
<a name="applications-ApplicationMetadata"></a>
### ApplicationMetadata
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| name | [string](#string) | | |
| description | [string](#string) | | |
<a name="applications-ApplicationSpec"></a>
### ApplicationSpec
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| application | [string](#string) | | |
| version | [string](#string) | | |
| environemnt_id | [string](#string) | | |
| config | [ApplicationSpec.ConfigEntry](#applications-ApplicationSpec-ConfigEntry) | repeated | |
| raw_config | [string](#string) | | |
<a name="applications-ApplicationSpec-ConfigEntry"></a>
### ApplicationSpec.ConfigEntry
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| key | [string](#string) | | |
| value | [string](#string) | | |
<a name="applications-CreateOptions"></a>
### CreateOptions
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| metadata | [ApplicationMetadata](#applications-ApplicationMetadata) | | |
| spec | [ApplicationSpec](#applications-ApplicationSpec) | | |
| owner_id | [OwnerId](#applications-OwnerId) | | |
| token | [Token](#applications-Token) | | |
<a name="applications-DeleteOptions"></a>
### DeleteOptions
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| id | [ApplicationId](#applications-ApplicationId) | | |
| metadata | [ApplicationMetadata](#applications-ApplicationMetadata) | | |
| owner_id | [OwnerId](#applications-OwnerId) | | |
| token | [Token](#applications-Token) | | |
<a name="applications-GetOptions"></a>
### GetOptions
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| id | [ApplicationId](#applications-ApplicationId) | | |
| metadata | [ApplicationMetadata](#applications-ApplicationMetadata) | | |
| owner_id | [OwnerId](#applications-OwnerId) | | |
| token | [Token](#applications-Token) | | |
<a name="applications-ListOptions"></a>
### ListOptions
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| metadata | [ApplicationMetadata](#applications-ApplicationMetadata) | | |
| owner_id | [OwnerId](#applications-OwnerId) | | |
| token | [Token](#applications-Token) | | |
<a name="applications-OwnerId"></a>
### OwnerId
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| uuid | [string](#string) | | UUID of a user that is creating an environemnt |
<a name="applications-Token"></a>
### Token
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| token | [string](#string) | | Token that should be used to create an environment |
<a name="applications-UpdateOptions"></a>
### UpdateOptions
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| id | [ApplicationId](#applications-ApplicationId) | | |
| metadata | [ApplicationMetadata](#applications-ApplicationMetadata) | | |
| spec | [ApplicationSpec](#applications-ApplicationSpec) | | |
| owner_id | [OwnerId](#applications-OwnerId) | | |
| token | [Token](#applications-Token) | | |
<a name="applications-Applications"></a>
### Applications
Service for handling applications
| Method Name | Request Type | Response Type | Description |
| ----------- | ------------ | ------------- | ------------|
| Create | [CreateOptions](#applications-CreateOptions) | [ApplicationFull](#applications-ApplicationFull) | |
| Update | [UpdateOptions](#applications-UpdateOptions) | [ApplicationFull](#applications-ApplicationFull) | |
| Delete | [DeleteOptions](#applications-DeleteOptions) | [.google.protobuf.Empty](#google-protobuf-Empty) | |
| Get | [GetOptions](#applications-GetOptions) | [ApplicationFull](#applications-ApplicationFull) | |
| List | [ListOptions](#applications-ListOptions) | [ApplicationFull](#applications-ApplicationFull) stream | |
<a name="email_v1_email_v1-proto"></a>
<p align="right"><a href="#top">Top</a></p>
## email/v1/email_v1.proto
<a name="email-ConfirmValidation"></a>
### ConfirmValidation
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| user_id | [string](#string) | | |
| code | [int32](#int32) | | |
<a name="email-RequestValidation"></a>
### RequestValidation
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| user_id | [string](#string) | | |
<a name="email-EmailValidation"></a>
### EmailValidation
A service that should handle email validation
| Method Name | Request Type | Response Type | Description |
| ----------- | ------------ | ------------- | ------------|
| SendRequest | [RequestValidation](#email-RequestValidation) | [.google.protobuf.Empty](#google-protobuf-Empty) | |
| ValidateEmail | [ConfirmValidation](#email-ConfirmValidation) | [.google.protobuf.Empty](#google-protobuf-Empty) | |
<a name="environments_v1_environments_v1-proto"></a>
<p align="right"><a href="#top">Top</a></p>
## environments/v1/environments_v1.proto
This file has messages for describing environments
@@ -333,102 +791,47 @@ Service for handling environments
<a name="accounts_accounts_v1-proto"></a>
<a name="test_v1_test_v1-proto"></a>
<p align="right"><a href="#top">Top</a></p>
## accounts/accounts_v1.proto
This file has messages for describing environments
<a name="accounts-AccountData"></a>
### AccountData
## test/v1/test_v1.proto
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| name | [string](#string) | | Account name |
| email | [string](#string) | | Account email |
<a name="test-v1-PingRequest"></a>
### PingRequest
<a name="accounts-AccountFull"></a>
### AccountFull
<a name="test-v1-PingResponse"></a>
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| id | [AccountId](#accounts-AccountId) | | |
| data | [AccountData](#accounts-AccountData) | | |
### PingResponse
<a name="accounts-AccountFullWithToken"></a>
### AccountFullWithToken
<a name="test-v1-PongRequest"></a>
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| id | [AccountId](#accounts-AccountId) | | |
| data | [AccountData](#accounts-AccountData) | | |
| token | [string](#string) | | |
### PongRequest
<a name="accounts-AccountId"></a>
### AccountId
Represents a environment UUID only
<a name="test-v1-PongResponse"></a>
### PongResponse
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| id | [string](#string) | | Contour ID: UUID |
<a name="accounts-AccountPassword"></a>
### AccountPassword
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| password | [string](#string) | | |
<a name="accounts-AccountWithPassword"></a>
### AccountWithPassword
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| data | [AccountData](#accounts-AccountData) | | |
| password | [AccountPassword](#accounts-AccountPassword) | | |
@@ -441,307 +844,15 @@ Represents a environment UUID only
<a name="accounts-Accounts"></a>
<a name="test-v1-TestService"></a>
### Accounts
### TestService
Service for handling environments
| Method Name | Request Type | Response Type | Description |
| ----------- | ------------ | ------------- | ------------|
| SignUp | [AccountWithPassword](#accounts-AccountWithPassword) | [AccountFullWithToken](#accounts-AccountFullWithToken) | |
| SignIn | [AccountWithPassword](#accounts-AccountWithPassword) | [AccountFullWithToken](#accounts-AccountFullWithToken) | |
| ResetPassword | [AccountData](#accounts-AccountData) | [.google.protobuf.Empty](#google-protobuf-Empty) | |
<a name="applications_applications_v1-proto"></a>
<p align="right"><a href="#top">Top</a></p>
## applications/applications_v1.proto
This file has messages for describing applications
<a name="applications-ApplicationFull"></a>
### ApplicationFull
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| metadata | [ApplicationMetadata](#applications-ApplicationMetadata) | | |
| spec | [ApplicationSpec](#applications-ApplicationSpec) | | |
| id | [ApplicationId](#applications-ApplicationId) | | |
<a name="applications-ApplicationId"></a>
### ApplicationId
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| uuid | [string](#string) | | |
<a name="applications-ApplicationMetadata"></a>
### ApplicationMetadata
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| name | [string](#string) | | |
| description | [string](#string) | | |
<a name="applications-ApplicationSpec"></a>
### ApplicationSpec
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| application | [string](#string) | | |
| version | [string](#string) | | |
| environemnt_id | [string](#string) | | |
| config | [ApplicationSpec.ConfigEntry](#applications-ApplicationSpec-ConfigEntry) | repeated | |
| raw_config | [string](#string) | | |
<a name="applications-ApplicationSpec-ConfigEntry"></a>
### ApplicationSpec.ConfigEntry
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| key | [string](#string) | | |
| value | [string](#string) | | |
<a name="applications-CreateOptions"></a>
### CreateOptions
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| metadata | [ApplicationMetadata](#applications-ApplicationMetadata) | | |
| spec | [ApplicationSpec](#applications-ApplicationSpec) | | |
| owner_id | [OwnerId](#applications-OwnerId) | | |
| token | [Token](#applications-Token) | | |
<a name="applications-DeleteOptions"></a>
### DeleteOptions
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| id | [ApplicationId](#applications-ApplicationId) | | |
| metadata | [ApplicationMetadata](#applications-ApplicationMetadata) | | |
| owner_id | [OwnerId](#applications-OwnerId) | | |
| token | [Token](#applications-Token) | | |
<a name="applications-GetOptions"></a>
### GetOptions
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| id | [ApplicationId](#applications-ApplicationId) | | |
| metadata | [ApplicationMetadata](#applications-ApplicationMetadata) | | |
| owner_id | [OwnerId](#applications-OwnerId) | | |
| token | [Token](#applications-Token) | | |
<a name="applications-ListOptions"></a>
### ListOptions
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| metadata | [ApplicationMetadata](#applications-ApplicationMetadata) | | |
| owner_id | [OwnerId](#applications-OwnerId) | | |
| token | [Token](#applications-Token) | | |
<a name="applications-OwnerId"></a>
### OwnerId
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| uuid | [string](#string) | | UUID of a user that is creating an environemnt |
<a name="applications-Token"></a>
### Token
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| token | [string](#string) | | Token that should be used to create an environment |
<a name="applications-UpdateOptions"></a>
### UpdateOptions
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| id | [ApplicationId](#applications-ApplicationId) | | |
| metadata | [ApplicationMetadata](#applications-ApplicationMetadata) | | |
| spec | [ApplicationSpec](#applications-ApplicationSpec) | | |
| owner_id | [OwnerId](#applications-OwnerId) | | |
| token | [Token](#applications-Token) | | |
<a name="applications-Applications"></a>
### Applications
Service for handling applications
| Method Name | Request Type | Response Type | Description |
| ----------- | ------------ | ------------- | ------------|
| Create | [CreateOptions](#applications-CreateOptions) | [ApplicationFull](#applications-ApplicationFull) | |
| Update | [UpdateOptions](#applications-UpdateOptions) | [ApplicationFull](#applications-ApplicationFull) | |
| Delete | [DeleteOptions](#applications-DeleteOptions) | [.google.protobuf.Empty](#google-protobuf-Empty) | |
| Get | [GetOptions](#applications-GetOptions) | [ApplicationFull](#applications-ApplicationFull) | |
| List | [ListOptions](#applications-ListOptions) | [ApplicationFull](#applications-ApplicationFull) stream | |
<a name="email_email_v1-proto"></a>
<p align="right"><a href="#top">Top</a></p>
## email/email_v1.proto
This file has messages for describing environments
<a name="email-ConfirmValidation"></a>
### ConfirmValidation
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| user_id | [string](#string) | | |
| code | [int32](#int32) | | |
<a name="email-RequestValidation"></a>
### RequestValidation
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| user_id | [string](#string) | | |
<a name="email-EmailValidation"></a>
### EmailValidation
A service that should handle email validation
| Method Name | Request Type | Response Type | Description |
| ----------- | ------------ | ------------- | ------------|
| SendRequest | [RequestValidation](#email-RequestValidation) | [.google.protobuf.Empty](#google-protobuf-Empty) | |
| ValidateEmail | [ConfirmValidation](#email-ConfirmValidation) | [.google.protobuf.Empty](#google-protobuf-Empty) | |
| Ping | [PingRequest](#test-v1-PingRequest) | [PingResponse](#test-v1-PingResponse) | |
| Pong | [PongRequest](#test-v1-PongRequest) | [PongResponse](#test-v1-PongResponse) | |

13
Taskfile.yml Normal file
View File

@@ -0,0 +1,13 @@
# yaml-language-server: $schema=https://taskfile.dev/schema.json
version: "3"
tasks:
lint:
desc: Run linter
silent: true
cmd: buf lint
generate:
desc: Generate code
silent: true
cmd: buf generate

22
buf.gen.yaml Normal file
View File

@@ -0,0 +1,22 @@
version: v2
plugins:
- remote: buf.build/bufbuild/es
out: gen/ts
opt:
- target=ts
- remote: buf.build/protocolbuffers/go
out: gen/go
opt:
- paths=source_relative
- remote: buf.build/grpc/go
out: gen/go
opt:
- paths=source_relative
- require_unimplemented_servers=false
- remote: buf.build/community/pseudomuto-doc:v1.5.1
out: .
opt:
- markdown,README.md

3
buf.yaml Normal file
View File

@@ -0,0 +1,3 @@
version: v2
modules:
- path: proto

View File

@@ -2,7 +2,7 @@
syntax = "proto3";
package accounts;
import "google/protobuf/empty.proto";
option go_package = "git.badhouseplants.net/softplayer/softplayer-go-proto/pkg/accounts";
option go_package = "gitea.badhouseplants.net/softplayer/softplayer-go-proto/pkg/accounts";
/**
* Service for handling environments
@@ -11,8 +11,13 @@ service Accounts {
rpc SignUp (AccountWithPassword) returns (AccountFullWithToken) {}
rpc SignIn (AccountWithPassword) returns (AccountFullWithToken) {}
rpc ResetPassword (AccountData) returns (google.protobuf.Empty) {}
rpc NewPassword (AccountWithPasswordAndCode) returns (google.protobuf.Empty) {}
rpc IsEmailVerified (AccountData) returns (EmailVerified) {}
}
message EmailVerified {
bool verified = 1;
}
/**
* Represents a environment UUID only
*/
@@ -35,6 +40,13 @@ message AccountWithPassword {
AccountPassword password = 2;
}
message AccountWithPasswordAndCode {
AccountData data = 1;
AccountPassword password = 2;
string code = 3;
}
message AccountFull {
AccountId id = 1;
AccountData data = 2;

View File

@@ -2,7 +2,7 @@
syntax = "proto3";
package applications;
import "google/protobuf/empty.proto";
option go_package = "git.badhouseplants.net/softplayer/softplayer-go-proto/pkg/applications";
option go_package = "gitea.badhouseplants.net/softplayer/softplayer-go-proto/pkg/applications";
/**
* Service for handling applications

View File

@@ -1,8 +1,7 @@
/// This file has messages for describing environments
syntax = "proto3";
package email;
import "google/protobuf/empty.proto";
option go_package = "git.badhouseplants.net/softplayer/softplayer-go-proto/pkg/email";
option go_package = "gitea.badhouseplants.net/softplayer/softplayer-go-proto/pkg/email";
/*
* A service that should handle email validation

View File

@@ -2,7 +2,7 @@
syntax = "proto3";
package environments;
import "google/protobuf/empty.proto";
option go_package = "git.badhouseplants.net/softplayer/softplayer-go-proto/pkg/environments";
option go_package = "gitea.badhouseplants.net/softplayer/softplayer-go-proto/pkg/environments";
/**
* Service for handling environments

View File

@@ -0,0 +1,19 @@
syntax = "proto3";
package test.v1;
option go_package = "gitea.badhouseplants.net/softplayer/softplayer-go-proto/pkg/test/v1";
/**
* Service for handling environments
*/
service TestService {
rpc Ping (PingRequest) returns (PingResponse) {}
rpc Pong (PongRequest) returns (PongResponse) {}
}
message PingRequest {}
message PingResponse {}
message PongRequest {}
message PongResponse {}