mirror of
https://github.com/Azure/cosmos-explorer.git
synced 2025-05-17 22:05:23 +01:00
* add Materialized Views feature flag * fetch MV properties from RP API and capture them in our data models * AddMaterializedViewPanel * undefined check * subpartition keys * Partition Key, Throughput, Unique Keys * All views associated with a container (#2063) and Materialized View Target Container (#2065) Identified Source container and Target container Created tabs in Scale and Settings respectively Changed the Icon of target container * Add MV Panel * format * format * styling * add tests * tests * test files (#2074) Co-authored-by: nishthaAhujaa * fix type error * fix tests * merge conflict * Panel Integration (#2075) * integrated panel * edited header text --------- Co-authored-by: nishthaAhujaa <nishtha17354@iiittd.ac.in> Co-authored-by: Asier Isayas <aisayas@microsoft.com> * updated tests (#2077) Co-authored-by: nishthaAhujaa * fix tests * update treeNodeUtil test snap * update settings component test snap * fixed source container in global "New Materialized View" * source container check (#2079) Co-authored-by: nishthaAhujaa * renamed Materialized Views to Global Secondary Index * more renaming * fix import * fix typo * disable materialized views for Fabric * updated input validation --------- Co-authored-by: Asier Isayas <aisayas@microsoft.com> Co-authored-by: Nishtha Ahuja <45535788+nishthaAhujaa@users.noreply.github.com> Co-authored-by: nishthaAhujaa <nishtha17354@iiittd.ac.in>
64 lines
2.1 KiB
TypeScript
64 lines
2.1 KiB
TypeScript
import ko from "knockout";
|
|
import * as DataModels from "../../../Contracts/DataModels";
|
|
import * as ViewModels from "../../../Contracts/ViewModels";
|
|
import Explorer from "../../Explorer";
|
|
|
|
export const container = new Explorer();
|
|
|
|
export const collection = {
|
|
container: container,
|
|
databaseId: "test",
|
|
id: ko.observable<string>("test"),
|
|
defaultTtl: ko.observable<number>(5),
|
|
analyticalStorageTtl: ko.observable<number>(undefined),
|
|
indexingPolicy: ko.observable<DataModels.IndexingPolicy>({
|
|
automatic: true,
|
|
indexingMode: "consistent",
|
|
includedPaths: [],
|
|
excludedPaths: [],
|
|
}),
|
|
uniqueKeyPolicy: {} as DataModels.UniqueKeyPolicy,
|
|
usageSizeInKB: ko.observable(100),
|
|
offer: ko.observable<DataModels.Offer>({
|
|
autoscaleMaxThroughput: undefined,
|
|
manualThroughput: 10000,
|
|
minimumThroughput: 6000,
|
|
id: "offer",
|
|
offerReplacePending: false,
|
|
}),
|
|
conflictResolutionPolicy: ko.observable<DataModels.ConflictResolutionPolicy>(
|
|
{} as DataModels.ConflictResolutionPolicy,
|
|
),
|
|
changeFeedPolicy: ko.observable<DataModels.ChangeFeedPolicy>({} as DataModels.ChangeFeedPolicy),
|
|
geospatialConfig: ko.observable<DataModels.GeospatialConfig>({} as DataModels.GeospatialConfig),
|
|
getDatabase: () => {
|
|
return;
|
|
},
|
|
partitionKey: {
|
|
paths: [],
|
|
kind: "hash",
|
|
version: 2,
|
|
},
|
|
partitionKeyProperties: ["partitionKey"],
|
|
computedProperties: ko.observable<DataModels.ComputedProperties>([
|
|
{
|
|
name: "queryName",
|
|
query: "query",
|
|
},
|
|
]),
|
|
vectorEmbeddingPolicy: ko.observable<DataModels.VectorEmbeddingPolicy>({} as DataModels.VectorEmbeddingPolicy),
|
|
fullTextPolicy: ko.observable<DataModels.FullTextPolicy>({} as DataModels.FullTextPolicy),
|
|
materializedViews: ko.observable<DataModels.MaterializedView[]>([
|
|
{ id: "view1", _rid: "rid1" },
|
|
{ id: "view2", _rid: "rid2" },
|
|
]),
|
|
materializedViewDefinition: ko.observable<DataModels.MaterializedViewDefinition>({
|
|
definition: "SELECT * FROM c WHERE c.id = 1",
|
|
sourceCollectionId: "source1",
|
|
sourceCollectionRid: "rid123",
|
|
}),
|
|
readSettings: () => {
|
|
return;
|
|
},
|
|
} as unknown as ViewModels.Collection;
|