24 Commits

Author SHA1 Message Date
b1e07a45e3 Add renovate.json 2024-09-11 14:17:48 +00: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
5635779253 Add a reset password api 2024-05-21 09:08:52 +02:00
9569f69afc Add a reset password api 2024-05-20 22:11:20 +02:00
f2baff2f93 Add disk size as an option 2024-05-06 21:41:41 +02:00
92ccfd804b Update CI a bit 2024-05-06 09:43:31 +02:00
8533398f2a Update CI a bit 2024-05-06 09:43:25 +02:00
075a72077f Try another docs-gen command 2024-05-06 09:37:02 +02:00
2a92b9987c Add a search string to envs 2024-05-05 21:02:20 +02:00
4face818c7 Add application api 2024-05-03 17:07:08 +02:00
bd6c5ffb2b Update Ids for envs 2024-05-02 12:41:18 +02:00
b4c97beb38 Add uuid 2024-04-30 15:48:48 +02:00
9866a688b8 Refactor providers data 2024-04-29 19:45:31 +02:00
b864dbcd8c More server related values 2024-04-29 17:48:18 +02:00
06cfef6ba2 Update the structure a bit 2024-04-29 14:02:16 +02:00
1c1bb4672b Update the env proto 2024-04-29 11:24:14 +02:00
1ee96fbfd5 Update everythung 2024-04-19 17:39:34 +02:00
a71f2b7cb5 Update some env related apis 2024-04-19 16:48:19 +02:00
f4ea64a224 Update some env related apis 2024-04-19 16:45:26 +02:00
c6df6964e8 Update the env data 2024-04-03 18:44:37 +02:00
26dc36ae71 Fix broken protos 2024-03-21 16:10:54 +01:00
aab79085e6 Add email validation service 2024-03-21 16:07:25 +01:00
9535487822 Add the validate email rpc 2024-03-21 10:20:03 +01:00
7 changed files with 774 additions and 40 deletions

View File

@ -18,7 +18,9 @@ steps:
- echo $GIT_KNOWN_HOSTS > ~/.ssh/known_hosts - echo $GIT_KNOWN_HOSTS > ~/.ssh/known_hosts
- cat ~/.ssh/id_ed25519 - cat ~/.ssh/id_ed25519
- chmod 0600 ~/.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") - 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` - eval `ssh-agent`
- ssh-add ~/.ssh/id_ed25519 - ssh-add ~/.ssh/id_ed25519
- git config --global user.email "allanger@badhouseplants.net" - git config --global user.email "allanger@badhouseplants.net"
@ -27,5 +29,5 @@ steps:
- git -C /tmp/repo checkout generated-documentation - git -C /tmp/repo checkout generated-documentation
- mv README.md /tmp/repo/README.md - mv README.md /tmp/repo/README.md
- git -C /tmp/repo add . - git -C /tmp/repo add .
- git -C /tmp/repo commit -m "Update documentation" - git -C /tmp/repo commit -m "Update documentation from $CI_COMMIT_SHA"
- git -C /tmp/repo push - git -C /tmp/repo push

545
README.md
View File

@ -4,11 +4,22 @@
## Table of Contents ## Table of Contents
- [environments/environments_v1.proto](#environments_environments_v1-proto) - [environments/environments_v1.proto](#environments_environments_v1-proto)
- [EnvironmentData](#environments-EnvironmentData) - [CreateOptions](#environments-CreateOptions)
- [DeleteOptions](#environments-DeleteOptions)
- [EnvironmentFull](#environments-EnvironmentFull) - [EnvironmentFull](#environments-EnvironmentFull)
- [EnvironmentId](#environments-EnvironmentId) - [EnvironmentId](#environments-EnvironmentId)
- [EnvironmentMetadata](#environments-EnvironmentMetadata)
- [EnvironmentSpec](#environments-EnvironmentSpec)
- [GetOptions](#environments-GetOptions)
- [ListOptions](#environments-ListOptions)
- [OwnerId](#environments-OwnerId)
- [Token](#environments-Token)
- [UpdateOptions](#environments-UpdateOptions)
- [Kubernetes](#environments-Kubernetes)
- [Location](#environments-Location)
- [Provider](#environments-Provider) - [Provider](#environments-Provider)
- [ServerType](#environments-ServerType)
- [Environments](#environments-Environments) - [Environments](#environments-Environments)
@ -22,6 +33,28 @@
- [Accounts](#accounts-Accounts) - [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)
- [Scalar Value Types](#scalar-value-types) - [Scalar Value Types](#scalar-value-types)
@ -33,16 +66,36 @@
This file has messages for describing environments This file has messages for describing environments
<a name="environments-EnvironmentData"></a> <a name="environments-CreateOptions"></a>
### EnvironmentData ### CreateOptions
| Field | Type | Label | Description | | Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- | | ----- | ---- | ----- | ----------- |
| name | [string](#string) | | Environment name | | metadata | [EnvironmentMetadata](#environments-EnvironmentMetadata) | | |
| provider | [Provider](#environments-Provider) | | Provide | | spec | [EnvironmentSpec](#environments-EnvironmentSpec) | | |
| owner_id | [OwnerId](#environments-OwnerId) | | |
| token | [Token](#environments-Token) | | |
<a name="environments-DeleteOptions"></a>
### DeleteOptions
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| id | [EnvironmentId](#environments-EnvironmentId) | | |
| metadata | [EnvironmentMetadata](#environments-EnvironmentMetadata) | | |
| owner_id | [OwnerId](#environments-OwnerId) | | |
| token | [Token](#environments-Token) | | |
@ -57,8 +110,9 @@ This file has messages for describing environments
| Field | Type | Label | Description | | Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- | | ----- | ---- | ----- | ----------- |
| metadata | [EnvironmentMetadata](#environments-EnvironmentMetadata) | | |
| spec | [EnvironmentSpec](#environments-EnvironmentSpec) | | |
| id | [EnvironmentId](#environments-EnvironmentId) | | | | id | [EnvironmentId](#environments-EnvironmentId) | | |
| data | [EnvironmentData](#environments-EnvironmentData) | | |
@ -68,28 +122,193 @@ This file has messages for describing environments
<a name="environments-EnvironmentId"></a> <a name="environments-EnvironmentId"></a>
### EnvironmentId ### EnvironmentId
Represents a environment UUID only
| Field | Type | Label | Description | | Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- | | ----- | ---- | ----- | ----------- |
| id | [string](#string) | | Contour ID: UUID | | uuid | [string](#string) | | |
<a name="environments-EnvironmentMetadata"></a>
### EnvironmentMetadata
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| name | [string](#string) | | A name of the environment |
| description | [string](#string) | | |
<a name="environments-EnvironmentSpec"></a>
### EnvironmentSpec
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| provider | [Provider](#environments-Provider) | | Provide |
| kubernetes | [Kubernetes](#environments-Kubernetes) | | |
| server_type | [ServerType](#environments-ServerType) | | |
| server_location | [Location](#environments-Location) | | |
| disk_size | [int32](#int32) | | |
<a name="environments-GetOptions"></a>
### GetOptions
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| id | [EnvironmentId](#environments-EnvironmentId) | | |
| metadata | [EnvironmentMetadata](#environments-EnvironmentMetadata) | | |
| owner_id | [OwnerId](#environments-OwnerId) | | |
| token | [Token](#environments-Token) | | |
<a name="environments-ListOptions"></a>
### ListOptions
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| metadata | [EnvironmentMetadata](#environments-EnvironmentMetadata) | | |
| search_string | [string](#string) | | |
| owner_id | [OwnerId](#environments-OwnerId) | | |
| token | [Token](#environments-Token) | | |
<a name="environments-OwnerId"></a>
### OwnerId
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| uuid | [string](#string) | | UUID of a user that is creating an environemnt |
<a name="environments-Token"></a>
### Token
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| token | [string](#string) | | Token that should be used to create an environment |
<a name="environments-UpdateOptions"></a>
### UpdateOptions
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| id | [EnvironmentId](#environments-EnvironmentId) | | |
| metadata | [EnvironmentMetadata](#environments-EnvironmentMetadata) | | |
| spec | [EnvironmentSpec](#environments-EnvironmentSpec) | | |
| owner_id | [OwnerId](#environments-OwnerId) | | |
| token | [Token](#environments-Token) | | |
<a name="environments-Kubernetes"></a>
### Kubernetes
| Name | Number | Description |
| ---- | ------ | ----------- |
| KUBERNETES_UNSPECIFIED | 0 | |
| KUBERNETES_K3S | 1 | |
<a name="environments-Location"></a>
### Location
| Name | Number | Description |
| ---- | ------ | ----------- |
| LOCATION_UNSPECIFIED | 0 | |
| LOCATION_HETZNER_NUREMBERG | 1 | |
| LOCATION_HETZNER_FALKENSTEIN | 2 | |
| LOCATION_HETZNER_HELSINKI | 3 | |
| LOCATION_HETZNER_HILLSBORO | 4 | |
| LOCATION_HETZNER_ASHBURN | 5 | |
<a name="environments-Provider"></a> <a name="environments-Provider"></a>
### Provider ### Provider
Helpers and other messages
| Name | Number | Description |
| ---- | ------ | ----------- |
| PROVIDER_UNSPECIFIED | 0 | |
| PROVIDER_HETZNER | 1 | |
<a name="environments-ServerType"></a>
### ServerType
| Name | Number | Description | | Name | Number | Description |
| ---- | ------ | ----------- | | ---- | ------ | ----------- |
| Hetzner | 0 | | | SERVER_TYPE_UNSPECIFIED | 0 | |
| SERVER_TYPE_STARTER | 1 | |
| SERVER_TYPE_REGULAR | 2 | |
| SERVER_TYPE_PLUS | 3 | |
| SERVER_TYPE_PRO | 4 | |
| SERVER_TYPE_CUSTOM | 5 | |
@ -104,11 +323,11 @@ Service for handling environments
| Method Name | Request Type | Response Type | Description | | Method Name | Request Type | Response Type | Description |
| ----------- | ------------ | ------------- | ------------| | ----------- | ------------ | ------------- | ------------|
| Create | [EnvironmentData](#environments-EnvironmentData) | [EnvironmentFull](#environments-EnvironmentFull) | | | Create | [CreateOptions](#environments-CreateOptions) | [EnvironmentFull](#environments-EnvironmentFull) | |
| Update | [EnvironmentFull](#environments-EnvironmentFull) | [EnvironmentFull](#environments-EnvironmentFull) | | | Update | [UpdateOptions](#environments-UpdateOptions) | [EnvironmentFull](#environments-EnvironmentFull) | |
| Delete | [EnvironmentFull](#environments-EnvironmentFull) | [.google.protobuf.Empty](#google-protobuf-Empty) | | | Delete | [DeleteOptions](#environments-DeleteOptions) | [.google.protobuf.Empty](#google-protobuf-Empty) | |
| Get | [EnvironmentId](#environments-EnvironmentId) | [EnvironmentFull](#environments-EnvironmentFull) | | | Get | [GetOptions](#environments-GetOptions) | [EnvironmentFull](#environments-EnvironmentFull) | |
| List | [.google.protobuf.Empty](#google-protobuf-Empty) | [EnvironmentFull](#environments-EnvironmentFull) stream | | | List | [ListOptions](#environments-ListOptions) | [EnvironmentFull](#environments-EnvironmentFull) stream | |
@ -163,7 +382,7 @@ This file has messages for describing environments
| ----- | ---- | ----- | ----------- | | ----- | ---- | ----- | ----------- |
| id | [AccountId](#accounts-AccountId) | | | | id | [AccountId](#accounts-AccountId) | | |
| data | [AccountData](#accounts-AccountData) | | | | data | [AccountData](#accounts-AccountData) | | |
| Token | [string](#string) | | | | token | [string](#string) | | |
@ -193,7 +412,7 @@ Represents a environment UUID only
| Field | Type | Label | Description | | Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- | | ----- | ---- | ----- | ----------- |
| Password | [string](#string) | | | | password | [string](#string) | | |
@ -209,7 +428,7 @@ Represents a environment UUID only
| Field | Type | Label | Description | | Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- | | ----- | ---- | ----- | ----------- |
| data | [AccountData](#accounts-AccountData) | | | | data | [AccountData](#accounts-AccountData) | | |
| AccountPassword | [AccountPassword](#accounts-AccountPassword) | | | | password | [AccountPassword](#accounts-AccountPassword) | | |
@ -231,6 +450,298 @@ Service for handling environments
| ----------- | ------------ | ------------- | ------------| | ----------- | ------------ | ------------- | ------------|
| SignUp | [AccountWithPassword](#accounts-AccountWithPassword) | [AccountFullWithToken](#accounts-AccountFullWithToken) | | | SignUp | [AccountWithPassword](#accounts-AccountWithPassword) | [AccountFullWithToken](#accounts-AccountFullWithToken) | |
| SignIn | [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) | |

View File

@ -1,6 +1,7 @@
/// This file has messages for describing environments /// This file has messages for describing environments
syntax = "proto3"; syntax = "proto3";
package accounts; package accounts;
import "google/protobuf/empty.proto";
option go_package = "git.badhouseplants.net/softplayer/softplayer-go-proto/pkg/accounts"; option go_package = "git.badhouseplants.net/softplayer/softplayer-go-proto/pkg/accounts";
/** /**
@ -9,8 +10,14 @@ option go_package = "git.badhouseplants.net/softplayer/softplayer-go-proto/pkg/a
service Accounts { service Accounts {
rpc SignUp (AccountWithPassword) returns (AccountFullWithToken) {} rpc SignUp (AccountWithPassword) returns (AccountFullWithToken) {}
rpc SignIn (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 * Represents a environment UUID only
*/ */
@ -19,7 +26,7 @@ message AccountId {
} }
message AccountPassword { message AccountPassword {
string Password = 1; string password = 1;
} }
@ -30,9 +37,16 @@ message AccountData {
message AccountWithPassword { message AccountWithPassword {
AccountData data = 1; AccountData data = 1;
AccountPassword AccountPassword = 2; AccountPassword password = 2;
} }
message AccountWithPasswordAndCode {
AccountData data = 1;
AccountPassword password = 2;
string code = 3;
}
message AccountFull { message AccountFull {
AccountId id = 1; AccountId id = 1;
AccountData data = 2; AccountData data = 2;
@ -41,6 +55,6 @@ message AccountFull {
message AccountFullWithToken { message AccountFullWithToken {
AccountId id = 1; AccountId id = 1;
AccountData data = 2; AccountData data = 2;
string Token = 3; string token = 3;
} }

View File

@ -0,0 +1,93 @@
/// This file has messages for describing applications
syntax = "proto3";
package applications;
import "google/protobuf/empty.proto";
option go_package = "git.badhouseplants.net/softplayer/softplayer-go-proto/pkg/applications";
/**
* Service for handling applications
*/
service Applications {
rpc Create(CreateOptions) returns (ApplicationFull) {}
rpc Update(UpdateOptions) returns (ApplicationFull) {}
rpc Delete(DeleteOptions) returns (google.protobuf.Empty) {}
rpc Get(GetOptions) returns (ApplicationFull) {}
rpc List(ListOptions) returns (stream ApplicationFull) {}
}
/**
User related messages
*/
message OwnerId {
string uuid = 1; // UUID of a user that is creating an environemnt
}
message Token {
string token = 1; // Token that should be used to create an environment
}
/**
Services options
*/
message CreateOptions {
ApplicationMetadata metadata = 1;
ApplicationSpec spec = 2;
OwnerId owner_id = 3;
Token token = 4;
}
message UpdateOptions {
ApplicationId id = 1;
ApplicationMetadata metadata = 2;
ApplicationSpec spec = 3;
OwnerId owner_id = 4;
Token token = 5;
}
message DeleteOptions {
ApplicationId id = 1;
ApplicationMetadata metadata = 2;
OwnerId owner_id = 3;
Token token = 4;
}
message GetOptions {
ApplicationId id = 1;
ApplicationMetadata metadata = 2;
OwnerId owner_id = 3;
Token token = 4;
}
message ListOptions {
ApplicationMetadata metadata = 1;
OwnerId owner_id = 2;
Token token = 3;
}
/**
Environment related messages
*/
message ApplicationId {
string uuid = 1;
}
message ApplicationMetadata {
string name = 1;
string description = 2;
}
message ApplicationSpec {
string application = 1;
string version = 2;
string environemnt_id = 3;
map<string, string> config = 4;
string raw_config = 5;
}
message ApplicationFull {
ApplicationMetadata metadata = 1;
ApplicationSpec spec = 2;
ApplicationId id = 3;
}

View File

@ -0,0 +1,23 @@
/// 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";
/*
* A service that should handle email validation
*/
service EmailValidation {
rpc SendRequest (RequestValidation) returns (google.protobuf.Empty) {}
rpc ValidateEmail (ConfirmValidation) returns (google.protobuf.Empty) {}
}
message RequestValidation {
string user_id = 1;
}
message ConfirmValidation {
string user_id = 1;
int32 code = 2;
}

View File

@ -8,30 +8,118 @@ option go_package = "git.badhouseplants.net/softplayer/softplayer-go-proto/pkg/e
* Service for handling environments * Service for handling environments
*/ */
service Environments { service Environments {
rpc Create(EnvironmentData) returns (EnvironmentFull) {} rpc Create(CreateOptions) returns (EnvironmentFull) {}
rpc Update(EnvironmentFull) returns (EnvironmentFull) {} rpc Update(UpdateOptions) returns (EnvironmentFull) {}
rpc Delete(EnvironmentFull) returns (google.protobuf.Empty) {} rpc Delete(DeleteOptions) returns (google.protobuf.Empty) {}
rpc Get(EnvironmentId) returns (EnvironmentFull) {} rpc Get(GetOptions) returns (EnvironmentFull) {}
rpc List(google.protobuf.Empty) returns (stream EnvironmentFull) {} rpc List(ListOptions) returns (stream EnvironmentFull) {}
} }
/** /**
* Represents a environment UUID only User related messages
*/ */
message OwnerId {
string uuid = 1; // UUID of a user that is creating an environemnt
}
message Token {
string token = 1; // Token that should be used to create an environment
}
/**
Services options
*/
message CreateOptions {
EnvironmentMetadata metadata = 1;
EnvironmentSpec spec = 2;
OwnerId owner_id = 3;
Token token = 4;
}
message UpdateOptions {
EnvironmentId id = 1;
EnvironmentMetadata metadata = 2;
EnvironmentSpec spec = 3;
OwnerId owner_id = 4;
Token token = 5;
}
message DeleteOptions {
EnvironmentId id = 1;
EnvironmentMetadata metadata = 2;
OwnerId owner_id = 3;
Token token = 4;
}
message GetOptions {
EnvironmentId id = 1;
EnvironmentMetadata metadata = 2;
OwnerId owner_id = 3;
Token token = 4;
}
message ListOptions {
EnvironmentMetadata metadata = 1;
string search_string = 2;
OwnerId owner_id = 3;
Token token = 4;
}
/**
Environment related messages
*/
message EnvironmentId { message EnvironmentId {
string id = 1; // Contour ID: UUID string uuid = 1;
}
message EnvironmentMetadata {
string name = 1; // A name of the environment
string description = 2;
} }
message EnvironmentData { message EnvironmentSpec {
string name = 1; // Environment name Provider provider = 1; // Provide
Provider provider = 2; // Provide Kubernetes kubernetes = 2;
} ServerType server_type = 3;
Location server_location = 4;
enum Provider { int32 disk_size = 5;
Hetzner = 0;
} }
message EnvironmentFull { message EnvironmentFull {
EnvironmentId id = 1; EnvironmentMetadata metadata = 1;
EnvironmentData data = 2; EnvironmentSpec spec = 2;
EnvironmentId id = 3;
}
/**
Helpers and other messages
*/
enum Provider {
PROVIDER_UNSPECIFIED = 0;
PROVIDER_HETZNER = 1;
}
enum ServerType {
SERVER_TYPE_UNSPECIFIED = 0;
SERVER_TYPE_STARTER = 1;
SERVER_TYPE_REGULAR = 2;
SERVER_TYPE_PLUS = 3;
SERVER_TYPE_PRO = 4;
SERVER_TYPE_CUSTOM = 5;
}
enum Location {
LOCATION_UNSPECIFIED = 0;
LOCATION_HETZNER_NUREMBERG = 1;
LOCATION_HETZNER_FALKENSTEIN = 2;
LOCATION_HETZNER_HELSINKI = 3;
LOCATION_HETZNER_HILLSBORO = 4;
LOCATION_HETZNER_ASHBURN = 5;
}
enum Kubernetes {
KUBERNETES_UNSPECIFIED = 0;
KUBERNETES_K3S = 1;
} }

3
renovate.json Normal file
View File

@ -0,0 +1,3 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json"
}