Skip to content

Commit 4595101

Browse files
authored
[#70]: feat: add Connect-RPC service definitions for 6 plugins
2 parents 265bb1e + 24d7b63 commit 4595101

10 files changed

Lines changed: 130 additions & 11 deletions

File tree

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,3 +14,4 @@
1414
# Dependency directories (remove the comment below to include it)
1515
# vendor/
1616
.idea
17+
.claude/settings.local.json

buf.yaml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,16 @@ modules:
33
- path: roadrunner/api
44
- path: third_party/api
55
lint:
6+
except:
7+
# RR plugin RPCs share request/response types across methods (e.g. all
8+
# LockService RPCs use LockRequest/LockResponse) and use domain-object
9+
# names rather than the <Method>Request/<Method>Response convention.
10+
- RPC_REQUEST_RESPONSE_UNIQUE
11+
- RPC_REQUEST_STANDARD_NAME
12+
- RPC_RESPONSE_STANDARD_NAME
13+
# ServiceManager (service plugin RPC service) intentionally drops the
14+
# "Service" suffix for readability.
15+
- SERVICE_SUFFIX
616
ignore:
717
- third_party/api
818
- roadrunner/api/centrifugo/api
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
syntax = "proto3";
2+
3+
package applogger.v2;
4+
5+
import "applogger/v2/applogger.proto";
6+
7+
option go_package = "github.com/roadrunner-server/api-go/v6/applogger/v2;apploggerV2";
8+
option php_metadata_namespace = "RoadRunner\\AppLogger\\DTO\\V2\\GPBMetadata";
9+
option php_namespace = "RoadRunner\\AppLogger\\DTO\\V2";
10+
11+
// LogMessage carries a plain string log payload for the Error/Info/Warning/Debug/Log RPCs.
12+
// Domain-specific so future fields (level, caller skip, etc.) can be added without breaking the wire.
13+
message LogMessage {
14+
string message = 1;
15+
}
16+
17+
service AppLoggerService {
18+
rpc Error(LogMessage) returns (LogResponse);
19+
rpc ErrorWithContext(LogEntry) returns (LogResponse);
20+
rpc Info(LogMessage) returns (LogResponse);
21+
rpc InfoWithContext(LogEntry) returns (LogResponse);
22+
rpc Warning(LogMessage) returns (LogResponse);
23+
rpc WarningWithContext(LogEntry) returns (LogResponse);
24+
rpc Debug(LogMessage) returns (LogResponse);
25+
rpc DebugWithContext(LogEntry) returns (LogResponse);
26+
rpc Log(LogMessage) returns (LogResponse);
27+
rpc LogWithContext(LogEntry) returns (LogResponse);
28+
}

roadrunner/api/http/v2/service.proto

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,17 +11,8 @@ option php_metadata_namespace = "RoadRunner\\HTTP\\DTO\\V2\\GPBMetadata";
1111
option php_namespace = "RoadRunner\\HTTP\\DTO\\V2";
1212

1313
service HttpProxyService {
14-
// buf:lint:ignore RPC_REQUEST_RESPONSE_UNIQUE
15-
// buf:lint:ignore RPC_REQUEST_STANDARD_NAME
16-
// buf:lint:ignore RPC_RESPONSE_STANDARD_NAME
1714
rpc FetchRequest(google.protobuf.Empty) returns (HttpHandlerRequest);
18-
// buf:lint:ignore RPC_REQUEST_STANDARD_NAME
19-
// buf:lint:ignore RPC_RESPONSE_STANDARD_NAME
2015
rpc FetchRequests(HttpHandlerFetchRequest) returns (HttpHandlerRequests);
21-
// buf:lint:ignore RPC_REQUEST_RESPONSE_UNIQUE
2216
rpc HttpHandler(HttpHandlerRequest) returns (HttpHandlerResponse);
23-
// buf:lint:ignore RPC_REQUEST_RESPONSE_UNIQUE
24-
// buf:lint:ignore RPC_REQUEST_STANDARD_NAME
25-
// buf:lint:ignore RPC_RESPONSE_STANDARD_NAME
2617
rpc HttpResponse(HttpHandlerResponse) returns (google.protobuf.Empty);
2718
}

roadrunner/api/jobs/v2/request.proto

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,12 @@ message JobsHandlerRequest {
1212
Job job = 1;
1313
}
1414

15+
// PushRequest is the single-job variant of PushBatchRequest, used by JobsService.Push.
16+
// Proto-shape enforces single-job semantics; no runtime guard needed.
17+
message PushRequest {
18+
Job job = 1;
19+
}
20+
1521
message PushBatchRequest {
1622
repeated Job jobs = 1;
1723
// request headers

roadrunner/api/jobs/v2/service.proto

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,22 @@ syntax = "proto3";
22

33
package jobs.v2;
44

5+
import "google/protobuf/empty.proto";
6+
import "jobs/v2/jobs.proto";
57
import "jobs/v2/request.proto";
68
import "jobs/v2/response.proto";
79

810
option go_package = "github.com/roadrunner-server/api-go/v6/jobs/v2;jobsV2";
911
option php_metadata_namespace = "RoadRunner\\Jobs\\DTO\\V2\\GPBMetadata";
1012
option php_namespace = "RoadRunner\\Jobs\\DTO\\V2";
1113

12-
service JobsProxyService {
13-
rpc JobsHandler(JobsHandlerRequest) returns (JobsHandlerResponse);
14+
service JobsService {
15+
rpc Push(PushRequest) returns (JobsHandlerResponse);
16+
rpc PushBatch(PushBatchRequest) returns (JobsHandlerResponse);
17+
rpc Pause(Pipelines) returns (JobsHandlerResponse);
18+
rpc Resume(Pipelines) returns (JobsHandlerResponse);
19+
rpc List(google.protobuf.Empty) returns (Pipelines);
20+
rpc Declare(DeclareRequest) returns (JobsHandlerResponse);
21+
rpc Destroy(Pipelines) returns (Pipelines);
22+
rpc GetStats(google.protobuf.Empty) returns (Stats);
1423
}

roadrunner/api/kv/v2/service.proto

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
syntax = "proto3";
2+
3+
package kv.v2;
4+
5+
import "kv/v2/request.proto";
6+
import "kv/v2/response.proto";
7+
8+
option go_package = "github.com/roadrunner-server/api-go/v6/kv/v2;kvV2";
9+
option php_metadata_namespace = "RoadRunner\\KV\\DTO\\V2\\GPBMetadata";
10+
option php_namespace = "RoadRunner\\KV\\DTO\\V2";
11+
12+
service KvService {
13+
rpc Has(KvRequest) returns (KvResponse);
14+
rpc Set(KvRequest) returns (KvResponse);
15+
rpc MGet(KvRequest) returns (KvResponse);
16+
rpc MExpire(KvRequest) returns (KvResponse);
17+
rpc TTL(KvRequest) returns (KvResponse);
18+
rpc Delete(KvRequest) returns (KvResponse);
19+
rpc Clear(KvRequest) returns (KvResponse);
20+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
syntax = "proto3";
2+
3+
package lock.v1;
4+
5+
import "lock/v1/lock.proto";
6+
7+
option go_package = "github.com/roadrunner-server/api-go/v6/lock/v1;lockV1";
8+
option php_metadata_namespace = "RoadRunner\\Lock\\DTO\\V1\\GPBMetadata";
9+
option php_namespace = "RoadRunner\\Lock\\DTO\\V1";
10+
11+
service LockService {
12+
rpc Lock(LockRequest) returns (LockResponse);
13+
rpc LockRead(LockRequest) returns (LockResponse);
14+
rpc Release(LockRequest) returns (LockResponse);
15+
rpc ForceRelease(LockRequest) returns (LockResponse);
16+
rpc Exists(LockRequest) returns (LockResponse);
17+
rpc UpdateTTL(LockRequest) returns (LockResponse);
18+
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
syntax = "proto3";
2+
3+
package service.v1;
4+
5+
import "service/v1/service.proto";
6+
7+
option go_package = "github.com/roadrunner-server/api-go/v6/service/v1;serviceV1";
8+
option php_metadata_namespace = "RoadRunner\\Service\\DTO\\V1\\GPBMetadata";
9+
option php_namespace = "RoadRunner\\Service\\DTO\\V1";
10+
11+
// ServiceManager exposes lifecycle and status RPCs for the service plugin.
12+
// RPC method names are prefixed (CreateService, GetStatus, …) to avoid
13+
// collisions with same-named messages in this package (Create, Status, …).
14+
service ServiceManager {
15+
rpc CreateService(Create) returns (Response);
16+
rpc Terminate(Service) returns (Response);
17+
rpc Restart(Service) returns (Response);
18+
rpc GetStatus(Service) returns (Status);
19+
rpc GetStatuses(Service) returns (Statuses);
20+
rpc ListServices(Service) returns (List);
21+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
syntax = "proto3";
2+
3+
package status.v2;
4+
5+
import "status/v2/request.proto";
6+
import "status/v2/response.proto";
7+
8+
option go_package = "github.com/roadrunner-server/api-go/v6/status/v2;statusV2";
9+
option php_metadata_namespace = "RoadRunner\\Status\\DTO\\V2\\GPBMetadata";
10+
option php_namespace = "RoadRunner\\Status\\DTO\\V2";
11+
12+
service StatusService {
13+
rpc Status(StatusRequest) returns (StatusResponse);
14+
rpc Ready(StatusRequest) returns (StatusResponse);
15+
}

0 commit comments

Comments
 (0)