summaryrefslogtreecommitdiff
path: root/src/components/demos/zero-trust/types.ts
blob: 07dd5b752eea9f55eee94baca4d0caaa451d16aa (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
import type { Edge, Node } from "@xyflow/react";

export type ZTPillar =
  | "identity"
  | "device"
  | "application"
  | "network"
  | "data";

export type FlowState = "allowed" | "denied" | "challenge" | "encrypted";

export type ZTNodeKind =
  | "user"
  | "device"
  | "idp"
  | "gateway"
  | "workload"
  | "data"
  | "network"
  | "monitoring";

export type ZTNodeData = {
  label: string;
  role: string;
  kind: ZTNodeKind;
};

export type ZTScenarioStep = {
  id: string;
  title: string;
  description: string;
  highlightNodes: string[];
  highlightEdges: string[];
  pillars: ZTPillar[];
  practices: string[];
};

export type ZTScenarioDefinition = {
  id: string;
  title: string;
  subtitle: string;
  intro: string;
  nodes: Node<ZTNodeData>[];
  edges: Edge[];
  steps: ZTScenarioStep[];
};

export const PILLAR_LABELS: Record<ZTPillar, string> = {
  identity: "Identité",
  device: "Appareil",
  application: "Application / charge de travail",
  network: "Réseau",
  data: "Données",
};