@@ -58,11 +58,28 @@ service CoreService {
5858 //
5959 // If the changes are valid, core will return the given store configuration in response, and
6060 // start or update the necessary feature population jobs for the updated store.
61- rpc UpdateStore (UpdateStoreRequest ) returns (UpdateStoreResponse );
61+ rpc UpdateStore (UpdateStoreRequest ) returns (UpdateStoreResponse );
62+
63+ // Creates a project. Projects serve as namespaces within which resources like features will be
64+ // created. Both feature set names as well as field names must be unique within a project. Project
65+ // names themselves must be globally unique.
66+ rpc CreateProject (CreateProjectRequest ) returns (CreateProjectResponse );
67+
68+ // Archives a project. Archived projects will continue to exist and function, but won't be visible
69+ // through the Core API. Any existing ingestion or serving requests will continue to function,
70+ // but will result in warning messages being logged. It is not possible to unarchive a project
71+ // through the Core API
72+ rpc ArchiveProject (ArchiveProjectRequest ) returns (ArchiveProjectResponse );
73+
74+ // Lists all projects active projects.
75+ rpc ListProjects (ListProjectsRequest ) returns (ListProjectsResponse );
6276}
6377
6478// Request for a single feature set
6579message GetFeatureSetRequest {
80+ // Name of project the feature set belongs to (required)
81+ string project = 3 ;
82+
6683 // Name of feature set (required).
6784 string name = 1 ;
6885
@@ -77,21 +94,25 @@ message GetFeatureSetResponse {
7794
7895// Retrieves details for all versions of a specific feature set
7996message ListFeatureSetsRequest {
97+ Filter filter = 1 ;
98+
8099 message Filter {
81- // Name of the desired feature set. Valid regex strings are allowed.
100+ // Name of project that the feature sets belongs to.
101+ string project = 3 ;
102+
103+ // Name of the desired feature set. Asterisks can be used as wildcards in the name.
82104 // e.g.
83- // - . * can be used to match all feature sets
84- // - my-project-. * can be used to match all features prefixed by "my-project "
105+ // - * can be used to match all feature sets
106+ // - my-feature-set * can be used to match all features prefixed by "my-feature-set "
85107 string feature_set_name = 1 ;
108+
86109 // Version of the desired feature set. Either a number or valid expression can be provided.
87110 // e.g.
88111 // - 1 will match version 1 exactly
89112 // - >=1 will match all versions greater or equal to 1
90113 // - <10 will match all versions less than 10
91114 string feature_set_version = 2 ;
92115 }
93-
94- Filter filter = 1 ;
95116}
96117
97118message ListFeatureSetsResponse {
@@ -133,7 +154,8 @@ message ApplyFeatureSetResponse {
133154 Status status = 2 ;
134155}
135156
136- message GetFeastCoreVersionRequest {}
157+ message GetFeastCoreVersionRequest {
158+ }
137159
138160message GetFeastCoreVersionResponse {
139161 string version = 1 ;
@@ -153,4 +175,34 @@ message UpdateStoreResponse {
153175 }
154176 feast.core.Store store = 1 ;
155177 Status status = 2 ;
178+ }
179+
180+ // Request to create a project
181+ message CreateProjectRequest {
182+ // Name of project (required)
183+ string name = 1 ;
184+ }
185+
186+ // Response for creation of a project
187+ message CreateProjectResponse {
188+ }
189+
190+ // Request for the archival of a project
191+ message ArchiveProjectRequest {
192+ // Name of project to be archived
193+ string name = 1 ;
194+ }
195+
196+ // Response for archival of a project
197+ message ArchiveProjectResponse {
198+ }
199+
200+ // Request for listing of projects
201+ message ListProjectsRequest {
202+ }
203+
204+ // Response for listing of projects
205+ message ListProjectsResponse {
206+ // List of project names (archived projects are filtered out)
207+ repeated string projects = 1 ;
156208}
0 commit comments