history and a single alias reference

This commit is contained in:
Filipriec
2026-09-01 11:07:22 +02:00
parent 09dc594afe
commit 73092a55f9
4 changed files with 218 additions and 5 deletions

View File

@@ -58,6 +58,9 @@ service TableDefinition {
// Returns the stored rename history for column aliases in one profile.
rpc GetColumnAliasRenameHistory(GetColumnAliasRenameHistoryRequest) returns (GetColumnAliasRenameHistoryResponse);
// Returns the unified append-only history for column and option aliases.
rpc GetAliasChangeHistory(GetAliasChangeHistoryRequest) returns (GetAliasChangeHistoryResponse);
// Atomically replaces the aliases and presentation order of a table's columns.
// Physical column names and identities remain unchanged.
rpc SetColumnPresentation(SetColumnPresentationRequest) returns (SetColumnPresentationResponse);
@@ -485,6 +488,43 @@ message GetColumnAliasRenameHistoryResponse {
repeated ColumnAliasRenameHistoryEntry entries = 2;
}
enum AliasChangeKind {
ALIAS_CHANGE_KIND_UNSPECIFIED = 0;
ALIAS_CHANGE_KIND_COLUMN = 1;
ALIAS_CHANGE_KIND_OPTION = 2;
}
message GetAliasChangeHistoryRequest {
string profile_name = 1;
optional int64 table_definition_id = 2;
optional int64 column_id = 3;
AliasChangeKind alias_kind = 4;
optional string option_value = 5;
uint32 limit = 6;
}
message AliasChangeHistoryEntry {
int64 id = 1;
string change_set_id = 2;
AliasChangeKind alias_kind = 3;
string profile_name = 4;
int64 table_definition_id = 5;
string table_name = 6;
optional int64 column_id = 7;
string column_name = 8;
optional string option_value = 9;
optional string old_alias = 10;
optional string new_alias = 11;
optional string changed_by_user_id = 12;
optional string changed_by_user_name = 13;
string changed_at = 14;
}
message GetAliasChangeHistoryResponse {
string profile_name = 1;
repeated AliasChangeHistoryEntry entries = 2;
}
// Describes a table with its columns and associated scripts.
message TableDetail {
string name = 1;
@@ -530,8 +570,8 @@ message ColumnBehavior {
// This is not an authorization boundary; data APIs still expose the column.
bool hidden_from_forms = 6;
// User-selected labels for stable option values. Empty means clients display
// the canonical value. Writes may submit either value or alias.
// Current public aliases for stable option values. Identity aliases equal the
// canonical value. Once renamed, public writes must use the current alias.
repeated OptionValueAlias option_value_aliases = 7;
}