Skip to content

Commit c2c0f0f

Browse files
feat: Local resolve uses new state url endpoint
1 parent 0071949 commit c2c0f0f

File tree

4 files changed

+36
-43
lines changed

4 files changed

+36
-43
lines changed

confidence-proto/src/main/proto/confidence/flags/admin/v1/resolver.proto

Lines changed: 0 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -4,52 +4,14 @@ package confidence.flags.admin.v1;
44

55
import "google/protobuf/timestamp.proto";
66
import "google/api/resource.proto";
7-
import "google/api/annotations.proto";
87
import "confidence/iam/iam.proto";
9-
import "google/api/field_behavior.proto";
108

119
import "confidence/flags/admin/v1/types.proto";
1210

1311
option java_package = "com.spotify.confidence.shaded.flags.admin.v1";
1412
option java_multiple_files = true;
1513
option java_outer_classname = "ResolverProto";
1614

17-
// Service for fetching the state for resolving flags
18-
service ResolverStateService {
19-
// Gets the full state for running a resolver
20-
rpc FullResolverState(ResolverStateRequest) returns (stream ResolverState) {
21-
option (google.api.http) = {
22-
get: "/v1/resolverState:full"
23-
};
24-
}
25-
26-
// Gets a signed uri that can be used to download the current resolver state
27-
rpc ResolverStateUri(ResolverStateUriRequest) returns (ResolverStateUriResponse){
28-
option (google.api.http) = {
29-
get: "/v1/resolverState:resolverStateUri"
30-
};
31-
}
32-
}
33-
34-
// Request to fetch resolver state uri
35-
message ResolverStateUriRequest {
36-
37-
}
38-
39-
// Response of fetching resolver state uri
40-
message ResolverStateUriResponse {
41-
// The signed uri that can be used to fetch state
42-
string signed_uri = 1;
43-
// At what time the state uri expires
44-
google.protobuf.Timestamp expire_time = 2;
45-
string account = 3;
46-
47-
}
48-
49-
// Request to get the resolver state for the whole account
50-
message ResolverStateRequest {
51-
}
52-
5315
// The full state for operating a flags resolver
5416
message ResolverState {
5517
// All active flags
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
syntax = "proto3";
2+
3+
package confidence.flags.resolver.v1;
4+
5+
import "google/protobuf/timestamp.proto";
6+
7+
option java_package = "com.spotify.confidence.flags.resolver.v1";
8+
option java_multiple_files = true;
9+
option java_outer_classname = "ResolverStateProto";
10+
11+
// Service for fetching resolver state metadata (e.g., a signed URI to the state file)
12+
service ResolverStateService {
13+
// Gets a signed uri that can be used to download the current resolver state
14+
rpc ResolverStateUri(ResolverStateUriRequest) returns (ResolverStateUriResponse) {
15+
}
16+
}
17+
18+
// Request to fetch resolver state uri
19+
message ResolverStateUriRequest {}
20+
21+
// Response of fetching resolver state uri
22+
message ResolverStateUriResponse {
23+
// The signed uri that can be used to fetch state
24+
string signed_uri = 1;
25+
// At what time the state uri expires
26+
google.protobuf.Timestamp expire_time = 2;
27+
// The account the referenced state belongs to
28+
string account = 3;
29+
}
30+
31+

openfeature-provider-local/src/main/java/com/spotify/confidence/FlagsAdminStateFetcher.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@
66
import com.fasterxml.jackson.databind.util.ByteBufferBackedInputStream;
77
import com.google.protobuf.ByteString;
88
import com.google.protobuf.Timestamp;
9+
import com.spotify.confidence.flags.resolver.v1.ResolverStateServiceGrpc;
10+
import com.spotify.confidence.flags.resolver.v1.ResolverStateUriRequest;
11+
import com.spotify.confidence.flags.resolver.v1.ResolverStateUriResponse;
912
import com.spotify.confidence.shaded.flags.admin.v1.Flag;
10-
import com.spotify.confidence.shaded.flags.admin.v1.ResolverStateServiceGrpc;
11-
import com.spotify.confidence.shaded.flags.admin.v1.ResolverStateUriRequest;
12-
import com.spotify.confidence.shaded.flags.admin.v1.ResolverStateUriResponse;
1313
import com.spotify.confidence.shaded.flags.admin.v1.Segment;
1414
import com.spotify.confidence.shaded.iam.v1.Client;
1515
import com.spotify.confidence.shaded.iam.v1.ClientCredential;

openfeature-provider-local/src/main/java/com/spotify/confidence/LocalResolverServiceFactory.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@
55
import com.google.common.util.concurrent.ThreadFactoryBuilder;
66
import com.google.protobuf.Struct;
77
import com.spotify.confidence.TokenHolder.Token;
8+
import com.spotify.confidence.flags.resolver.v1.ResolverStateServiceGrpc;
9+
import com.spotify.confidence.flags.resolver.v1.ResolverStateServiceGrpc.ResolverStateServiceBlockingStub;
810
import com.spotify.confidence.shaded.flags.admin.v1.FlagAdminServiceGrpc;
9-
import com.spotify.confidence.shaded.flags.admin.v1.ResolverStateServiceGrpc;
10-
import com.spotify.confidence.shaded.flags.admin.v1.ResolverStateServiceGrpc.ResolverStateServiceBlockingStub;
1111
import com.spotify.confidence.shaded.flags.resolver.v1.InternalFlagLoggerServiceGrpc;
1212
import com.spotify.confidence.shaded.flags.resolver.v1.Sdk;
1313
import com.spotify.confidence.shaded.flags.resolver.v1.WriteFlagLogsResponse;

0 commit comments

Comments
 (0)