Files
cosmos-explorer/src/Contracts/FabricMessagesContract.ts
2025-02-06 16:50:22 +01:00

75 lines
1.6 KiB
TypeScript

import { AuthorizationToken } from "./FabricMessageTypes";
// This is the version of these messages
export const FABRIC_RPC_VERSION = "2";
// Fabric to Data Explorer
export type FabricMessageV2 =
| {
type: "newContainer";
databaseName: string;
}
| {
type: "initialize";
version: string;
id: string;
message: {
connectionId: string;
isVisible: boolean;
isReadOnly: boolean;
artifactType: CosmosDbArtifactType;
// For Native artifacts
nativeConnectionInfo?: FabricNativeDatabaseConnectionInfo;
};
}
| {
type: "authorizationToken";
message: {
id: string;
error: string | undefined;
data: AuthorizationToken | undefined;
};
}
| {
type: "allResourceTokens_v2";
message: {
id: string;
error: string | undefined;
data: FabricMirroredDatabaseConnectionInfo | undefined;
};
}
| {
type: "explorerVisible";
message: {
visible: boolean;
};
};
export enum CosmosDbArtifactType {
MIRRORED = "MIRRORED",
NATIVE = "NATIVE",
}
export interface FabricNativeDatabaseConnectionInfo {
accessToken: string;
accountName: string;
databaseName: string;
connectionString: string;
}
export interface CosmosDBTokenResponse {
token: string;
date: string;
}
export interface CosmosDBConnectionInfoResponse {
endpoint: string;
databaseId: string;
resourceTokens: Record<string, string>;
}
export interface FabricMirroredDatabaseConnectionInfo extends CosmosDBConnectionInfoResponse {
resourceTokensTimestamp: number;
}