Skip to content

Commit

Permalink
feat(agent): implement table endpoints (#539)
Browse files Browse the repository at this point in the history
Because

- Introducing the new Table services.  
- OpenAPI generator is encountering rate-limit issues in the local
development environment.

This Commit

- Implements table endpoints.  
- Removes OpenAPI pre-commit hooks.
  • Loading branch information
donch1989 authored Jan 8, 2025
1 parent 0b289f6 commit 7c1c7ea
Show file tree
Hide file tree
Showing 5 changed files with 1,478 additions and 1 deletion.
1 change: 0 additions & 1 deletion .spectral.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,4 +17,3 @@ rules:
# are defined as part of the endpoint definition, so these nested types end
# up defined but not referenced.
oas2-unused-definition: off

215 changes: 215 additions & 0 deletions app/app/v1alpha/app_public_service.proto
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import "app/app/v1alpha/agent.proto";
// App definitions
import "app/app/v1alpha/app.proto";
import "app/app/v1alpha/conversation.proto";
import "app/app/v1alpha/table.proto";
// Google API
import "google/api/annotations.proto";
import "google/api/visibility.proto";
Expand Down Expand Up @@ -426,4 +427,218 @@ service AppPublicService {
}
};
}

// List tables
//
// Returns a paginated list of tables.
rpc ListTables(ListTablesRequest) returns (ListTablesResponse) {
option (google.api.http) = {get: "/v1alpha/namespaces/{namespace_id}/tables"};
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {
tags: "Table"
extensions: {
key: "x-stage"
value: {string_value: "alpha"}
}
};
}

// Create a table
//
// Creates a table.
rpc CreateTable(CreateTableRequest) returns (CreateTableResponse) {
option (google.api.http) = {
post: "/v1alpha/namespaces/{namespace_id}/tables"
body: "table"
};
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {
tags: "Table"
extensions: {
key: "x-stage"
value: {string_value: "alpha"}
}
};
}

// Get table
//
// Gets a table.
rpc GetTable(GetTableRequest) returns (GetTableResponse) {
option (google.api.http) = {get: "/v1alpha/namespaces/{namespace_id}/tables/{table_uid}"};
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {
tags: "Table"
extensions: {
key: "x-stage"
value: {string_value: "alpha"}
}
};
}

// Update table
//
// Updates a table.
rpc UpdateTable(UpdateTableRequest) returns (UpdateTableResponse) {
option (google.api.http) = {
patch: "/v1alpha/namespaces/{namespace_id}/tables/{table_uid}"
body: "table"
};
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {
tags: "Table"
extensions: {
key: "x-stage"
value: {string_value: "alpha"}
}
};
}

// Delete table
//
// Deletes a table.
rpc DeleteTable(DeleteTableRequest) returns (DeleteTableResponse) {
option (google.api.http) = {delete: "/v1alpha/namespaces/{namespace_id}/tables/{table_uid}"};
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {
tags: "Table"
extensions: {
key: "x-stage"
value: {string_value: "alpha"}
}
};
}

// Get column definitions
//
// Gets column definitions for a table.
rpc GetColumnDefinitions(GetColumnDefinitionsRequest) returns (GetColumnDefinitionsResponse) {
option (google.api.http) = {get: "/v1alpha/namespaces/{namespace_id}/tables/{table_uid}/column-definitions"};
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {
tags: "Table"
extensions: {
key: "x-stage"
value: {string_value: "alpha"}
}
};
}

// Update column definitions
//
// Updates column definitions for a table.
rpc UpdateColumnDefinitions(UpdateColumnDefinitionsRequest) returns (UpdateColumnDefinitionsResponse) {
option (google.api.http) = {
put: "/v1alpha/namespaces/{namespace_id}/tables/{table_uid}/column-definitions"
body: "column_definitions"
};
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {
tags: "Table"
extensions: {
key: "x-stage"
value: {string_value: "alpha"}
}
};
}

// List rows
//
// Returns list of rows.
rpc ListRows(ListRowsRequest) returns (ListRowsResponse) {
option (google.api.http) = {get: "/v1alpha/namespaces/{namespace_id}/tables/{table_uid}/rows"};
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {
tags: "Table"
extensions: {
key: "x-stage"
value: {string_value: "alpha"}
}
};
}

// Insert row
//
// Inserts a row into a table.
rpc InsertRow(InsertRowRequest) returns (InsertRowResponse) {
option (google.api.http) = {
post: "/v1alpha/namespaces/{namespace_id}/tables/{table_uid}/rows"
body: "row"
};
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {
tags: "Table"
extensions: {
key: "x-stage"
value: {string_value: "alpha"}
}
};
}

// Update row
//
// Updates a row in a table.
rpc UpdateRow(UpdateRowRequest) returns (UpdateRowResponse) {
option (google.api.http) = {
patch: "/v1alpha/namespaces/{namespace_id}/tables/{table_uid}/rows/{row_uid}"
body: "row"
};
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {
tags: "Table"
extensions: {
key: "x-stage"
value: {string_value: "alpha"}
}
};
}

// Update rows
//
// Updates multiple rows in a table.
rpc UpdateRows(UpdateRowsRequest) returns (UpdateRowsResponse) {
option (google.api.http) = {
patch: "/v1alpha/namespaces/{namespace_id}/tables/{table_uid}/rows"
body: "rows"
};
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {
tags: "Table"
extensions: {
key: "x-stage"
value: {string_value: "alpha"}
}
};
}

// Delete row
//
// Deletes a row from a table.
rpc DeleteRow(DeleteRowRequest) returns (DeleteRowResponse) {
option (google.api.http) = {delete: "/v1alpha/namespaces/{namespace_id}/tables/{table_uid}/rows/{row_uid}"};
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {
tags: "Table"
extensions: {
key: "x-stage"
value: {string_value: "alpha"}
}
};
}

// Delete rows
//
// Deletes multiple rows from a table.
rpc DeleteRows(DeleteRowsRequest) returns (DeleteRowsResponse) {
option (google.api.http) = {delete: "/v1alpha/namespaces/{namespace_id}/tables/{table_uid}/rows"};
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {
tags: "Table"
extensions: {
key: "x-stage"
value: {string_value: "alpha"}
}
};
}

// Export table
//
// Exports table data.
rpc Export(ExportRequest) returns (ExportResponse) {
option (google.api.http) = {get: "/v1alpha/namespaces/{namespace_id}/tables/{table_uid}/export"};
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {
tags: "Table"
extensions: {
key: "x-stage"
value: {string_value: "alpha"}
}
};
}
}
Loading

0 comments on commit 7c1c7ea

Please sign in to comment.