diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000..4ab6aca --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,54 @@ +# AGENTS.md - Cross-Agent Contract + + + +This repository is the system of record for Collibra-specific code, + metamodel abstractions, operating-model import/export workflows, Edge + integrations, and the implementation behind the `singine collibra ...` + command family. + +This file follows the shared-agent split of approximately 80% common policy and 20% agent-specific guidance. + +This file is the generic entry point for agents and LLM-based tools that + do not have their own dedicated repository instruction file yet. + +## Repository Boundary + +- Implement Collibra REST, SDK, CLI, MCP, operating-model, Edge, and tenant-specific governance logic here. +- Expose Collibra-aware logic to Singine through `singine-collibra/python/singine_collibra/` rather than duplicating it in Singine. +- Keep Singine focused on execution, privileges, orchestration, and general runtime publication concerns. +- Prefer SilkPage for transformation-heavy XML/XSLT/XPath/RDF/TTL/SPARQL/SQL/GraphQL pipelines when that work is not intrinsically Collibra-specific. +- Treat the Collibra metamodel and its governed identifiers as a canonical alignment contract across repositories and agents. + +## Change Policy + +- Default to adding or updating tests for every functional change. +- Prefer Singine-level tests and MCP-interface tests when the feature is exposed through `singine collibra ...`. +- Update documentation in parallel with code changes: XML model/command docs, OpenAPI descriptions when applicable, man pages, and Markdown pages. +- If tests or documentation are intentionally omitted, explain that explicitly in the final response. +- When a change introduces or modifies a CLI surface, keep command registration, docs/xml, man pages, and Markdown usage examples aligned. + +## Metamodel Alignment + +- New features should explain how they map to the Collibra metamodel, operating model, assignments, views, or governed identifiers. +- Prefer loading the exported operating-model package from `~/ws/today/metamodel/` when available, and use hand-written fallbacks only as secondary sources. +- Metamodel visualisation, import, and export features should preserve interchangeability with Singine-friendly in-memory opmodel projections. + +## Documentation Sources + +- `docs/xml/singine-collibra-model.xml`: Canonical model narrative +- `docs/xml/singine-collibra-commands.xml`: Canonical command narrative +- `docs/man/`: Generated and maintained man pages +- `README.md`: Human-oriented repository overview +- `BACKLOG.md`: Open implementation gaps and risks + +## Verification + +- Run the smallest meaningful verification for the change, and prefer executable checks over pure inspection. +- For Python changes, at minimum run syntax validation and targeted execution paths when possible. +- For command-surface changes, verify the parser wiring or command output path directly. + +## Agent-Specific Additions + +- Assume the shared 80% contract is mandatory and keep system-specific behavior in a thin compatibility layer. +- New agent integrations should extend the XML contract rather than forking repository policy into unrelated markdown files. diff --git a/BACKLOG.md b/BACKLOG.md new file mode 100644 index 0000000..58077f0 --- /dev/null +++ b/BACKLOG.md @@ -0,0 +1,354 @@ +# Backlog — sindoc/collibra + +> Upsert target: Claude Code backlog · branch `claude/add-documentation-docs1` +> Last updated: 2026-03-26 + +--- + +## Epics + +| ID | Epic | Status | +|----|------|--------| +| E1 | chip MCP query surface | in progress | +| E2 | Quantum catalog & symbolic chain | in progress | +| E3 | gRPC-HTTP persistence bridge | open | +| E4 | JProfiler JVM attach (Groovy + Clojure) | open | +| E5 | Code tables + Shiva base layer | open | +| E6 | BubbleLeader builder chain | open | +| E7 | Cosine similarity → Collibra resolution | open | + +--- + +## E1 · chip MCP Query Surface + +### CHIP-001 · MCP query DSL — `chip_queries.py` + +**Status:** done +**Branch:** `claude/add-documentation-docs1` +**File:** `singine-collibra/python/singine_collibra/chip_queries.py` + +Implements the full `~ws(self, ...+ ++ +++ ++++ +++++)/codeLookup().lambda_().exec().try_catch_claude()` chain. + +**Acceptance criteria:** +- [x] `WorkspaceDepth` enum: SELF(0) → FULL(5), symbols `self + ++ +++ ++++ +++++` +- [x] `WorkspaceContext(depth)` constructs root traversal context +- [x] `CodeLookupQuery._build_request()` emits valid JSON-RPC 2.0 `tools/call` to chip +- [x] `.lambda_(transform)` wraps in deferred `LambdaExec` +- [x] `.exec()` runs chip session; catches all exceptions +- [x] `.try_catch_claude()` returns result or MCP error envelope (`code: -32000`) +- [x] `.type_retrieval()` returns typed `TypeRetrieval` with `TypeRef` +- [x] `discover_jvm_targets()` uses `jps -l` to find Groovy + Clojure PIDs + +**Depends on:** `chip.py` (ChipSession, ChipRequest, ChipPaths) + +--- + +### CHIP-002 · XML grammar — `chip-queries.xml` + +**Status:** done +**File:** `docs/xml/chip-queries.xml` + +System-of-design for the full query surface. Go `lang=XML.g()` entry point. + +**Acceptance criteria:** +- [x] `` — 6 levels (self, +, ++, +++, ++++, +++++) +- [x] `` — `code-lookup`, `type-retrieval`, `lambda-exec` +- [x] `` — 6 RPC bindings for `singine.persistence.v1` +- [x] `` — `groovy-process`, `clojure-process` with pattern matchers +- [x] `` — declares output path and generated types + +--- + +### CHIP-003 · HTTP-compatible gRPC bridge + +**Status:** done (Python layer); **open** (Go server + proto codegen) +**File:** `singine-collibra/python/singine_collibra/chip_queries.py` → `grpc_http_call()` + +**Acceptance criteria:** +- [x] `GrpcHttpRequest` dataclass: `rpc`, `body`, `base_url`, `use_http` +- [x] `_RPC_HTTP_MAP` covers all 6 `persistence.proto` RPCs +- [x] HTTP transcoding: POST/GET with `X-Singine-Rpc` header +- [ ] Go `grpc-gateway` annotations in `persistence.proto` +- [ ] Generated `persistence.pb.gw.go` for native HTTP/2 + JSON transcoding +- [ ] Integration test: Python HTTP call → Go grpc-gateway → Clojure handler + +--- + +## E2 · Quantum Catalog & Symbolic Chain + +### QCAT-001 · Quantum catalog Python module + +**Status:** done +**File:** `singine-collibra/python/singine_collibra/quantum_catalog.py` + +**Acceptance criteria:** +- [x] `dirac(x, x0, eps)` — Gaussian δ approximation +- [x] `einstein()` — field equations + data-gravity analog + ultimate metric +- [x] `knuth()` — O/Ω/Θ + up-arrow notation +- [x] `tex()` — TeX badness formula string +- [x] `latex(expr)` — renders any expr to LaTeX string +- [x] `jd(Y, M, D)` — Julian Day Number for temporal lineage keys +- [x] `QuantumStack` — `push()` (â†), `pop()` (â), `number_expectation()` (⟨N̂⟩), `ket()` string +- [x] `QuantumQueue` — `enqueue()`, `dequeue()` (Tr₁), `purity()` (Tr[ρ²]) +- [x] `cosine_similarity_complex(u, v)` — Re(⟨u,v⟩)/(|u|·|v|) in ℂⁿ +- [x] `CosineChain` — full 7-step fluent chain to `collibra()` +- [x] `BubbleLeaderChain` — 13-layer monad bind to `paulGraham()` + +--- + +### QCAT-002 · LaTeX document + +**Status:** done +**File:** `docs/quantum/chip-quantum-catalog.tex` + +Compile: `pdflatex chip-quantum-catalog.tex` (requires `physics`, `tikz`, `pgfplots`) + +**Acceptance criteria:** +- [x] TikZ unit circle diagram — θ, cos θ, sin θ, vectors **u** and **v** +- [x] Quantum stack: â†|n⟩=√(n+1)|n+1⟩; [â,â†]=**1**; uncertainty ΔN·Δφ≥½ +- [x] Quantum queue: ρ=Σpᵢ|ψᵢ⟩⟨ψᵢ|; enqueue U_enq; dequeue Tr₁ +- [x] Einstein field equation + data-gravity analog +- [x] BubbleLeader chain table (13 layers) + Gödel formula + Y-combinator +- [x] Code table AAAA…FFFFF with SBVR/DCAT/Collibra columns +- [x] MathML fragments for Euler identity and cosine similarity +- [ ] CI: `make docs` compiles `.tex` → `.pdf` in `docs/quantum/` + +--- + +### QCAT-003 · SVG complex plane + +**Status:** done +**File:** `docs/quantum/complex-plane.svg` + +**Acceptance criteria:** +- [x] Unit circle, axes, origin dot +- [x] Vectors **u** (22°) and **v** (58°), angle θ arc +- [x] cos θ and sin θ dashed projections +- [x] Euler identity box: `e^{iθ} = cos θ + i sin θ` +- [x] Dirac/quantum row: `|ψ⟩ = Σαₖ|k⟩ · â†|n⟩ = √(n+1)|n+1⟩` +- [x] Code table strip: `AAAA·BBBB·CCCC·DDDD·EEEE·FFFFF` +- [x] Ξ chain label: `bubbleLeader…paulGraham` +- [ ] Export `.png` at 2× for README embed + +--- + +### QCAT-004 · XML catalog with embedded MathML + +**Status:** done +**File:** `docs/quantum/quantum-catalog.xml` + +**Acceptance criteria:** +- [x] `` — AAAA…FFFFF with inline MathML per entry +- [x] `` — operator elements with MathML ↠formula +- [x] `` — Grover O(√n) and quantum bubble-sort O(n^{3/2}) +- [x] `` — MathML formula + 7 chain steps +- [x] `` — 13 `` elements, monad bind, Gödel, Escher +- [x] DCAT / SKOS / SBVR / PROV-O / OWL namespace declarations +- [ ] Validate against `docs/xml/quantum-catalog.xsd` (schema to be created) +- [ ] Wire `collibra-id` attributes once `collibra().init()` is run + +--- + +## E3 · gRPC-HTTP Persistence Bridge + +### GRPC-001 · grpc-gateway annotations in `persistence.proto` + +**Status:** open +**File:** `uniWork/persistence/proto/persistence.proto` + +**Acceptance criteria:** +- [ ] Add `google/api/annotations.proto` import +- [ ] Annotate all 6 RPCs with `option (google.api.http)` matching `chip-queries.xml` bindings +- [ ] Regenerate `persistence.pb.go` and `persistence.pb.gw.go` +- [ ] Gateway listens on `:9090`; gRPC on `:50051` + +--- + +### GRPC-002 · Go gateway server + +**Status:** open +**File:** `uniWork/persistence/go/` (new: `gateway.go`) + +**Acceptance criteria:** +- [ ] `go run gateway.go` starts grpc-gateway reverse proxy on `:9090` +- [ ] Routes HTTP JSON to gRPC handlers (Clojure JVM or Rust) +- [ ] `Content-Type: application/json` + `X-Singine-Rpc` header +- [ ] Health endpoint `GET /healthz` + +--- + +### GRPC-003 · Go chip_queries entry point + +**Status:** done (XML parse + JVM discovery) +**File:** `uniWork/persistence/go/chip_queries.go` + +**Acceptance criteria:** +- [x] Parses `docs/xml/chip-queries.xml` via `encoding/xml` +- [x] `WorkspaceDepth`, `CodeLookupRequest`, `TypeRetrieval`, `GrpcHttpRequest`, `JProfilerTarget` types +- [x] `discoverJVMTargets()` via `jps -l` with pattern matching from grammar +- [x] CLI commands: `status`, `jprofiler-targets`, `grpc-bindings` +- [ ] `go mod init github.com/sindoc/collibra/persistence` + `go.mod` +- [ ] `make go-build` target in `uniWork/persistence/Makefile` + +--- + +## E4 · JProfiler JVM Attach + +### JPRO-001 · Groovy attach script + +**Status:** done +**File:** `uniWork/persistence/groovy/JProfilerAttach.groovy` + +**Acceptance criteria:** +- [x] `status` — reflects `Controller.isAgentActive()` via reflection; graceful if agent absent +- [x] `start` — `Controller.startCPURecording(true)` +- [x] `stop [dir]` — `Controller.stopCPURecording()` + `saveSnapshot(file)` +- [x] JSON output on stdout +- [ ] `groovy JProfilerAttach.groovy status` integration test (CI) +- [ ] `make jprofiler-groovy-status` target + +--- + +### JPRO-002 · Clojure attach namespace + +**Status:** done +**File:** `uniWork/persistence/clojure/src/persistence/jprofiler.clj` + +**Acceptance criteria:** +- [x] `(status)` — reflection on `com.jprofiler.api.agent.Controller`; fallback map if absent +- [x] `(start-cpu-recording label)` — `Controller/startCPURecording` +- [x] `(stop-and-snapshot dir)` — stop + `saveSnapshot` +- [x] `-main` — `status | start | stop` dispatch +- [ ] Add `com.jprofiler/jprofiler-api` to `project.clj` as `provided` scope +- [ ] `lein run -m persistence.jprofiler status` smoke test + +--- + +### JPRO-003 · JVM agent startup flags + +**Status:** open + +**Acceptance criteria:** +- [ ] Document `-agentpath` flags in `uniWork/persistence/groovy/README.md` +- [ ] Add `JPROFILER_AGENT` env var to `uniWork/persistence/Makefile` +- [ ] Groovy and Clojure `make` targets honour `JPROFILER_AGENT` if set + +--- + +## E5 · Code Tables + Shiva Base Layer + +### SHIV-001 · `loadCodeTableFromBaseFromShiva()` — domain layer integration + +**Status:** done (in-memory); **open** (SQLite persistence) +**File:** `singine-collibra/python/singine_collibra/quantum_catalog.py` + +**Acceptance criteria:** +- [x] In-memory: AAAA / BBBB / CCCC / DDDD / EEEE / FFFFF entries +- [ ] Persist to `singine domain master add` (humble-idp.db) via `singine domain refdata add` +- [ ] CLI: `singine collibra refdata load-shiva --db $SINGINE_DOMAIN_DB` +- [ ] `collibra().init()` calls `loadCodeTableFromBaseFromShiva()` and registers assets + +--- + +### SHIV-002 · Register AAAA…FFFFF in Collibra + +**Status:** open +**Depends on:** SHIV-001, Collibra instance running + +**Acceptance criteria:** +- [ ] POST each `CodeEntry` to `/rest/2.0/assets` as Business Term / Reference Data +- [ ] Populate `collibra_id` in `quantum-catalog.xml` +- [ ] `singine collibra id gen --ns c --project QuantumCatalog` for each entry +- [ ] Governance decision: `singine decide quantum-catalog --decision approved` + +--- + +## E6 · BubbleLeader Builder Chain + +### BUBL-001 · Full 13-layer chain — Python + +**Status:** done +**File:** `singine-collibra/python/singine_collibra/quantum_catalog.py` + +**Acceptance criteria:** +- [x] `bubbleLeader(items)` — bubble-sort, float max to top +- [x] `.builder()` GoF factory accumulation +- [x] `.piotr()` coordination +- [x] `.groovy()` / `.clojure()` / `.c()` language layer tags +- [x] `.f()` F-algebra / fixed-point functor +- [x] `.math()` CAS symbolic flag +- [x] `.godel()` Gödel number: `∏ pⱼ^aⱼ` +- [x] `.escher()` Y-combinator fixed point +- [x] `.pg()` × 2 (PostgreSQL, then Paul Graham) +- [x] `.paulGraham()` LISP primitives terminal eval +- [x] `.build()` returns `{chain: [...], result: {...}}` + +--- + +### BUBL-002 · Groovy + Clojure implementations of chain layers + +**Status:** open + +**Acceptance criteria:** +- [ ] Groovy: `BubbleLeaderChain.groovy` — mirror `.groovy()` and `.clojure()` layer behaviour +- [ ] Clojure: `(ns persistence.bubble-leader)` — pure functional chain using `->>` +- [ ] Both emit JSON trace compatible with `chip_queries.py` `LambdaExec.try_catch_claude()` + +--- + +## E7 · Cosine Similarity → Collibra + +### COS-001 · `CosineChain` — full 7-step fluent chain + +**Status:** done +**File:** `singine-collibra/python/singine_collibra/quantum_catalog.py` + +**Acceptance criteria:** +- [x] `.similarity()` — Re(⟨u,v⟩)/(|u||v|) in ℂⁿ +- [x] `.complex()` — compute arg(z) = phase of similarity +- [x] `.resolve()` — angle → code table → IRI `urn:singine:quantum::` +- [x] `.xml()` — serialize as `` +- [x] `.catalog()` — DCAT `dcat:Dataset` entry dict +- [x] `.collibra()` — final envelope with `mcp_tool: "collibra/code_lookup"` +- [ ] Wire into `chip_queries.py` `CodeLookupQuery.type_retrieval()` as post-processor + +--- + +### COS-002 · Quantum-cosine similarity in SPARQL bridge + +**Status:** open +**Depends on:** `singine bridge sparql` + +**Acceptance criteria:** +- [ ] `singine bridge sparql` accepts complex vector literals +- [ ] `SELECT ?s WHERE { ?s singine:cosSim ?v FILTER(singine:cosTheta(?s,?v) > 0.85) }` +- [ ] Backed by `cosine_similarity_complex()` from `quantum_catalog.py` + +--- + +## Tech Debt + +| ID | Item | Priority | +|----|------|----------| +| TD-001 | `go.mod` for `uniWork/persistence/go/` | medium | +| TD-002 | XSD schema for `quantum-catalog.xml` | low | +| TD-003 | `pdflatex` CI step for `chip-quantum-catalog.tex` | low | +| TD-004 | `.png` export of `complex-plane.svg` for README | low | +| TD-005 | Integration test: Python `grpc_http_call` → Go gateway → Clojure | high | +| TD-006 | `make jprofiler-*` targets in persistence `Makefile` | medium | + +--- + +## File Index (this session) + +| File | Epic | Status | +|------|------|--------| +| `docs/xml/chip-queries.xml` | E1 | done | +| `singine-collibra/python/singine_collibra/chip_queries.py` | E1 | done | +| `uniWork/persistence/go/chip_queries.go` | E3 | done | +| `uniWork/persistence/groovy/JProfilerAttach.groovy` | E4 | done | +| `uniWork/persistence/clojure/src/persistence/jprofiler.clj` | E4 | done | +| `singine-collibra/python/singine_collibra/quantum_catalog.py` | E2 | done | +| `docs/quantum/chip-quantum-catalog.tex` | E2 | done | +| `docs/quantum/complex-plane.svg` | E2 | done | +| `docs/quantum/quantum-catalog.xml` | E2 | done | diff --git a/CLAUDE.md b/CLAUDE.md index 566c735..023d4ef 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -1,404 +1,55 @@ -# CLAUDE.md — AI Assistant Guide for the Collibra ID-Gen Repository +# CLAUDE.md - Collibra Repository Contract -This file provides context, conventions, and workflows for AI assistants (Claude Code and similar tools) working in this repository. + ---- +This repository is the system of record for Collibra-specific code, + metamodel abstractions, operating-model import/export workflows, Edge + integrations, and the implementation behind the `singine collibra ...` + command family. -## Repository Overview +This file follows the shared-agent split of approximately 80% common policy and 20% agent-specific guidance. -This repository implements a **Bash-based contract ID generation and lifecycle management system** for Collibra data governance. It mints unique, namespace-scoped contract IDs, persists them via Git tags, and drives a 7-step ORM/SBVR semantic transformation pipeline that bridges Collibra assets to formal data contracts. +This file gives Claude-specific emphasis while inheriting the shared + Singine agent contract for the repository. -**Primary working directory:** `id-gen/` -**Supporting utilities:** `uniWork/` +## Repository Boundary -## Repository Boundary Policy +- Implement Collibra REST, SDK, CLI, MCP, operating-model, Edge, and tenant-specific governance logic here. +- Expose Collibra-aware logic to Singine through `singine-collibra/python/singine_collibra/` rather than duplicating it in Singine. +- Keep Singine focused on execution, privileges, orchestration, and general runtime publication concerns. +- Prefer SilkPage for transformation-heavy XML/XSLT/XPath/RDF/TTL/SPARQL/SQL/GraphQL pipelines when that work is not intrinsically Collibra-specific. +- Treat the Collibra metamodel and its governed identifiers as a canonical alignment contract across repositories and agents. -This repository is the canonical home for Collibra-specific implementation -logic. +## Change Policy -Assistants should follow these rules: +- Default to adding or updating tests for every functional change. +- Prefer Singine-level tests and MCP-interface tests when the feature is exposed through `singine collibra ...`. +- Update documentation in parallel with code changes: XML model/command docs, OpenAPI descriptions when applicable, man pages, and Markdown pages. +- If tests or documentation are intentionally omitted, explain that explicitly in the final response. +- When a change introduces or modifies a CLI surface, keep command registration, docs/xml, man pages, and Markdown usage examples aligned. -1. Put code here when it depends on Collibra REST APIs, SDKs, `collibractl`, - Edge runtime behavior, datasource capabilities, or tenant-facing Collibra - concepts. -2. Keep Singine as the secure execution shell and documentation/runtime layer. - Singine may expose `singine collibra ...` commands, but the Collibra-aware - implementation should live here and be imported from here. -3. Prefer SilkPage for XML/XSLT/XPath/RDF/TTL/SPARQL/SQL/GraphQL document and - payload transformation pipelines instead of duplicating transformation logic - in Collibra-specific Python. -4. When in doubt, ask: "Does this code still make sense without Collibra?" If - no, it belongs in this repo. +## Metamodel Alignment -Concrete examples that belong here: +- New features should explain how they map to the Collibra metamodel, operating model, assignments, views, or governed identifiers. +- Prefer loading the exported operating-model package from `~/ws/today/metamodel/` when available, and use hand-written fallbacks only as secondary sources. +- Metamodel visualisation, import, and export features should preserve interchangeability with Singine-friendly in-memory opmodel projections. -- datasource creation/diagnosis for Edge -- Edge capability wiring -- Collibra API adapters and SDK shims -- wrappers for official Collibra CLI conventions -- Collibra-specific manpages and DocBook sources under `docs/` +## Documentation Sources -Concrete examples that belong in Singine: +- `docs/xml/singine-collibra-model.xml`: Canonical model narrative +- `docs/xml/singine-collibra-commands.xml`: Canonical command narrative +- `docs/man/`: Generated and maintained man pages +- `README.md`: Human-oriented repository overview +- `BACKLOG.md`: Open implementation gaps and risks -- generic authn/authz and identity-provider routing -- JVM toolchain orchestration -- generic command runtime infrastructure -- cross-domain docs publication +## Verification ---- +- Run the smallest meaningful verification for the change, and prefer executable checks over pure inspection. +- For Python changes, at minimum run syntax validation and targeted execution paths when possible. +- For command-surface changes, verify the parser wiring or command output path directly. -## singine collibra Integration +## Agent-Specific Additions -All collibra-specific features are exposed through the `singine collibra` CLI -family. The command pattern is: - -``` -singine collibra [subcommand] [options] -``` - -The `singine-collibra/python/singine_collibra/` Python package in this repository is the **core -implementation**. The singine CLI dynamically imports it when any -`singine collibra id`, `singine collibra contract`, `singine collibra pipeline`, -or `singine collibra server` subcommand is invoked. - -### Component Map - -| Component | singine command | Implementation | -|-----------|----------------|----------------| -| Edge stack | `singine collibra edge` | `edge/` (Docker, Java, Python) | -| ID generation | `singine collibra id` | `id-gen/id_gen.sh`, `id-gen/namespaces.sh` | -| Contracts | `singine collibra contract` | `id-gen/contracts/` | -| ORM/SBVR pipeline | `singine collibra contract pipeline` | `id-gen/collibra/metamodel_7step.sh` | -| API server | `singine collibra server` | `id-gen/server/server.sh` | -| Mock DGC | `singine collibra edge up` (dev mode) | `edge/image/collibra-edge-mock/mock_dgc.py` | - -### Quick Reference - -```bash -# Edge stack -singine collibra edge build [--target base|collibra-edge|cdn|all] -singine collibra edge setup --dev # use mock DGC -singine collibra edge up --detach -singine collibra edge down -singine collibra edge status --json -singine collibra edge logs --service cdn --follow -singine collibra edge agent run --task "Generate Collibra edge Deployment for RHEL 7.9" - -# Contract ID generation -singine collibra id gen --ns c --project MyProject -singine collibra id gen-topic --project MyProject -singine collibra id tags -singine collibra id push-tags -singine collibra id detect-conflicts -singine collibra id resolve-conflicts --strategy COLLIBRA_WINS - -# Contract lifecycle -singine collibra contract new --project MyProject --kind DataContract -singine collibra contract list -singine collibra contract status APPROVED -singine collibra contract pipeline --id -singine collibra contract step 3 --id -singine collibra contract advance --id -singine collibra contract progress --all - -# Server -singine collibra server start --port 7331 --mode net -singine collibra server status -singine collibra server stop -singine collibra server dmz -``` - -### Python Package (`singine-collibra/python/singine_collibra/`) - -The package is importable if you add the collibra repo root to `PYTHONPATH`: - -```bash -export PYTHONPATH=$PYTHONPATH:~/ws/git/github/sindoc/collibra -python3 -c "from singine_collibra import idgen; idgen.gen()" -``` - -Singine discovers it automatically via `COLLIBRA_DIR` (default: -`~/ws/git/github/sindoc/collibra`) and prefers the -`singine-collibra/python/` layout. - -The Collibra metamodel and its four-letter codes are a canonical integration -contract. If a new Collibra-facing feature cannot explain how it maps to the -metamodel or its codes, the design is incomplete. - ---- - -## Technology Stack - -| Layer | Technology | Notes | -|---|---|---| -| Scripting (primary) | Bash | `set -euo pipefail` throughout | -| Orchestration | GNU Make | `id-gen/Makefile` is the main entry point | -| ID persistence | Git tags | Pattern: `id-gen/..` | -| HTTP server | Common Lisp | `id-gen/server/start.lisp` (SBCL / CLISP / ECL / Guile) | -| Frontend | React (JSX) + HTML | `id-gen/ui/` — workflow progress visualisation | -| Data/Config | JSON | Schemas in `id-gen/contracts/`, governance in `id-gen/governance/` | -| Utilities | Python 3 | UUID generation, JSON processing, symbolic math | -| External API | Collibra REST | Cookie + CSRF auth; URL stored in `uniWork/CollibraBaseUrl` | - -There is **no package.json** and **no npm**. All orchestration goes through Make. - ---- - -## Repository Structure - -``` -collibra/ -├── CLAUDE.md # This file -├── id-gen/ # Core project -│ ├── Makefile # Primary task runner — run `make help` -│ ├── id_gen.sh # ID minting + git-tag persistence + conflict resolver -│ ├── namespaces.sh # Namespace registry (c.*, a.*, b.*) -│ ├── collibra/ -│ │ ├── metamodel_7step.sh # 7-step ORM/SBVR pipeline -│ │ ├── sparql_to_contract.sh # SPARQL → contract translator -│ │ └── trigger.sh # Collibra polling -│ ├── contracts/ -│ │ ├── generate_contract.sh # New contract scaffolding -│ │ ├── workflow_tracker.sh # Step advancement + progress tracking -│ │ ├── contract_schema.json # JSON Schema (draft-07) for contracts -│ │ └── store/ # Generated contract JSON files -│ ├── governance/ -│ │ ├── reference_data.json # Enums: kinds, statuses, steps, asset types -│ │ ├── vocab_alignment.json # SKOS/DCAT/ODRL/PROV/OWL/SBVR mappings -│ │ ├── schema_normalized.json -│ │ └── schema_denormalized.json -│ ├── namespaces/ -│ │ ├── c.registry # Collibra IDs (privileged) -│ │ ├── a.registry # Reserved namespace A -│ │ └── b.registry # Reserved namespace B -│ ├── server/ -│ │ ├── server.sh # Startup wrapper (auto-detects Lisp runtime) -│ │ └── start.lisp # Common Lisp HTTP API -│ └── ui/ -│ ├── Progress.jsx # React progress-bar component -│ ├── progress.html # Standalone progress tracker -│ └── logseq/logs/ # Logseq markdown logs -└── uniWork/ # Runtime state and credentials - ├── CollibraBaseUrl # Collibra API base URL (plain text) - ├── JSESSIONID # Session cookie - ├── X-CSRF-TOKEN # CSRF token - ├── baseCommunityId # Default Collibra community ID - ├── id_gen.log # Unified timestamped log - └── createTermsAndAcronymsInSameGlossary/ - ├── Makefile - ├── generate_payload.sh - ├── RestPath - └── assets/ -``` - ---- - -## Development Workflows - -All common tasks are driven through `make` from within `id-gen/`. Run `make help` for a full command reference. - -### Setup - -```bash -cd id-gen -make init # Create directories and set executable permissions -``` - -### ID Generation - -```bash -make gen [NS=c] [PROJECT=DefaultProject] # Mint a new contract ID -make gen-topic [PROJECT=...] # Mint a topic ID -make import-collibra UUID= KIND=... # Import an existing Collibra UUID -make tags # List all id-gen git tags -make push-tags # Push tags to origin -``` - -### Contract Lifecycle - -```bash -make contract [PROJECT=...] [KIND=DataContract] # Scaffold a new contract -make contract-list # List all contracts -make contract-status CONTRACT_ID=... STATUS=... # Update contract status -``` - -### 7-Step Pipeline - -```bash -make pipeline [CONTRACT_ID=...] # Run full pipeline end-to-end -make step1 [CONTRACT_ID=...] # Run individual step (1–7) -make advance [CONTRACT_ID=...] # Advance to the next step -make progress [CONTRACT_ID=...] # Show progress for one contract -make progress-all # Show progress for all contracts -``` - -### Server - -```bash -make server-start [PORT=7331] [MODE=net] # Start dev server (full access) -make server-dmz [PORT=7331] # Start in DMZ mode (restricted) -make server-stop # Stop server -make server-status # Health check -``` - -Server endpoints: `/health`, `/api/id/gen`, `/api/contracts/list`, `/api/progress` - -### SPARQL Integration - -```bash -make sparql-translate [QUERY=...] [PROJECT=...] # Translate SPARQL → contract -make sparql-templates # Show template library -``` - -### Conflict Resolution - -```bash -make detect-conflicts # Scan for merge conflicts in registries -make resolve-conflicts [STRATEGY=COLLIBRA_WINS] # Auto-resolve -``` - -Strategies: `OURS`, `THEIRS`, `COLLIBRA_WINS`, `ASK`, `MANUAL` - -### Utilities - -```bash -make demo [PROJECT=...] # Full demonstration workflow -make eq [EXPR="x**2+1"] [MODE=solve|latex|plot] # Equation solver -make ui # Open progress.html in browser -``` - ---- - -## Key Conventions - -### Shell Scripts - -- All scripts use `#!/usr/bin/env bash` and `set -euo pipefail` — **never relax these flags** in new code. -- Private/internal functions are prefixed with `_` (e.g., `_log`, `_uuid`). -- Section breaks use `# ──────────────────────────────────────────` comments. -- Scripts source each other with `source ` for modularity. -- Log entries go through `_log()` which prefixes timestamps. Do not use raw `echo` for operational messages. - -### ID Namespaces - -| Prefix | Owner | Description | -|---|---|---| -| `c.*` | Collibra (privileged) | Production Collibra IDs | -| `a.*` | Reserved | Namespace A | -| `b.*` | Reserved | Namespace B | - -ID format: `{namespace}.{kind}.{uuid}` (e.g., `c.contract.f47ac10b-...`) - -- **Never** create IDs outside of `id_gen.sh` / `make gen`. -- Registry files (`namespaces/*.registry`) track all minted IDs with timestamps. Do not edit them manually. -- IDs are persisted as annotated git tags (`id-gen/`) — these are the source of truth. - -### The 7-Step ORM/SBVR Pipeline - -| Step | Label | Status | Progress | -|---|---|---|---| -| 0 | INIT | DRAFT | 0% | -| 1 | EXTRACT | DRAFT | 14% | -| 2 | CLASSIFY | DRAFT | 29% | -| 3 | RELATE | DRAFT | 43% | -| 4 | CONSTRAIN | PENDING_APPROVAL | 57% | -| 5 | VERBALIZE | PENDING_APPROVAL | 71% | -| 6 | ALIGN | PENDING_APPROVAL | 86% | -| 7 | CONTRACT | APPROVED | 100% | - -Status lifecycle: `DRAFT` → `PENDING_APPROVAL` → `APPROVED` -Additional statuses: `REJECTED`, `ACTIVE`, `DEPRECATED` - -### Contract JSON Schema - -All contracts stored in `contracts/store/` must validate against `contracts/contract_schema.json` (JSON Schema draft-07). Required fields: `id`, `kind`, `status`, `created_at`, `project`, `topic_id`. Never write free-form contract JSON — use `make contract` to scaffold. - -### Collibra API Authentication - -Credentials are stored as plain-text files in `uniWork/`: - -| File | Variable | Usage | -|---|---|---| -| `CollibraBaseUrl` | Base URL | All API calls | -| `JSESSIONID` | Cookie | Session auth | -| `X-CSRF-TOKEN` | Header | State-changing requests | -| `baseCommunityId` | ID | Default community | - -**Do not hard-code credentials.** Scripts read these files at runtime with `$(cat uniWork/)`. - -### Semantic Vocabulary Alignments - -`governance/vocab_alignment.json` maps internal concepts to standard ontologies. When modifying contracts or governance data, check this file for the correct external term to use: - -- **SKOS** — concept hierarchies / thesaurus -- **DCAT** — data catalog / dataset descriptions -- **ODRL** — data usage policies -- **PROV-O** — provenance -- **OWL** — ontological grounding -- **SBVR** — business vocabulary and rules (OMG standard) - ---- - -## Testing - -There is **no formal test framework**. Validation is done through: - -1. `make demo PROJECT="TestProject"` — full smoke-test workflow. -2. Manual inspection of `uniWork/id_gen.log`. -3. `make contract-list` and `make progress-all` to verify state. - -When adding new shell functionality, at minimum verify the happy path manually with `make demo` and confirm that `set -euo pipefail` exits cleanly on errors. - ---- - -## Linting & Code Style - -No automated linting is configured. Follow these conventions when writing shell code: - -- `set -euo pipefail` at the top of every script (after the shebang). -- Use `[[ ]]` for conditionals (not `[ ]`). -- Quote all variable expansions: `"${VAR}"`. -- Use `local` for all variables inside functions. -- Prefer `printf` over `echo` for formatted output. -- Use `_log` for any operational log messages. -- Keep functions short and single-purpose. - ---- - -## Git Practices - -- Git tags are the **source of truth** for minted IDs. Do not delete or force-overwrite them. -- `git.auto = 0` is set globally in this repo — garbage collection is disabled intentionally. -- When resolving merge conflicts in namespace registries, use `make resolve-conflicts` rather than editing files manually. -- The remote for this repo is `http://local_proxy@127.0.0.1:54221/git/sindoc/collibra`. - -### Branch Naming for AI Assistants - -Feature branches created by Claude Code use the pattern: `claude/-` (e.g., `claude/add-claude-documentation-xIyQ1`). - ---- - -## Environment Requirements - -| Dependency | Minimum | Notes | -|---|---|---| -| bash | 4.0+ | `#!/usr/bin/env bash` | -| GNU Make | 3.81+ | Primary orchestrator | -| git | 2.0+ | Tag-based ID persistence | -| curl | any | Collibra API calls | -| Python 3 | 3.6+ | UUID, JSON, optional sympy | -| Common Lisp | optional | SBCL / CLISP / ECL / Guile (for server only) | - -Python libraries used inline (via `python3 -c`): `uuid`, `json`, `datetime` (stdlib); `sympy` (optional, for `make eq`). - ---- - -## Common Pitfalls - -1. **Do not run scripts from the repo root.** Always `cd id-gen` before running make targets — relative paths assume `id-gen/` as the working directory. -2. **Do not create IDs manually.** Always use `make gen` or `make gen-topic` so IDs are registered, tagged, and logged. -3. **Do not edit `*.registry` files by hand.** Use `namespaces.sh` functions or make targets. -4. **Do not skip `make init`** in a fresh clone — scripts will fail without the expected directories. -5. **CSRF tokens expire.** If Collibra API calls return 403, refresh `uniWork/X-CSRF-TOKEN` and `uniWork/JSESSIONID`. -6. **Server mode matters.** DMZ mode restricts which endpoints are accessible — use `net` mode for development and `dmz` only when testing governance restrictions. -7. **`set -euo pipefail` means any unbound variable kills the script.** Always initialise variables before use; use `${VAR:-default}` for optional values. +- Retain higher-level repository walkthrough context, but keep the shared operational contract authoritative. +- When describing a change, include the metamodel and command-surface implications, not just implementation detail. +- Use the shared XML contract as the source of truth for this file and keep agent-specific additions small. diff --git a/CODEX.md b/CODEX.md index 0749708..48e9c73 100644 --- a/CODEX.md +++ b/CODEX.md @@ -1,23 +1,55 @@ -# CODEX.md - Collibra Repository Boundary +# CODEX.md - Collibra Repository Contract -This repository is the system of record for Collibra-specific code. + -Rules: +This repository is the system of record for Collibra-specific code, + metamodel abstractions, operating-model import/export workflows, Edge + integrations, and the implementation behind the `singine collibra ...` + command family. -1. Implement Collibra REST, SDK, CLI, and Edge logic here. -2. Expose that logic to Singine through `singine-collibra/python/singine_collibra/` and `COLLIBRA_DIR` - discovery rather than duplicating Collibra-aware code in `singine/`. -3. Keep Singine focused on secure execution, identity, privileges, JVM - orchestration, and docs/runtime publication. -4. Route XML/XSLT/XPath/RDF/TTL/SPARQL/SQL/GraphQL transformation-heavy work - toward SilkPage where possible. -5. Treat the Collibra metamodel and its four-letter codes as a canonical - integration contract across repositories. +This file follows the shared-agent split of approximately 80% common policy and 20% agent-specific guidance. -Practical test: +This file gives Codex-specific emphasis while inheriting the shared + Singine agent contract for the repository. -- If the code depends on Collibra semantics, it belongs here. -- If the code is generic execution/runtime infrastructure, it belongs in - Singine. -- If the code is primarily cross-format transformation, it belongs in - SilkPage. +## Repository Boundary + +- Implement Collibra REST, SDK, CLI, MCP, operating-model, Edge, and tenant-specific governance logic here. +- Expose Collibra-aware logic to Singine through `singine-collibra/python/singine_collibra/` rather than duplicating it in Singine. +- Keep Singine focused on execution, privileges, orchestration, and general runtime publication concerns. +- Prefer SilkPage for transformation-heavy XML/XSLT/XPath/RDF/TTL/SPARQL/SQL/GraphQL pipelines when that work is not intrinsically Collibra-specific. +- Treat the Collibra metamodel and its governed identifiers as a canonical alignment contract across repositories and agents. + +## Change Policy + +- Default to adding or updating tests for every functional change. +- Prefer Singine-level tests and MCP-interface tests when the feature is exposed through `singine collibra ...`. +- Update documentation in parallel with code changes: XML model/command docs, OpenAPI descriptions when applicable, man pages, and Markdown pages. +- If tests or documentation are intentionally omitted, explain that explicitly in the final response. +- When a change introduces or modifies a CLI surface, keep command registration, docs/xml, man pages, and Markdown usage examples aligned. + +## Metamodel Alignment + +- New features should explain how they map to the Collibra metamodel, operating model, assignments, views, or governed identifiers. +- Prefer loading the exported operating-model package from `~/ws/today/metamodel/` when available, and use hand-written fallbacks only as secondary sources. +- Metamodel visualisation, import, and export features should preserve interchangeability with Singine-friendly in-memory opmodel projections. + +## Documentation Sources + +- `docs/xml/singine-collibra-model.xml`: Canonical model narrative +- `docs/xml/singine-collibra-commands.xml`: Canonical command narrative +- `docs/man/`: Generated and maintained man pages +- `README.md`: Human-oriented repository overview +- `BACKLOG.md`: Open implementation gaps and risks + +## Verification + +- Run the smallest meaningful verification for the change, and prefer executable checks over pure inspection. +- For Python changes, at minimum run syntax validation and targeted execution paths when possible. +- For command-surface changes, verify the parser wiring or command output path directly. + +## Agent-Specific Additions + +- Bias toward implementing the requested change end-to-end, including tests and docs, rather than stopping at design notes. +- When patching code, keep generated command/docs artifacts aligned in the same change whenever feasible. +- Use the shared XML contract as the source of truth for this file and keep agent-specific additions small. diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..c8ee069 --- /dev/null +++ b/Makefile @@ -0,0 +1,60 @@ +# Makefile — repository-level generated artefacts and documentation helpers + +SHELL := /usr/bin/env bash +.DEFAULT_GOAL := help + +REPO_ROOT := $(shell dirname $(realpath $(firstword $(MAKEFILE_LIST)))) +PYTHON ?= python3 + +AGENT_XML := $(REPO_ROOT)/docs/xml/singine-agent-contract.xml +AGENT_GEN := $(REPO_ROOT)/scripts/generate_agent_docs.py +AGENT_DOCS := $(REPO_ROOT)/CODEX.md $(REPO_ROOT)/CLAUDE.md $(REPO_ROOT)/AGENTS.md +WATCH_INPUTS := $(AGENT_XML) $(AGENT_GEN) + +.PHONY: help agent-docs agent-docs-force agent-docs-check agent-docs-watch + +$(REPO_ROOT)/CODEX.md $(REPO_ROOT)/CLAUDE.md $(REPO_ROOT)/AGENTS.md: $(AGENT_XML) $(AGENT_GEN) + @cd $(REPO_ROOT) && $(PYTHON) $(AGENT_GEN) + +agent-docs: $(AGENT_DOCS) + @echo "Agent markdown files are aligned with $(AGENT_XML)." + +agent-docs-force: + @cd $(REPO_ROOT) && $(PYTHON) $(AGENT_GEN) + +agent-docs-check: + @tmp_dir="$$(mktemp -d)"; \ + cp $(AGENT_DOCS) "$$tmp_dir"/; \ + cd $(REPO_ROOT) && $(PYTHON) $(AGENT_GEN) >/dev/null; \ + if diff -q $(REPO_ROOT)/CODEX.md "$$tmp_dir"/CODEX.md >/dev/null \ + && diff -q $(REPO_ROOT)/CLAUDE.md "$$tmp_dir"/CLAUDE.md >/dev/null \ + && diff -q $(REPO_ROOT)/AGENTS.md "$$tmp_dir"/AGENTS.md >/dev/null; then \ + echo "Agent markdown files are up to date."; \ + rm -rf "$$tmp_dir"; \ + else \ + echo "Agent markdown files are out of date. Run: make agent-docs"; \ + rm -rf "$$tmp_dir"; \ + exit 1; \ + fi + +agent-docs-watch: + @if command -v fswatch >/dev/null 2>&1; then \ + printf "%s\n" $(WATCH_INPUTS) | fswatch -0 --event Updated --event Created --event Removed | \ + while IFS= read -r -d '' _; do \ + $(MAKE) agent-docs-force; \ + done; \ + elif command -v entr >/dev/null 2>&1; then \ + printf "%s\n" $(WATCH_INPUTS) | entr -r $(MAKE) agent-docs-force; \ + else \ + echo "Install fswatch or entr to use agent-docs-watch."; \ + exit 1; \ + fi + +help: + @printf '%s\n' \ + 'Repository-level targets' \ + '' \ + ' make agent-docs Regenerate CODEX.md, CLAUDE.md, and AGENTS.md from docs/xml/singine-agent-contract.xml' \ + ' make agent-docs-force Regenerate regardless of timestamps' \ + ' make agent-docs-check Fail if generated agent markdown files are stale' \ + ' make agent-docs-watch Watch the XML contract and generator, then regenerate on change' diff --git a/README.md b/README.md index 457aad3..bc71414 100644 --- a/README.md +++ b/README.md @@ -65,6 +65,14 @@ The Collibra metamodel and its four-letter codes are treated as a canonical integration contract across `collibra`, `singine`, `silkpage`, and Edge-facing components. +The first published command-contract set for HTTP and protocol tooling starts +with `singine collibra io`: + +- XML source: `docs/xml/singine-collibra-commands.xml` +- Markdown guide: `docs/collibra-io-commands.md` +- OpenAPI: `schema/singine-collibra-io-api.json` +- SinLisp: `runtime/sinlisp/collibra_io.sinlisp` + ``` ┌──────────────────────────────────────────────────────────────────┐ │ singine collibra CLI │ diff --git a/docs/collibra-io-commands.md b/docs/collibra-io-commands.md new file mode 100644 index 0000000..3d6cf1f --- /dev/null +++ b/docs/collibra-io-commands.md @@ -0,0 +1,73 @@ +# Collibra IO Commands + +This document publishes the `singine collibra io` command family as a stable interaction surface for governed Collibra I/O operations. + +The implementation lives in [io.py](/Users/skh/ws/git/github/sindoc/collibra/singine-collibra/python/singine_collibra/io.py), while the canonical XML publication source remains [singine-collibra-commands.xml](/Users/skh/ws/git/github/sindoc/collibra/docs/xml/singine-collibra-commands.xml). The OpenAPI artifact is generated from that XML by [generate_collibra_io_openapi.py](/Users/skh/ws/git/github/sindoc/collibra/scripts/generate_collibra_io_openapi.py). + +## Goal + +Define one command set that can be consumed from: + +- terminal CLI +- XML publication +- OpenAPI / Swagger tooling +- Postman collections +- `curl` and `wget` request generation +- SinLisp planning and test harnesses + +## Command family + +```bash +singine collibra io [options] +``` + +## Covered commands + +### Create + +```bash +singine collibra io create community --name "Data Governance" --json +singine collibra io create template --name glossary-import --asset-type "Business Term" --output /tmp/glossary-import.json +``` + +### Metamodel + +```bash +singine collibra io metamodel status +singine collibra io metamodel visualize --asset-type "Data Notebook" --format mermaid +singine collibra io metamodel export --format opmodel --asset-type "Business Term" --output /tmp/business-term-opmodel.json +``` + +### CHIP + +```bash +singine collibra io chip status --json +singine collibra io chip configure all --json +singine collibra io chip tools list --json +``` + +### Edge + +```bash +singine collibra io edge connection probe-postgres --json +singine collibra io edge datasource diagnose --id DATASOURCE-UUID --json +``` + +## Companion artifacts + +- XML source: `docs/xml/singine-collibra-commands.xml` +- OpenAPI: `schema/singine-collibra-io-api.json` +- SinLisp: `runtime/sinlisp/collibra_io.sinlisp` + +## Interaction pattern + +The CLI remains the executable surface. The OpenAPI document provides a request/response contract for service adapters and HTTP tooling. The SinLisp file records the same command inventory in a form that can drive tests, workflow planning, and higher-level protocol generation. + +## Verification + +```bash +cd /Users/skh/ws/git/github/sindoc/collibra +python3 scripts/generate_collibra_io_openapi.py +python3 -m unittest singine-collibra/python/tests/test_collibra_io_docs_surface.py -v +python3 -m json.tool schema/singine-collibra-io-api.json >/tmp/collibra-io-api.pretty.json +``` diff --git a/docs/man/singine-collibra.1 b/docs/man/singine-collibra.1 index b0403f5..8097188 100644 --- a/docs/man/singine-collibra.1 +++ b/docs/man/singine-collibra.1 @@ -1,8 +1,8 @@ .\" singine-collibra(1) — singine collibra command family -.TH SINGINE\-COLLIBRA 1 "2026-03-25" "singine" "Singine Manual" +.TH SINGINE\-COLLIBRA 1 "2026-03-26" "singine" "Singine Manual" . .SH NAME -singine\-collibra \- Collibra governance CLI (edge, id, contract, server) +singine\-collibra \- Collibra governance CLI (edge, id, contract, io, server) . .SH SYNOPSIS .B singine collibra @@ -15,7 +15,8 @@ singine\-collibra \- Collibra governance CLI (edge, id, contract, server) .B singine collibra is the command family for all Collibra-specific operations in the singine CLI. It exposes the full lifecycle of the Collibra edge stack, contract ID generation, -data contract management, ORM/SBVR semantic pipeline, and the id-gen HTTP server. +data contract management, governed I/O through Collibra CHIP, ORM/SBVR semantic +pipeline, and the id-gen HTTP server. .PP All heavy implementation lives in the .B collibra @@ -44,6 +45,16 @@ Data contract scaffolding, status management, and the 7-step ORM/SBVR pipeline. See .BR singine\-collibra\-contract (1). .TP +.B io +Governed Collibra I/O workflows. +The default MCP backend is Collibra CHIP, typically built from +.IR ~/ws/github/collibra/chip/.build/chip . +Subcommands include +.BR chip\ status , +.BR chip\ configure , +and +.BR chip\ tools\ list . +.TP .B server id-gen HTTP API server in net or DMZ mode. See diff --git a/docs/quantum/chip-quantum-catalog.tex b/docs/quantum/chip-quantum-catalog.tex new file mode 100644 index 0000000..d17797e --- /dev/null +++ b/docs/quantum/chip-quantum-catalog.tex @@ -0,0 +1,676 @@ +% chip-quantum-catalog.tex +% Quantum redefinition of stack, queue, and cosine similarity +% on the complex Cartesian plane — with Dirac, Einstein, Knuth, +% code tables AAAA...FFFFF, and the BubbleLeader builder chain. +% +% Compile: pdflatex chip-quantum-catalog.tex +% Grammar: docs/xml/chip-queries.xml (lang=XML.g()) +% Python: singine-collibra/python/singine_collibra/quantum_catalog.py +% Collibra: cosine().similarity().complex().resolve().xml().catalog().collibra() + +\documentclass[12pt,a4paper]{article} + +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage{amsmath, amssymb, amsthm} +\usepackage{mathtools} +\usepackage{physics} % \ket{}, \bra{}, \braket{}, \comm{}{} +\usepackage{tensor} +\usepackage{tikz} +\usepackage{pgfplots} +\pgfplotsset{compat=1.18} +\usetikzlibrary{angles, quotes, arrows.meta, decorations.pathreplacing, calc} +\usepackage{xcolor} +\usepackage{listings} +\usepackage{hyperref} +\usepackage{geometry} +\usepackage{booktabs} +\usepackage{array} +\usepackage{multicol} + +\geometry{margin=2.5cm} + +\definecolor{collibraBlue}{HTML}{0057B8} +\definecolor{quantumViolet}{HTML}{7B2FBE} +\definecolor{godelGray}{HTML}{4A4A4A} +\definecolor{escherGold}{HTML}{C8A400} +\definecolor{pgGreen}{HTML}{336791} + +\lstset{ + basicstyle=\ttfamily\footnotesize, + keywordstyle=\color{collibraBlue}\bfseries, + commentstyle=\color{godelGray}\itshape, + stringstyle=\color{quantumViolet}, + breaklines=true, + frame=single, + rulecolor=\color{gray!40}, +} + +\newtheorem{defn}{Definition} +\newtheorem{thm}{Theorem} +\newtheorem{axiom}{Axiom} + +% ── Custom operators ───────────────────────────────────────────────────────── +\DeclareMathOperator{\Push}{\widehat{P}^\dagger} +\DeclareMathOperator{\Pop}{\widehat{P}} +\DeclareMathOperator{\Enq}{\widehat{Q}^\dagger} +\DeclareMathOperator{\Deq}{\widehat{Q}} +\DeclareMathOperator{\cossim}{cos\_sim} +\DeclareMathOperator{\JD}{JD} +\DeclareMathOperator{\diracD}{\delta} +\newcommand{\gonum}[1]{\ulcorner #1 \urcorner} +\newcommand{\Ctable}[1]{\texttt{\textbf{#1}}} + +% ── Title ───────────────────────────────────────────────────────────────────── +\title{% + \textcolor{collibraBlue}{\Large Quantum Catalog}\\[0.4em] + \large Stack, Queue, Cosine Similarity\\ + on the Complex Cartesian Plane\\[0.6em] + \normalsize + \texttt{dirac()} $\cdot$ \texttt{einstein()} $\cdot$ \texttt{knuth()} $\cdot$ + \texttt{tex()} $\cdot$ \texttt{latex()} $\cdot$ \texttt{jd()} $\cdot$ + \texttt{refData()} $\cdot$ \texttt{collibra().init()}\\[0.3em] + \texttt{loadCodeTableFromBaseFromShiva()} $\cdot$ + \texttt{bubbleLeader().builder()}\ldots\texttt{.paulGraham()}\\[0.3em] + \texttt{cosine().similarity().complex().resolve().xml().catalog().collibra()} +} +\author{Singine Collibra \texttt{chip-queries.xml} $\;\cdot\;$ \texttt{lang=XML.g()}} +\date{2026-03-26} + +\begin{document} +\maketitle +\tableofcontents +\bigskip\hrule\bigskip + +% ════════════════════════════════════════════════════════════════════════════ +\section{\texttt{dirac()} — Quantum State Notation} +% ════════════════════════════════════════════════════════════════════════════ + +The Dirac delta distribution $\diracD(x)$ and bra-ket notation form the +primitive vocabulary of this catalog. + +\begin{defn}[Dirac delta] +\[ + \diracD(x - x_0) = \lim_{\varepsilon \to 0} + \frac{1}{\varepsilon\sqrt{\pi}}\, e^{-(x-x_0)^2/\varepsilon^2}, + \qquad + \int_{-\infty}^{\infty} \diracD(x - x_0)\, f(x)\, \dd x = f(x_0) +\] +\end{defn} + +\begin{defn}[Bra-ket] +A quantum state lives in Hilbert space $\mathcal{H}$. +Ket: $\ket{\psi} \in \mathcal{H}$. +Bra: $\bra{\phi} \in \mathcal{H}^*$. +Inner product: $\braket{\phi}{\psi} \in \mathbb{C}$. +Outer product (projection): $\ketbra{\psi}{\psi}$. +\end{defn} + +Completeness relation: +\[ + \sum_n \ket{n}\bra{n} = \hat{\mathbf{1}}, \qquad + \int \ket{x}\bra{x}\, \dd x = \hat{\mathbf{1}} +\] + +% ════════════════════════════════════════════════════════════════════════════ +\section{\texttt{einstein()} — Data Gravity Field Equations} +% ════════════════════════════════════════════════════════════════════════════ + +\subsection{General Relativity} + +Einstein's field equations: +\[ + \boxed{G_{\mu\nu} + \Lambda g_{\mu\nu} = \frac{8\pi G}{c^4}\, T_{\mu\nu}} +\] +where $G_{\mu\nu} = R_{\mu\nu} - \tfrac{1}{2} R\, g_{\mu\nu}$ is the Einstein tensor, +$\Lambda$ the cosmological constant, $T_{\mu\nu}$ the stress-energy tensor. + +Special relativity: $E = mc^2$, covariant form: +\[ + p^\mu p_\mu = \eta_{\mu\nu} p^\mu p^\nu = -\left(\frac{E}{c}\right)^2 + |\mathbf{p}|^2 c^2 = -(mc)^2 +\] + +\subsection{Data Gravity Analog} + +For a data platform with usage tensor $T_{\mu\nu}^{\text{data}}$: +\[ + G_{\mu\nu}^{\text{info}} + \Lambda_{\text{latency}}\, g_{\mu\nu} + = \frac{8\pi G_{\text{info}}}{c_{\text{latency}}^4}\, T_{\mu\nu}^{\text{usage}} +\] + +The \emph{ultimate metric} (CLAUDE.md) maps to: +\[ + \mathcal{U} = \underbrace{\alpha\, U_{\text{usage}}}_{\text{usage volume}} + + \underbrace{\beta\, V_{\text{business}}}_{\text{business value}} + - \underbrace{\gamma\, C_{\text{platform}}}_{\text{platform cost}} +\] +Optimum: $\nabla_\theta \mathcal{U} = \mathbf{0}$, i.e.\ saddle-point of the +information Lagrangian $\mathcal{L} = \mathcal{U} - \lambda(\text{constraints})$. + +% ════════════════════════════════════════════════════════════════════════════ +\section{\texttt{knuth()} — Algorithmic Notation} +% ════════════════════════════════════════════════════════════════════════════ + +\subsection{Asymptotic notation (Knuth, TAOCP)} + +\[ + f(n) = O(g(n)) \iff \exists\, c{>}0,\, n_0 : |f(n)| \leq c\,|g(n)|\ \forall n \geq n_0 +\] +\[ + f(n) = \Omega(g(n)) \iff g(n) = O(f(n)), \qquad + f(n) = \Theta(g(n)) \iff f{=}O(g) \land g{=}O(f) +\] + +\subsection{Knuth up-arrow notation} + +\[ + a \uparrow b = a^b, \quad + a \uparrow\uparrow b = \underbrace{a^{a^{\iddots^a}}}_{b}, \quad + a \uparrow\uparrow\uparrow b = \underbrace{a \uparrow\uparrow (a \uparrow\uparrow \cdots)}_{b} +\] + +The BubbleLeader builder chain (§\ref{sec:bubble}) composes +$n = 13$ functions; its worst-case complexity: +\[ + T_{\text{chain}}(n) = \Theta\!\left(\sum_{k=1}^{13} T_k\right) + = \Theta(n \log n) \text{ (dominated by sort in } \texttt{pg()}\text{)} +\] + +\subsection{\texttt{tex()} and \texttt{latex()}} + +Knuth's \TeX\ typesetting algorithm minimises the badness $b_i$ of each line: +\[ + b_i = \left(\frac{l_i - L}{L}\right)^3 \cdot 10{,}000, \qquad + \text{total penalty} = \sum_i b_i^{1/3} +\] +\LaTeX\ wraps \TeX\ with macros; \texttt{latex()} in this catalog generates +the typeset output for any symbolic expression in the chain. + +\subsection{\texttt{jd()} — Julian Day Number} + +\[ + \JD(Y,M,D) = 367Y - \left\lfloor \frac{7\left(Y + \left\lfloor\frac{M+9}{12}\right\rfloor\right)}{4} \right\rfloor + + \left\lfloor \frac{275M}{9} \right\rfloor + D + 1{,}721{,}013.5 +\] + +Used in \texttt{date-elements} (CLAUDE.md §5) for temporal lineage keys. + +% ════════════════════════════════════════════════════════════════════════════ +\section{\texttt{refData()} and \texttt{loadCodeTableFromBaseFromShiva()}} +\label{sec:refdata} +% ════════════════════════════════════════════════════════════════════════════ + +\subsection{Code tables: AAAA \ldots{} FFFFF} + +\texttt{loadCodeTableFromBaseFromShiva()} hydrates the following +code sets from the Shiva base layer into the Singine domain database. + +\begin{center} +\begin{tabular}{@{}lllll@{}} +\toprule +\textbf{Code} & \textbf{Label} & \textbf{Domain} & \textbf{SBVR mapping} & \textbf{Collibra asset type}\\ +\midrule +\Ctable{AAAA} & Axiom Alpha & Mathematics & \texttt{sbvr:Fact} & Business Term \\ +\Ctable{BBBB} & Basis Bundle Beta & Quantum & \texttt{sbvr:Term} & Data Element \\ +\Ctable{CCCC} & Catalog Code & Collibra & \texttt{odrl:Agreement} & Data Asset \\ +\Ctable{DDDD} & Dirac Domain & Physics & \texttt{prov:Entity} & Data Set \\ +\Ctable{EEEE} & Einstein Epsilon & Relativity & \texttt{owl:Class} & Business Process \\ +\Ctable{FFFFF} & Formal Field Fiber & Category Thy & \texttt{skos:Concept} & Reference Data \\ +\ldots & \ldots & \ldots & \ldots & \ldots \\ +\bottomrule +\end{tabular} +\end{center} + +Each code is a 4- or 5-character repeating-letter sentinel; the Shiva +base layer resolves them via: +\[ + \texttt{refData}(c) = \sigma_{\texttt{code} = c}(\texttt{code\_table}) + \xrightarrow{\text{Collibra}} \texttt{assetId} +\] + +\subsection{Shiva Base Layer} + +\begin{lstlisting}[language=Python, caption={loadCodeTableFromBaseFromShiva()}] +def loadCodeTableFromBaseFromShiva( + db: Path = Path("/tmp/humble-idp.db"), + shiva_base: str = "urn:singine:base:shiva", +) -> dict[str, CodeEntry]: + """Load the canonical code table from the Shiva base layer. + AAAA=Axiom, BBBB=Basis, CCCC=Catalog, DDDD=Dirac, + EEEE=Einstein, FFFFF=Formal, ... + """ + return { + "AAAA": CodeEntry("AAAA", "Axiom Alpha", "Mathematics"), + "BBBB": CodeEntry("BBBB", "Basis Bundle Beta", "Quantum"), + "CCCC": CodeEntry("CCCC", "Catalog Code", "Collibra"), + "DDDD": CodeEntry("DDDD", "Dirac Domain", "Physics"), + "EEEE": CodeEntry("EEEE", "Einstein Epsilon", "Relativity"), + "FFFFF": CodeEntry("FFFFF", "Formal Field Fiber","Category Theory"), + } +\end{lstlisting} + +% ════════════════════════════════════════════════════════════════════════════ +\section{\texttt{collibra().init()} — Catalog Initialisation} +% ════════════════════════════════════════════════════════════════════════════ + +\[ + \texttt{collibra().init()} \equiv + \text{POST } \texttt{/rest/2.0/communities} \;\to\; + \text{seed}(\Ctable{AAAA},\ldots,\Ctable{FFFFF}) + \;\to\; \text{register MCP tools} +\] + +The init sequence: + +\begin{enumerate} + \item Read \texttt{uniWork/CollibraBaseUrl} and CSRF token. + \item Hydrate code tables via \texttt{loadCodeTableFromBaseFromShiva()}. + \item Register governance assets (AAAA\ldots FFFFF) as Collibra Business Terms. + \item Emit \texttt{ChipActivityReport} with \texttt{status=completed}. + \item Return \texttt{collibra\_id} map for downstream \texttt{refData()} calls. +\end{enumerate} + +% ════════════════════════════════════════════════════════════════════════════ +\section{Quantum Stack and Queue} +% ════════════════════════════════════════════════════════════════════════════ + +\subsection{Quantum Stack} + +A classical stack of depth $n$ is replaced by a quantum superposition: +\[ + \ket{S} = \sum_{k=0}^{N} \alpha_k \ket{k}, \qquad + \alpha_k \in \mathbb{C}, \quad \sum_k |\alpha_k|^2 = 1 +\] + +\textbf{Push} (creation operator $\hat{a}^\dagger$): +\[ + \Push\ket{n} = \sqrt{n+1}\,\ket{n+1} +\] + +\textbf{Pop} (annihilation operator $\hat{a}$): +\[ + \Pop\ket{n} = \sqrt{n}\,\ket{n-1}, \qquad \Pop\ket{0} = 0 +\] + +\textbf{Number operator} $\hat{N} = \hat{a}^\dagger\hat{a}$: +\[ + \hat{N}\ket{n} = n\ket{n} +\] + +\textbf{Canonical commutation relation}: +\[ + \comm{\Pop}{\Push} = \hat{\mathbf{1}} +\] + +\textbf{Heisenberg uncertainty} for stack depth: +\[ + \Delta \hat{N} \cdot \Delta \hat{\phi} \geq \tfrac{1}{2}, + \qquad \hat{\phi} = i\ln\hat{a} +\] + +\subsection{Quantum Queue} + +A queue is represented by a density matrix (mixed state over ordered elements): +\[ + \rho_Q = \sum_{i=1}^{M} p_i \ket{\psi_i}\bra{\psi_i}, + \qquad p_i \geq 0,\quad \sum_i p_i = 1 +\] + +\textbf{Enqueue} at the back: +\[ + \Enq(\rho_Q) = U_{\text{enq}}\,\rho_Q\,U_{\text{enq}}^\dagger + \otimes \ket{\text{new}}\bra{\text{new}} +\] + +\textbf{Dequeue} from the front (partial trace over first register): +\[ + \Deq(\rho_Q) = \operatorname{Tr}_1\!\bigl[\rho_Q\bigr] +\] + +\textbf{FIFO order} is encoded in the entanglement structure: +\[ + \ket{Q_n} = \frac{1}{\sqrt{n!}}\sum_{\pi \in S_n^{\text{ordered}}} \ket{q_{\pi(1)}} \otimes \cdots \otimes \ket{q_{\pi(n)}} +\] + +% ════════════════════════════════════════════════════════════════════════════ +\section{Complex Cartesian Plane — Angles and Trigonometry} +% ════════════════════════════════════════════════════════════════════════════ + +\subsection{Euler's formula and the unit circle} + +\[ + z = r e^{i\theta} = r(\cos\theta + i\sin\theta), + \qquad |z| = r,\quad \arg(z) = \theta +\] + +Fundamental identities: +\[ + \cos\theta = \frac{e^{i\theta} + e^{-i\theta}}{2}, \qquad + \sin\theta = \frac{e^{i\theta} - e^{-i\theta}}{2i}, \qquad + e^{i\pi} + 1 = 0 +\] + +\begin{center} +\begin{tikzpicture}[scale=2.4] + % Axes + \draw[->] (-1.3,0) -- (1.5,0) node[right] {$\operatorname{Re}$}; + \draw[->] (0,-1.3) -- (0,1.5) node[above] {$\operatorname{Im}$}; + % Unit circle + \draw[thick, collibraBlue] (0,0) circle (1); + % Vector z + \def\ang{50} + \coordinate (Z) at ({cos(\ang)},{sin(\ang)}); + \draw[->, very thick, quantumViolet] (0,0) -- (Z) + node[above right] {$z = e^{i\theta}$}; + % Angle arc + \draw[escherGold, thick] (0.35,0) arc (0:\ang:0.35) + node[midway, right, escherGold] {$\theta$}; + % cos projection + \draw[dashed, pgGreen] (Z) -- ({cos(\ang)},0) + node[below, pgGreen] {$\cos\theta$}; + % sin projection + \draw[dashed, red!70!black] (Z) -- (0,{sin(\ang)}) + node[left, red!70!black] {$\sin\theta$}; + % Second vector u + \def\angU{20} + \coordinate (U) at ({0.85*cos(\angU)},{0.85*sin(\angU)}); + \draw[->, thick, orange] (0,0) -- (U) node[right] {$\mathbf{u}$}; + % Angle label + \node at (0.5,-0.2) [pgGreen] {\small $\cos\theta$}; + \node at (-0.15,0.5) [red!70!black] {\small $\sin\theta$}; + % Labels + \node at (0.35,0.35) [quantumViolet, font=\small] {$r=1$}; +\end{tikzpicture} +\end{center} + +% ════════════════════════════════════════════════════════════════════════════ +\section{\texttt{cosine().similarity().complex().resolve().xml().catalog().collibra()}} +% ════════════════════════════════════════════════════════════════════════════ + +\subsection{Cosine similarity in $\mathbb{C}^n$} + +For vectors $\mathbf{u}, \mathbf{v} \in \mathbb{C}^n$: +\[ + \cossim(\mathbf{u}, \mathbf{v}) + = \frac{\operatorname{Re}\!\left(\langle\mathbf{u},\mathbf{v}\rangle\right)}{|\mathbf{u}|\,|\mathbf{v}|} + = \frac{\operatorname{Re}\!\left(\sum_{k=1}^n \bar{u}_k v_k\right)} + {\sqrt{\sum_k |u_k|^2}\,\sqrt{\sum_k |v_k|^2}} + \in [-1, 1] +\] + +Quantum analog: the real part of the transition amplitude: +\[ + \cossim(\ket{\psi}, \ket{\phi}) = \operatorname{Re}\!\braket{\psi}{\phi} +\] + +\subsection{Angular resolution on the complex plane} + +\[ + \theta(\mathbf{u},\mathbf{v}) + = \arccos\!\left(\frac{\operatorname{Re}\langle\mathbf{u},\mathbf{v}\rangle}{|\mathbf{u}||\mathbf{v}|}\right) + \in [0, \pi] +\] + +For complex exponential embeddings $\mathbf{u}_k = e^{i\phi_k}$: +\[ + \cossim = \operatorname{Re}\!\left(e^{i(\phi_v - \phi_u)}\right) = \cos(\phi_v - \phi_u) +\] + +\subsection{Resolution chain to Collibra} + +\[ + \texttt{cosine()} \xrightarrow{\;\cos\theta\;} \texttt{similarity()} + \xrightarrow{\;\mathbb{C}^n\;} \texttt{complex()} + \xrightarrow{\;\theta \to \text{IRI}\;} \texttt{resolve()} + \xrightarrow{\;\text{DOM}\;} \texttt{xml()} + \xrightarrow{\;\text{DCAT}\;} \texttt{catalog()} + \xrightarrow{\;\text{REST}\;} \texttt{collibra()} +\] + +Each step: +\begin{enumerate} + \item \texttt{cosine(u,v)} — compute $\cos\theta$ in $\mathbb{C}^n$ + \item \texttt{similarity()} — threshold and rank candidates + \item \texttt{complex()} — embed result in complex vector space + \item \texttt{resolve()} — map angle $\theta$ to a Collibra IRI + \item \texttt{xml()} — serialise as \texttt{chip-queries.xml} node + \item \texttt{catalog()} — insert into DCAT catalog graph + \item \texttt{collibra()} — POST to Collibra REST \texttt{/assets} +\end{enumerate} + +% ════════════════════════════════════════════════════════════════════════════ +\section{\texttt{bubbleLeader().builder().\ldots.paulGraham()}} +\label{sec:bubble} +% ════════════════════════════════════════════════════════════════════════════ + +\subsection{The chain as function composition} + +Let $\mathcal{F}$ be the set of 13 functions. The chain is: +\[ + \Xi = \texttt{paulGraham} \circ \underbrace{\texttt{pg} \circ \texttt{pg}}_{\text{PostgreSQL} \times 2} + \circ \texttt{escher} \circ \texttt{godel} \circ \texttt{math} + \circ \texttt{f} \circ \texttt{c} + \circ \texttt{clojure} \circ \texttt{groovy} + \circ \texttt{piotr} \circ \texttt{builder} \circ \texttt{bubbleLeader} +\] + +As a monad bind sequence (Haskell-style): +\[ + \Xi\, x = x \gg\!= \texttt{bubbleLeader} + \gg\!= \texttt{builder} + \gg\!= \texttt{piotr} + \gg\!= \texttt{groovy} + \gg\!= \texttt{clojure} + \gg\!= \texttt{c} + \gg\!= \texttt{f} + \gg\!= \texttt{math} + \gg\!= \texttt{godel} + \gg\!= \texttt{escher} + \gg\!= \texttt{pg} + \gg\!= \texttt{pg} + \gg\!= \texttt{paulGraham} +\] + +\subsection{Layer definitions} + +\begin{center} +\begin{tabular}{@{}lllp{6cm}@{}} +\toprule +\textbf{Layer} & \textbf{Domain} & \textbf{Type} & \textbf{Role in chain}\\ +\midrule +\texttt{bubbleLeader} & Architecture & Selector & Elect the leader element; Float max to top \\ +\texttt{builder} & GoF pattern & Factory & Gang of Four Builder — accumulate config \\ +\texttt{piotr} & Coordination & Orchestrator & Cross-language coordination point \\ +\texttt{groovy} & JVM & DSL & Groovy closure / JProfiler target \\ +\texttt{clojure} & JVM & Functional & Clojure pure-function pass; persistence core \\ +\texttt{c} & Systems & Native & C layer — zero-copy, cache-aligned structs \\ +\texttt{f} & Functional & Type & F-algebra / fixed-point functor \\ +\texttt{math} & Mathematics & Symbolic & Symbolic algebra (SymPy / Mathematica) \\ +\texttt{godel} & Logic & Meta & Gödel encoding; self-reference check \\ +\texttt{escher} & Recursion & Fractal & Fixed-point combinator; visual tiling \\ +\texttt{pg} & Storage & SQL & PostgreSQL query layer (first \texttt{pg}) \\ +\texttt{pg} & Authority & LISP & Paul Graham — Arc/LISP wisdom pass \\ +\texttt{paulGraham} & Philosophy & Terminal & Terminal evaluation: simplicity, startup \\ +\bottomrule +\end{tabular} +\end{center} + +\subsection{Gödel layer} + +Gödel's first incompleteness theorem applied to the chain: +\[ + \forall F \text{ consistent and sufficiently expressive}: + \exists \sigma_F \text{ s.t. } F \not\vdash \sigma_F \land F \not\vdash \neg\sigma_F +\] + +Gödel numbering of chain element $f_k$: +\[ + \gonum{f_k} = \prod_{j=1}^{|\text{tokens}(f_k)|} p_j^{a_j} +\] +where $p_j$ is the $j$-th prime and $a_j$ the token code. +The chain's self-referential invariant: $\gonum{\Xi} \not\in \Xi$. + +\subsection{Escher layer} + +Self-reference as fixed-point combinator (Y-combinator): +\[ + Y = \lambda f . \bigl(\lambda x . f(xx)\bigr)\bigl(\lambda x . f(xx)\bigr) +\] +\[ + \texttt{escher}(f) = Y\,f = f(Y\,f) = f(f(f(\cdots))) +\] + +Visually: $M.\!C.\ \text{Escher} \equiv $ ``Drawing Hands'' $\equiv$ the chain +pointing at itself through \texttt{godel} $\circ$ \texttt{escher}. + +\subsection{Paul Graham layer} + +The terminal evaluation reduces the chain to the LISP primitive: +\[ + \texttt{paulGraham}(e) = \text{eval}(e,\, \texttt{nil}) + \quad\text{where}\quad + e \in \{atom, eq, car, cdr, cons, cond, lambda\} +\] + +Arc's thesis: \emph{``Succinctness is power.''} Therefore: +\[ + |\Xi| \text{ should be minimal subject to } \mathcal{U}(\Xi) \text{ being maximal} +\] + +% ════════════════════════════════════════════════════════════════════════════ +\section{Stack $+$ Queue in Quantum Terms — Unified} +% ════════════════════════════════════════════════════════════════════════════ + +\subsection{Quantum register} + +Combine stack $\ket{S}$ and queue $\rho_Q$ in a joint Hilbert space +$\mathcal{H}_S \otimes \mathcal{H}_Q$: +\[ + \ket{\Psi} = \ket{S} \otimes \rho_Q^{1/2} +\] + +\textbf{Stack operations} act on $\mathcal{H}_S \otimes \hat{\mathbf{1}}_Q$: +\[ + \Push_S = \hat{a}^\dagger_S \otimes \hat{\mathbf{1}}_Q, \qquad + \Pop_S = \hat{a}_S \otimes \hat{\mathbf{1}}_Q +\] + +\textbf{Queue operations} act on $\hat{\mathbf{1}}_S \otimes \mathcal{H}_Q$: +\[ + \Enq_Q = \hat{\mathbf{1}}_S \otimes U_{\text{enq}},\qquad + \Deq_Q = \hat{\mathbf{1}}_S \otimes \operatorname{Tr}_1 +\] + +\subsection{Entangled stack-queue} + +When the stack and queue are entangled (e.g.\ after a \texttt{popToQueue}): +\[ + \ket{\Psi_{\text{entangled}}} = \frac{1}{\sqrt{n}}\sum_{k=0}^{n-1} + \ket{k}_S \otimes \ket{n-1-k}_Q +\] + +Measurement collapses both simultaneously. + +\subsection{Quantum complexity bounds} + +\begin{center} +\begin{tabular}{@{}lll@{}} +\toprule +\textbf{Operation} & \textbf{Classical} & \textbf{Quantum}\\ +\midrule +Push / Enqueue & $O(1)$ & $O(1)$ (unitary gate)\\ +Pop / Dequeue & $O(1)$ & $O(1)$ (partial trace)\\ +Search & $O(n)$ & $O(\sqrt{n})$ (Grover)\\ +Sort (bubble) & $O(n^2)$ & $O(n^{3/2})$ (quantum bubble)\\ +\bottomrule +\end{tabular} +\end{center} + +Quantum bubble sort uses the \texttt{bubbleLeader} comparator as a quantum oracle: +\[ + U_{\text{oracle}}\ket{i,j} = (-1)^{f(i,j)}\ket{i,j}, + \quad f(i,j) = \begin{cases}1 & a_i > a_j \\ 0 & \text{else}\end{cases} +\] + +% ════════════════════════════════════════════════════════════════════════════ +\section{MathML Fragment} +% ════════════════════════════════════════════════════════════════════════════ + +The following MathML encoding of $e^{i\pi}+1=0$ is equivalent to the +\LaTeX{} above and is used in the XML catalog node: + +\begin{lstlisting}[language=XML, caption={MathML: Euler's identity}] + + + e + iπ + + +1=0 + + +\end{lstlisting} + +Cosine similarity in MathML: +\begin{lstlisting}[language=XML, caption={MathML: cosine similarity}] + + + cos_sim + (u, + v) + = + + Re⟨ + u, + v + ⟩ + |u| + |v| + + + +\end{lstlisting} + +% ════════════════════════════════════════════════════════════════════════════ +\section{Summary: Symbol Table} +% ════════════════════════════════════════════════════════════════════════════ + +\begin{multicols}{2} +\begin{tabular}{@{}ll@{}} +$\ket{\psi}$ & Quantum ket state \\ +$\bra{\phi}$ & Quantum bra (dual) \\ +$\hat{a},\hat{a}^\dagger$ & Pop/Push (annihilation/creation) \\ +$\hat{N}$ & Number operator \\ +$\rho$ & Density matrix (queue) \\ +$\operatorname{Tr}_1$ & Partial trace (dequeue) \\ +$G_{\mu\nu}$ & Einstein tensor \\ +$T_{\mu\nu}$ & Stress-energy (usage) \\ +$\mathcal{U}$ & Ultimate metric \\ +$O, \Omega, \Theta$ & Knuth asymptotics \\ +\end{tabular} +\columnbreak +\begin{tabular}{@{}ll@{}} +$\uparrow\uparrow$ & Knuth up-arrow \\ +$\JD(Y,M,D)$ & Julian Day Number \\ +$\Ctable{AAAA\ldots FFFFF}$ & Shiva code table \\ +$\Xi$ & BubbleLeader chain \\ +$\gonum{\cdot}$ & Gödel number \\ +$Y$ & Y-combinator (Escher) \\ +$\cos\theta$ & Cosine similarity \\ +$e^{i\theta}$ & Complex unit vector \\ +$\cossim(\mathbf{u},\mathbf{v})$ & Complex cosine sim \\ +$\Lambda_{\text{latency}}$ & Data cosmological const \\ +\end{tabular} +\end{multicols} + +\bigskip\hrule\bigskip +\noindent +\small\textcolor{godelGray}{% + \texttt{chip-quantum-catalog.tex} $\cdot$ + Singine Collibra $\cdot$ + \texttt{cosine().similarity().complex().resolve().xml().catalog().collibra()}\\ + Grammar: \texttt{docs/xml/chip-queries.xml} $\cdot$ + Python: \texttt{singine\_collibra/quantum\_catalog.py} $\cdot$ + SVG: \texttt{docs/quantum/complex-plane.svg} +} + +\end{document} diff --git a/docs/quantum/complex-plane.svg b/docs/quantum/complex-plane.svg new file mode 100644 index 0000000..c5b8704 --- /dev/null +++ b/docs/quantum/complex-plane.svg @@ -0,0 +1,160 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Re + Im + + + + + 1 + + −1 + + i + + −i + + + + + + + u + + + + + + v + + + + + + + θ + + + + + + cos θ + + + + + sin θ + + + + + cos_sim(u,v) = Re⟨u,v⟩ / (|u|·|v|) = cos θ + + + + + + z = r e^{iθ} = r(cos θ + i sin θ) + + + e^{iπ} + 1 = 0 + + + + + |ψ⟩ = Σ αₖ|k⟩ · â†|n⟩ = √(n+1)|n+1⟩ · [â,â†] = 1̂ + + + + + cosine().similarity().complex().resolve().xml().catalog().collibra() + + + + + + AAAA·BBBB·CCCC·DDDD·EEEE·FFFFF ← loadCodeTableFromBaseFromShiva() + + + + + Ξ = bubbleLeader·builder·piotr·groovy·clojure·c·f·math·godel·escher·pg·pg·paulGraham + + + + + O + + diff --git a/docs/quantum/quantum-catalog.xml b/docs/quantum/quantum-catalog.xml new file mode 100644 index 0000000..6a87157 --- /dev/null +++ b/docs/quantum/quantum-catalog.xml @@ -0,0 +1,262 @@ + + + + + Quantum Catalog — Stack, Queue, Cosine on ℂ + Singine Collibra — chip-queries.xml + 2026-03-26 + + cosine().similarity().complex().resolve().xml().catalog().collibra() + dirac() · einstein() · knuth() · tex() · latex() · jd() + loadCodeTableFromBaseFromShiva() · bubbleLeader()...paulGraham() + + + + + + + + + 𝕀⊢σ + + + + + + |ψ⟩ + = + ∑k + αk + |k⟩ + + + + + + + + refData( + c) + → + assetId + + + + + + + δ(x + −x0 + ) + = + limε→0 + + 1 + επ + + e + − + (x− + x0) + 2 + /ε2 + + + + + + + + + + Gμν + + + Λ + gμν + = + + 8πG + c4 + + Tμν + + + + + + + + Y= + λf. + (λx. + f(xx)) + (λx. + f(xx)) + + + + + + + + + + + + Stack as quantum superposition |S⟩ = Σ αₖ|k⟩, αₖ ∈ ℂ + + + â†|n⟩ = √(n+1)|n+1⟩ — creation operator + + + a^† + |n⟩ + = + n+1 + |n+1⟩ + + + + + â|n⟩ = √n|n−1⟩ — annihilation operator; â|0⟩ = 0 + + + N̂|n⟩ = n|n⟩; [â, â†] = 1̂ + + + + + + + + + + Queue as density matrix ρ_Q = Σᵢ pᵢ|ψᵢ⟩⟨ψᵢ| + + + U_enq ρ_Q U_enq† ⊗ |new⟩⟨new| + + + Tr₁[ρ_Q] — partial trace over first register + + + + + + + + + + + + + + + + cos_sim + (u + ,v) + = + + Re + ⟨u + ,v + ⟩ + + + |u| + ⋅ + |v| + + + ∈[-1,1] + + + + + + + + e + iπ + + +1=0 + + + + + + + + + + + + + + + + + + + + + + Ξ = bubbleLeader ∘ builder ∘ piotr ∘ groovy ∘ clojure ∘ c ∘ f + ∘ math ∘ godel ∘ escher ∘ pg ∘ pg ∘ paulGraham + + x >>= bubbleLeader >>= builder >>= ... >>= paulGraham + + Gödel number: ⌈Ξ⌉ = Π pⱼ^aⱼ — incompleteness invariant: ⌈Ξ⌉ ∉ Ξ + + + Y f = f(Y f) = f(f(f(⋯))) — Escher drawing-hands fixed point + + Succinctness is power. + + + + + + + + + + + + + + + + + + diff --git a/docs/xml/chip-queries.xml b/docs/xml/chip-queries.xml new file mode 100644 index 0000000..de8e616 --- /dev/null +++ b/docs/xml/chip-queries.xml @@ -0,0 +1,176 @@ + + + + + + Grammar for ~ws(self, ...+ ++ +++ ++++ +++++)/codeLookup().lambda().exec().tryCatchClaude + with type retrieval, HTTP-compatible gRPC function calls, and JProfiler + attachment to Groovy and Clojure JVM processes. + + + + + + + + + + + + + + + + + + + + + + + Look up a Collibra asset, business term, or code type by search term. + Supports workspace-depth-scoped traversal. + + + + + + + + + + + + + + + Emit MCP-compatible error envelope; delegate re-evaluation to Claude session. + + + + + + + Retrieve the full type definition (properties, relations) for a Collibra asset IRI. + + + + + + + + + + + + + + + + Wrap any chip MCP tool call in a deferred lambda and execute it. + Catches exceptions and forwards to tryCatchClaude. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + WorkspaceDepth, CodeLookupRequest, TypeRetrievalRequest, + GrpcHttpRequest, JProfilerTarget, ChipQueryGrammar + + + diff --git a/docs/xml/singine-agent-contract.xml b/docs/xml/singine-agent-contract.xml new file mode 100644 index 0000000..d5c75f2 --- /dev/null +++ b/docs/xml/singine-agent-contract.xml @@ -0,0 +1,96 @@ + + + + Singine Agent Contract for the Collibra Repository + + Define the common cross-agent working contract for this repository, with a + small agent-specific extension layer for Codex, Claude, and future agentic + systems including Singine itself. + + + + + + This repository is the system of record for Collibra-specific code, + metamodel abstractions, operating-model import/export workflows, Edge + integrations, and the implementation behind the `singine collibra ...` + command family. + + + + Implement Collibra REST, SDK, CLI, MCP, operating-model, Edge, and tenant-specific governance logic here. + Expose Collibra-aware logic to Singine through `singine-collibra/python/singine_collibra/` rather than duplicating it in Singine. + Keep Singine focused on execution, privileges, orchestration, and general runtime publication concerns. + Prefer SilkPage for transformation-heavy XML/XSLT/XPath/RDF/TTL/SPARQL/SQL/GraphQL pipelines when that work is not intrinsically Collibra-specific. + Treat the Collibra metamodel and its governed identifiers as a canonical alignment contract across repositories and agents. + + + + Default to adding or updating tests for every functional change. + Prefer Singine-level tests and MCP-interface tests when the feature is exposed through `singine collibra ...`. + Update documentation in parallel with code changes: XML model/command docs, OpenAPI descriptions when applicable, man pages, and Markdown pages. + If tests or documentation are intentionally omitted, explain that explicitly in the final response. + When a change introduces or modifies a CLI surface, keep command registration, docs/xml, man pages, and Markdown usage examples aligned. + + + + New features should explain how they map to the Collibra metamodel, operating model, assignments, views, or governed identifiers. + Prefer loading the exported operating-model package from `~/ws/today/metamodel/` when available, and use hand-written fallbacks only as secondary sources. + Metamodel visualisation, import, and export features should preserve interchangeability with Singine-friendly in-memory opmodel projections. + + + + Canonical model narrative + Canonical command narrative + Generated and maintained man pages + Human-oriented repository overview + Open implementation gaps and risks + + + + Run the smallest meaningful verification for the change, and prefer executable checks over pure inspection. + For Python changes, at minimum run syntax validation and targeted execution paths when possible. + For command-surface changes, verify the parser wiring or command output path directly. + + + + + + CODEX.md - Collibra Repository Contract + + This file gives Codex-specific emphasis while inheriting the shared + Singine agent contract for the repository. + + + Bias toward implementing the requested change end-to-end, including tests and docs, rather than stopping at design notes. + When patching code, keep generated command/docs artifacts aligned in the same change whenever feasible. + Use the shared XML contract as the source of truth for this file and keep agent-specific additions small. + + + + + CLAUDE.md - Collibra Repository Contract + + This file gives Claude-specific emphasis while inheriting the shared + Singine agent contract for the repository. + + + Retain higher-level repository walkthrough context, but keep the shared operational contract authoritative. + When describing a change, include the metamodel and command-surface implications, not just implementation detail. + Use the shared XML contract as the source of truth for this file and keep agent-specific additions small. + + + + + AGENTS.md - Cross-Agent Contract + + This file is the generic entry point for agents and LLM-based tools that + do not have their own dedicated repository instruction file yet. + + + Assume the shared 80% contract is mandatory and keep system-specific behavior in a thin compatibility layer. + New agent integrations should extend the XML contract rather than forking repository policy into unrelated markdown files. + + + + diff --git a/docs/xml/singine-collibra-commands.xml b/docs/xml/singine-collibra-commands.xml index 4ff55c9..2d3c5a0 100644 --- a/docs/xml/singine-collibra-commands.xml +++ b/docs/xml/singine-collibra-commands.xml @@ -208,6 +208,281 @@ + + + + + + Governs how Singine talks to the Collibra platform. The default MCP backend + is Collibra CHIP, built from source under ~/ws/github/collibra/chip/. + Singine remains the execution shell; Collibra-specific MCP wiring lives here. + + singine-collibra/python/singine_collibra/io.py, singine-collibra/python/singine_collibra/chip.py + + + + + + + + singine collibra io chip status + + + + + + + + singine collibra io chip configure all + + + + + + + singine collibra io chip tools list + + + + + + + + + + + singine collibra io create community --name "Data Governance" + + + + + singine collibra io create template --name glossary-import --asset-type "Business Term" --scope-attribute "domain=Finance" --attribute "Definition:definition" --output /tmp/glossary-import.json + + + + + + + + + singine collibra io metamodel status + + + + + singine collibra io metamodel visualize --asset-type "Data Notebook" --format mermaid + + + + + singine collibra io metamodel export --format opmodel --asset-type "Business Term" --output /tmp/business-term-opmodel.json + + + + + + + + + + + singine collibra io edge connection probe-postgres --json + + + + + + + + + singine collibra io edge datasource diagnose --id DATASOURCE-UUID --json + + + + + + + + + + + + + + Exposes the Python CHIP query DSL defined in docs/xml/chip-queries.xml. + Covers workspace-depth lookup, typed retrieval, HTTP-compatible gRPC bridge + inspection, and JProfiler target discovery for Groovy and Clojure JVMs. + + singine-collibra/python/singine_collibra/chip_queries.py + + + + + singine collibra query status --json + + + + + + singine collibra query jprofiler-targets --json + + + + + singine collibra query grpc-bindings + + + + + + + + + singine collibra query code-lookup "elia electricity domain" --depth +++ --json + + + + + + + + + singine collibra query type-retrieval "Business Term" --json + + + + + + + + + singine collibra query grpc-http-call GenId --body '{"namespace":"c"}' --json + + + + + + + + + + Exposes the symbolic quantum-catalog helpers built for the CHIP query + surface, including Shiva base-layer code tables, the cosine-resolution + fluent chain, and the full BubbleLeader symbolic pipeline. + + singine-collibra/python/singine_collibra/quantum_catalog.py + + + + + singine collibra quantum status --json + + + + + + singine collibra quantum load-shiva --json + + + + + + + + singine collibra quantum refdata AAAA --json + + + + + + singine collibra quantum cosine --u 1+0j,0+1j --v 1+0j,1+0j --json + + + + + + + + singine collibra quantum bubble-leader 9 1 5 7 --json + + + + diff --git a/runtime/sinlisp/collibra_io.sinlisp b/runtime/sinlisp/collibra_io.sinlisp new file mode 100644 index 0000000..df0c56c --- /dev/null +++ b/runtime/sinlisp/collibra_io.sinlisp @@ -0,0 +1,38 @@ +; SinLisp command model for the singine collibra io workflow family. + +(workflow "singine-collibra-io" + (command "create-community" + (argv "singine" "collibra" "io" "create" "community" "--name" "Data Governance" "--json") + (writes "community-api-side-effects")) + (command "create-template" + (argv "singine" "collibra" "io" "create" "template" "--name" "glossary-import" "--asset-type" "Business Term" "--output" "/tmp/glossary-import.json") + (reads "docs/xml/singine-collibra-commands.xml") + (writes "/tmp/glossary-import.json")) + (command "metamodel-status" + (argv "singine" "collibra" "io" "metamodel" "status") + (reads "~/ws/today/metamodel/reference/current/latest")) + (command "metamodel-visualize" + (argv "singine" "collibra" "io" "metamodel" "visualize" "--asset-type" "Data Notebook" "--format" "mermaid") + (reads "~/ws/today/metamodel/reference/current/latest")) + (command "metamodel-export" + (argv "singine" "collibra" "io" "metamodel" "export" "--format" "opmodel" "--asset-type" "Business Term" "--output" "/tmp/business-term-opmodel.json") + (reads "~/ws/today/metamodel/reference/current/latest") + (writes "/tmp/business-term-opmodel.json")) + (command "chip-status" + (argv "singine" "collibra" "io" "chip" "status" "--json")) + (command "chip-configure" + (argv "singine" "collibra" "io" "chip" "configure" "all" "--json")) + (command "chip-tools-list" + (argv "singine" "collibra" "io" "chip" "tools" "list" "--json")) + (command "edge-connection-probe-postgres" + (argv "singine" "collibra" "io" "edge" "connection" "probe-postgres" "--json")) + (command "edge-datasource-diagnose" + (argv "singine" "collibra" "io" "edge" "datasource" "diagnose" "--id" "DATASOURCE-UUID" "--json"))) + +(test-suite "singine-collibra-io" + (test "openapi-path-count" + (expect-path "schema/singine-collibra-io-api.json")) + (test "xml-source-present" + (expect-path "docs/xml/singine-collibra-commands.xml")) + (test "sinlisp-source-present" + (expect-path "runtime/sinlisp/collibra_io.sinlisp"))) diff --git a/schema/singine-collibra-io-api.json b/schema/singine-collibra-io-api.json new file mode 100644 index 0000000..c313b3e --- /dev/null +++ b/schema/singine-collibra-io-api.json @@ -0,0 +1,589 @@ +{ + "openapi": "3.1.0", + "info": { + "title": "Singine Collibra IO API", + "version": "0.1.0", + "summary": "Generated HTTP interaction contract for the `singine collibra io` command family.", + "description": "Generated from docs/xml/singine-collibra-commands.xml so the CLI, XML publication, and OpenAPI surface stay aligned." + }, + "servers": [ + { + "url": "http://127.0.0.1:9090", + "description": "Local Singine panel or adapter surface" + } + ], + "paths": { + "/api/collibra/io/chip/status": { + "get": { + "operationId": "collibraIoChipStatus", + "summary": "Validate binary paths, client wiring, and the CHIP stdio startup probe", + "responses": { + "200": { + "description": "Command result", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CommandResult" + } + } + } + } + }, + "description": "CLI example: `singine collibra io chip status`", + "parameters": [ + { + "name": "binary", + "in": "query", + "required": false, + "schema": { + "type": "string", + "default": "~/ws/github/collibra/chip/.build/chip" + } + }, + { + "name": "json", + "in": "query", + "required": false, + "schema": { + "type": "boolean" + } + } + ] + } + }, + "/api/collibra/io/chip/configure": { + "post": { + "operationId": "collibraIoChipConfigure", + "summary": "Wire Codex and/or Claude to the source-built CHIP binary", + "responses": { + "200": { + "description": "Command result", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CommandResult" + } + } + } + } + }, + "description": "CLI example: `singine collibra io chip configure all`", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ChipConfigureRequest" + } + } + } + } + } + }, + "/api/collibra/io/chip/tools/list": { + "get": { + "operationId": "collibraIoChipToolsList", + "summary": "Start CHIP briefly and list the tools it registers", + "responses": { + "200": { + "description": "Command result", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CommandResult" + } + } + } + } + }, + "description": "CLI example: `singine collibra io chip tools list`", + "parameters": [ + { + "name": "binary", + "in": "query", + "required": false, + "schema": { + "type": "string", + "default": "~/ws/github/collibra/chip/.build/chip" + } + }, + { + "name": "json", + "in": "query", + "required": false, + "schema": { + "type": "boolean" + } + } + ] + } + }, + "/api/collibra/io/create/community": { + "post": { + "operationId": "collibraIoCreateCommunity", + "summary": "Create a Collibra community", + "responses": { + "200": { + "description": "Command result", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CommandResult" + } + } + } + } + }, + "description": "CLI example: `singine collibra io create community --name \"Data Governance\"`", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateCommunityRequest" + } + } + } + } + } + }, + "/api/collibra/io/create/template": { + "post": { + "operationId": "collibraIoCreateTemplate", + "summary": "Generate a CSV import template and import view specification from the metamodel and available ViewConfigs", + "responses": { + "200": { + "description": "Command result", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CommandResult" + } + } + } + } + }, + "description": "CLI example: `singine collibra io create template --name glossary-import --asset-type \"Business Term\" --scope-attribute \"domain=Finance\" --attribute \"Definition:definition\" --output /tmp/glossary-import.json`", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateTemplateRequest" + } + } + } + } + } + }, + "/api/collibra/io/metamodel/status": { + "get": { + "operationId": "collibraIoMetamodelStatus", + "summary": "Summarize the exported Collibra metamodel package on disk", + "responses": { + "200": { + "description": "Command result", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CommandResult" + } + } + } + } + }, + "description": "CLI example: `singine collibra io metamodel status`", + "parameters": [ + { + "name": "root", + "in": "query", + "required": false, + "schema": { + "type": "string", + "default": "~/ws/today/metamodel/reference/current/latest" + } + } + ] + } + }, + "/api/collibra/io/metamodel/visualize": { + "post": { + "operationId": "collibraIoMetamodelVisualize", + "summary": "Visualize one asset type and its assigned relations", + "responses": { + "200": { + "description": "Command result", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CommandResult" + } + } + } + } + }, + "description": "CLI example: `singine collibra io metamodel visualize --asset-type \"Data Notebook\" --format mermaid`", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MetamodelVisualizeRequest" + } + } + } + } + } + }, + "/api/collibra/io/metamodel/export": { + "post": { + "operationId": "collibraIoMetamodelExport", + "summary": "Export the metamodel as Singine opmodel JSON or as a CSV import template", + "responses": { + "200": { + "description": "Command result", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CommandResult" + } + } + } + } + }, + "description": "CLI example: `singine collibra io metamodel export --format opmodel --asset-type \"Business Term\" --output /tmp/business-term-opmodel.json`", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MetamodelExportRequest" + } + } + } + } + } + }, + "/api/collibra/io/edge/connection/probe-postgres": { + "post": { + "operationId": "collibraIoEdgeConnectionProbePostgres", + "summary": "Preflight a PostgreSQL-backed Edge connection from the workstation and the live Edge runtime", + "responses": { + "200": { + "description": "Command result", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CommandResult" + } + } + } + } + }, + "description": "CLI example: `singine collibra io edge connection probe-postgres --json`", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EdgeConnectionProbePostgresRequest" + } + } + } + } + } + }, + "/api/collibra/io/edge/datasource/diagnose": { + "post": { + "operationId": "collibraIoEdgeDatasourceDiagnose", + "summary": "Diagnose why a datasource is not resolving to a runnable Edge capability", + "responses": { + "200": { + "description": "Command result", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CommandResult" + } + } + } + } + }, + "description": "CLI example: `singine collibra io edge datasource diagnose --id DATASOURCE-UUID --json`", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EdgeDatasourceDiagnoseRequest" + } + } + } + } + } + } + }, + "components": { + "schemas": { + "CommandResult": { + "type": "object", + "additionalProperties": true, + "properties": { + "ok": { + "type": "boolean" + }, + "command": { + "type": "string" + }, + "summary": { + "type": "string" + }, + "data": { + "type": "object" + } + } + }, + "ChipConfigureRequest": { + "type": "object", + "properties": { + "client": { + "type": "string", + "enum": [ + "codex", + "claude", + "all" + ] + }, + "binary": { + "type": "string", + "default": "~/ws/github/collibra/chip/.build/chip" + }, + "json": { + "type": "boolean" + } + }, + "required": [ + "client" + ] + }, + "CreateCommunityRequest": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "topLevel": { + "type": "string" + }, + "description": { + "type": "string" + }, + "parentId": { + "type": "string" + }, + "json": { + "type": "boolean" + } + } + }, + "CreateTemplateRequest": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "assetType": { + "type": "string" + }, + "viewName": { + "type": "string" + }, + "domainId": { + "type": "string" + }, + "location": { + "type": "string", + "default": "catalog" + }, + "scopeAttribute": { + "type": "string" + }, + "attribute": { + "type": "array", + "items": { + "type": "string" + } + }, + "relation": { + "type": "array", + "items": { + "type": "string" + } + }, + "viewLimit": { + "type": "integer", + "default": 100 + }, + "delimiter": { + "type": "string", + "default": "," + }, + "output": { + "type": "string" + }, + "metamodelRoot": { + "type": "string", + "default": "~/ws/today/metamodel/reference/current/latest" + } + }, + "required": [ + "name", + "assetType" + ] + }, + "MetamodelVisualizeRequest": { + "type": "object", + "properties": { + "assetType": { + "type": "string" + }, + "root": { + "type": "string", + "default": "~/ws/today/metamodel/reference/current/latest" + }, + "format": { + "type": "string", + "default": "json" + }, + "output": { + "type": "string" + } + }, + "required": [ + "assetType" + ] + }, + "MetamodelExportRequest": { + "type": "object", + "properties": { + "root": { + "type": "string", + "default": "~/ws/today/metamodel/reference/current/latest" + }, + "format": { + "type": "string", + "default": "opmodel" + }, + "assetType": { + "type": "string" + }, + "name": { + "type": "string" + }, + "viewName": { + "type": "string" + }, + "domainId": { + "type": "string" + }, + "location": { + "type": "string", + "default": "catalog" + }, + "viewLimit": { + "type": "integer", + "default": 100 + }, + "delimiter": { + "type": "string", + "default": "," + }, + "output": { + "type": "string" + } + } + }, + "EdgeConnectionProbePostgresRequest": { + "type": "object", + "properties": { + "name": { + "type": "string", + "default": "sindoc-singine-pg-dev-101" + }, + "connectionId": { + "type": "string" + }, + "container": { + "type": "string", + "default": "singine-pg-dev-101" + }, + "edgeHost": { + "type": "string", + "default": "host.docker.internal" + }, + "localHost": { + "type": "string", + "default": "127.0.0.1" + }, + "port": { + "type": "integer", + "default": 5433 + }, + "database": { + "type": "string", + "default": "postgres" + }, + "user": { + "type": "string", + "default": "postgres" + }, + "password": { + "type": "string", + "default": "postgres" + }, + "driverVersion": { + "type": "string", + "default": "42.7.4" + }, + "namespace": { + "type": "string", + "default": "collibra-edge" + }, + "component": { + "type": "string", + "default": "edge-controller" + }, + "json": { + "type": "boolean" + } + } + }, + "EdgeDatasourceDiagnoseRequest": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "namespace": { + "type": "string", + "default": "collibra-edge" + }, + "component": { + "type": "string", + "default": "edge-controller" + }, + "tail": { + "type": "integer", + "default": 600 + }, + "json": { + "type": "boolean" + } + }, + "required": [ + "id" + ] + } + } + } +} diff --git a/scripts/generate_agent_docs.py b/scripts/generate_agent_docs.py new file mode 100644 index 0000000..3202119 --- /dev/null +++ b/scripts/generate_agent_docs.py @@ -0,0 +1,105 @@ +#!/usr/bin/env python3 +"""Generate agent markdown files from the shared Singine XML contract.""" + +from __future__ import annotations + +from pathlib import Path +from xml.etree import ElementTree as ET + + +REPO_ROOT = Path(__file__).resolve().parents[1] +INPUT_XML = REPO_ROOT / "docs" / "xml" / "singine-agent-contract.xml" + + +def bullets(parent, tag): + node = parent.find(tag) + if node is None: + return [] + return [child.text.strip() for child in node.findall("rule") if child.text and child.text.strip()] + + +def source_lines(parent): + node = parent.find("documentation-sources") + if node is None: + return [] + items = [] + for child in node.findall("source"): + path = child.get("path", "").strip() + label = (child.text or "").strip() + if path and label: + items.append(f"- `{path}`: {label}") + return items + + +def render_agent(common, agent): + title = agent.findtext("title", default="Agent Contract").strip() + intro = agent.findtext("intro", default="").strip() + shared_ratio = common.getroot().get("shared_ratio", "80") + specific_ratio = common.getroot().get("specific_ratio", "20") + + boundary = bullets(common.find("common"), "boundary") + change_policy = bullets(common.find("common"), "change-policy") + metamodel_policy = bullets(common.find("common"), "metamodel-policy") + verification = bullets(common.find("common"), "verification") + specific = [child.text.strip() for child in agent.find("specific").findall("rule") if child.text and child.text.strip()] + sources = source_lines(common.find("common")) + summary = common.find("common").findtext("summary", default="").strip() + + lines = [ + f"# {title}", + "", + "", + "", + summary, + "", + f"This file follows the shared-agent split of approximately {shared_ratio}% common policy and {specific_ratio}% agent-specific guidance.", + "", + ] + if intro: + lines.extend([intro, ""]) + + lines.extend(["## Repository Boundary", ""]) + lines.extend(f"- {item}" for item in boundary) + lines.append("") + + lines.extend(["## Change Policy", ""]) + lines.extend(f"- {item}" for item in change_policy) + lines.append("") + + lines.extend(["## Metamodel Alignment", ""]) + lines.extend(f"- {item}" for item in metamodel_policy) + lines.append("") + + lines.extend(["## Documentation Sources", ""]) + lines.extend(sources) + lines.append("") + + lines.extend(["## Verification", ""]) + lines.extend(f"- {item}" for item in verification) + lines.append("") + + lines.extend(["## Agent-Specific Additions", ""]) + lines.extend(f"- {item}" for item in specific) + lines.append("") + return "\n".join(lines) + + +def main() -> int: + tree = ET.parse(INPUT_XML) + root = tree.getroot() + agents = root.find("agents") + if agents is None: + raise SystemExit("No section found") + + for agent in agents.findall("agent"): + output = agent.get("output") + if not output: + continue + target = REPO_ROOT / output + target.write_text(render_agent(tree, agent), encoding="utf-8") + print(target) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/generate_collibra_io_openapi.py b/scripts/generate_collibra_io_openapi.py new file mode 100644 index 0000000..ce8d556 --- /dev/null +++ b/scripts/generate_collibra_io_openapi.py @@ -0,0 +1,249 @@ +#!/usr/bin/env python3 +from __future__ import annotations + +import argparse +import json +import re +import xml.etree.ElementTree as ET +from pathlib import Path + + +ROOT = Path(__file__).resolve().parents[1] +SOURCE_XML = ROOT / "docs" / "xml" / "singine-collibra-commands.xml" +OUTPUT_JSON = ROOT / "schema" / "singine-collibra-io-api.json" + + +def _segments_to_schema_name(segments: list[str]) -> str: + words: list[str] = [] + for segment in segments: + words.extend(part for part in re.split(r"[^A-Za-z0-9]+", segment) if part) + return "".join(word[:1].upper() + word[1:] for word in words) + "Request" + + +def _to_property_name(name: str) -> str: + raw = name.lstrip("-") + if raw.startswith("-"): + raw = raw.lstrip("-") + if not raw: + return "value" + if "-" not in raw and raw[:1].islower() and any(ch.isupper() for ch in raw[1:]): + return raw + parts = [part for part in re.split(r"[-_]", raw) if part] + if not parts: + return raw + head = parts[0] + tail = "".join(part[:1].upper() + part[1:] for part in parts[1:]) + return head + tail + + +def _normalize_option(option: ET.Element) -> dict: + prop = _to_property_name(option.get("name", "option")) + payload: dict = { + "name": prop, + "required": option.get("required") == "true", + "repeatable": option.get("repeatable") == "true", + "type": option.get("type", "string"), + "default": option.get("default"), + "choices": option.get("choices"), + "metavar": option.get("metavar"), + } + return payload + + +def _normalize_arg(arg: ET.Element) -> dict: + return { + "name": _to_property_name(arg.get("name", "arg")), + "required": arg.get("required") == "true", + "repeatable": False, + "type": "string", + "default": None, + "choices": arg.get("choices"), + "metavar": None, + } + + +def _merge_fields(fields: list[dict]) -> list[dict]: + merged: dict[str, dict] = {} + for field in fields: + existing = merged.get(field["name"]) + if existing is None: + merged[field["name"]] = dict(field) + continue + existing["required"] = existing["required"] or field["required"] + existing["repeatable"] = existing["repeatable"] or field["repeatable"] + existing["type"] = field["type"] if existing["type"] == "string" else existing["type"] + existing["default"] = existing["default"] if existing["default"] is not None else field["default"] + existing["choices"] = existing["choices"] if existing["choices"] else field["choices"] + return list(merged.values()) + + +def _field_schema(field: dict) -> dict: + if field["type"] == "flag": + schema: dict = {"type": "boolean"} + if field["default"] is not None: + schema["default"] = field["default"].lower() == "true" + elif field["type"] == "int": + schema = {"type": "integer"} + if field["default"] is not None: + schema["default"] = int(field["default"]) + else: + schema = {"type": "string"} + if field["default"] is not None: + schema["default"] = field["default"] + if field["choices"]: + schema["enum"] = [choice.strip() for choice in field["choices"].split(",") if choice.strip()] + if field["repeatable"]: + return {"type": "array", "items": schema} + return schema + + +def _http_method(segments: list[str]) -> str: + leaf = segments[-1] + if segments[0] == "create": + return "post" + if leaf in {"configure", "visualize", "export", "probe-postgres", "diagnose"}: + return "post" + return "get" + + +def _flatten_commands(node: ET.Element, prefix: list[str]) -> list[dict]: + commands: list[dict] = [] + if node.tag == "commands": + children = node.findall("./command") + else: + children = node.findall("./subcommands/command") + for child in children: + child_segments = prefix + [child.get("name", "command")] + grand_children = child.findall("./subcommands/command") + if grand_children: + commands.extend(_flatten_commands(child, child_segments)) + continue + commands.append({ + "segments": child_segments, + "help": child.get("help", ""), + "example": (child.findtext("example") or "").strip(), + "args": _merge_fields([_normalize_arg(arg) for arg in child.findall("./args/arg")]), + "options": _merge_fields([_normalize_option(opt) for opt in child.findall("./options/option")]), + }) + return commands + + +def _build_request_schema(command: dict) -> dict: + fields = _merge_fields(command["args"] + command["options"]) + properties = {field["name"]: _field_schema(field) for field in fields} + required = [field["name"] for field in fields if field["required"]] + schema: dict = { + "type": "object", + "properties": properties, + } + if required: + schema["required"] = required + return schema + + +def build_openapi() -> dict: + root = ET.parse(SOURCE_XML).getroot() + io_component = root.find("./component[@name='io']") + if io_component is None: + raise SystemExit(f"missing io component in {SOURCE_XML}") + + commands = _flatten_commands(io_component.find("./commands"), []) + paths: dict = {} + schemas: dict = { + "CommandResult": { + "type": "object", + "additionalProperties": True, + "properties": { + "ok": {"type": "boolean"}, + "command": {"type": "string"}, + "summary": {"type": "string"}, + "data": {"type": "object"}, + }, + } + } + + for command in commands: + segments = command["segments"] + path = "/api/collibra/io/" + "/".join(segments) + method = _http_method(segments) + operation_id = "collibraIo" + "".join(part[:1].upper() + part[1:] for part in _segments_to_schema_name(segments).removesuffix("Request").split()) + fields = _merge_fields(command["args"] + command["options"]) + operation: dict = { + "operationId": operation_id, + "summary": command["help"] or "Run Collibra IO workflow command", + "responses": { + "200": { + "description": "Command result", + "content": { + "application/json": { + "schema": {"$ref": "#/components/schemas/CommandResult"} + } + }, + } + }, + } + if command["example"]: + operation["description"] = f"CLI example: `{command['example']}`" + + if method == "get": + params = [] + for field in fields: + params.append({ + "name": field["name"], + "in": "query", + "required": field["required"], + "schema": _field_schema(field), + }) + if params: + operation["parameters"] = params + else: + schema_name = _segments_to_schema_name(segments) + schemas[schema_name] = _build_request_schema(command) + operation["requestBody"] = { + "required": True, + "content": { + "application/json": { + "schema": {"$ref": f"#/components/schemas/{schema_name}"} + } + }, + } + + paths[path] = {method: operation} + + return { + "openapi": "3.1.0", + "info": { + "title": "Singine Collibra IO API", + "version": "0.1.0", + "summary": "Generated HTTP interaction contract for the `singine collibra io` command family.", + "description": "Generated from docs/xml/singine-collibra-commands.xml so the CLI, XML publication, and OpenAPI surface stay aligned.", + }, + "servers": [ + { + "url": "http://127.0.0.1:9090", + "description": "Local Singine panel or adapter surface", + } + ], + "paths": paths, + "components": {"schemas": schemas}, + } + + +def main() -> int: + parser = argparse.ArgumentParser(description="Generate OpenAPI for singine collibra io from XML command docs") + parser.add_argument("--stdout", action="store_true", help="Write JSON to stdout instead of the schema file") + args = parser.parse_args() + + payload = build_openapi() + rendered = json.dumps(payload, indent=2) + "\n" + if args.stdout: + print(rendered, end="") + return 0 + OUTPUT_JSON.parent.mkdir(parents=True, exist_ok=True) + OUTPUT_JSON.write_text(rendered, encoding="utf-8") + print(f"wrote {OUTPUT_JSON}") + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/singine-collibra/python/singine_collibra/__init__.py b/singine-collibra/python/singine_collibra/__init__.py index ea08a7f..1c84ecf 100644 --- a/singine-collibra/python/singine_collibra/__init__.py +++ b/singine-collibra/python/singine_collibra/__init__.py @@ -2,7 +2,8 @@ This package lives under ``collibra/singine-collibra/python/`` and is dynamically imported by the singine CLI when ``singine collibra id``, -``singine collibra contract``, ``singine collibra pipeline``, or +``singine collibra contract``, ``singine collibra io``, +``singine collibra query``, ``singine collibra quantum``, or ``singine collibra server`` subcommands are invoked. The collibra repo is the system-of-record for Collibra-specific implementations. diff --git a/singine-collibra/python/singine_collibra/chip.py b/singine-collibra/python/singine_collibra/chip.py new file mode 100644 index 0000000..e8a7474 --- /dev/null +++ b/singine-collibra/python/singine_collibra/chip.py @@ -0,0 +1,456 @@ +"""Structured Collibra CHIP orchestration for ``singine collibra io``. + +This module wraps the Go-based Collibra MCP server (``chip``) using typed +request/response envelopes and an Activity-shaped execution report. The goal is +to keep Collibra-specific MCP logic in the Collibra repo while letting Singine +provide the CLI/runtime shell. +""" + +from __future__ import annotations + +import argparse +import json +import subprocess +import time +import uuid +from dataclasses import asdict, dataclass, field +from datetime import datetime, timezone +from pathlib import Path +from typing import Any, Dict, IO, List, Optional + +try: + from singine.lens.activity import Activity, ActivityType, Agent, AgentRole, AgentType +except Exception: # pragma: no cover - Singine is expected at runtime, but keep import soft. + Activity = None # type: ignore[assignment] + ActivityType = None # type: ignore[assignment] + Agent = None # type: ignore[assignment] + AgentRole = None # type: ignore[assignment] + AgentType = None # type: ignore[assignment] + + +_DEFAULT_CHIP_BINARY = Path("~/ws/github/collibra/chip/.build/chip").expanduser() +_DEFAULT_CHIP_CONFIG = Path("~/.config/collibra/mcp.yaml").expanduser() +_DEFAULT_CODEX_CONFIG = Path("~/.codex/config.toml").expanduser() +_DEFAULT_CLAUDE_CONFIG = Path("~/Library/Application Support/Claude/claude_desktop_config.json").expanduser() +_DEFAULT_PROTOCOL_VERSION = "2025-03-26" + + +@dataclass +class ChipPaths: + binary: Path = _DEFAULT_CHIP_BINARY + mcp_config: Path = _DEFAULT_CHIP_CONFIG + codex_config: Path = _DEFAULT_CODEX_CONFIG + claude_config: Path = _DEFAULT_CLAUDE_CONFIG + + def describe(self) -> Dict[str, Any]: + return { + "binary": {"path": str(self.binary), "exists": self.binary.exists(), "executable": self.binary.exists() and self.binary.stat().st_mode & 0o111 != 0}, + "mcp_config": {"path": str(self.mcp_config), "exists": self.mcp_config.exists()}, + "codex_config": {"path": str(self.codex_config), "exists": self.codex_config.exists()}, + "claude_config": {"path": str(self.claude_config), "exists": self.claude_config.exists()}, + } + + +@dataclass +class ChipRequest: + method: str + params: Dict[str, Any] = field(default_factory=dict) + request_id: Optional[str] = None + jsonrpc: str = "2.0" + + def payload(self) -> Dict[str, Any]: + body: Dict[str, Any] = { + "jsonrpc": self.jsonrpc, + "method": self.method, + } + if self.request_id is not None: + body["id"] = self.request_id + if self.params: + body["params"] = self.params + return body + + +@dataclass +class ChipResponse: + ok: bool + method: str + request_id: Optional[str] + result: Any = None + error: Optional[Dict[str, Any]] = None + raw: Dict[str, Any] = field(default_factory=dict) + + +@dataclass +class ChipActivityReport: + activity_id: str + status: str + description: str + tool_count: int + binary_path: str + metadata: Dict[str, Any] + + def as_activity(self) -> Dict[str, Any]: + if not all([Activity, ActivityType, Agent, AgentRole, AgentType]): + return { + "activity_id": self.activity_id, + "activity_type": "Task Execution", + "status": self.status, + "description": self.description, + "metadata": self.metadata, + } + agent = Agent( + agent_id="software:collibra:chip", + agent_type=AgentType.SOFTWARE_APPLICATION, + display_name="Collibra CHIP MCP Server", + roles=[AgentRole.DATA_PROCESSOR], + metadata={"binary_path": self.binary_path}, + ) + activity = Activity( + entity_id=self.activity_id, + activity_id=self.activity_id, + activity_type=ActivityType.TASK_EXECUTION, + entity_type="Activity", + display_name="Collibra CHIP MCP handshake", + source_type="collibra_chip", + source_id=self.binary_path, + metadata=self.metadata, + description=self.description, + status=self.status, + ) + activity.add_agent(agent) + return { + "entity_id": activity.entity_id, + "activity_id": activity.activity_id, + "activity_type": activity.activity_type.value, + "entity_type": activity.entity_type, + "display_name": activity.display_name, + "source_type": activity.source_type, + "source_id": activity.source_id, + "metadata": activity.metadata, + "description": activity.description, + "status": activity.status, + "agents": [ + { + "agent_id": entry.agent_id, + "agent_type": entry.agent_type.value, + "display_name": entry.display_name, + "roles": [role.value for role in entry.roles], + "metadata": entry.metadata, + } + for entry in activity.agents + ], + } + + +class ChipSession: + """Minimal MCP stdio client for a local ``chip`` process.""" + + def __init__(self, binary: Path) -> None: + self.binary = binary + self.proc: Optional[subprocess.Popen[bytes]] = None + + def __enter__(self) -> "ChipSession": + self.proc = subprocess.Popen( + [str(self.binary)], + stdin=subprocess.PIPE, + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, + ) + return self + + def __exit__(self, exc_type, exc, tb) -> None: # type: ignore[override] + if not self.proc: + return + if self.proc.poll() is None: + self.proc.terminate() + try: + self.proc.wait(timeout=3) + except subprocess.TimeoutExpired: + self.proc.kill() + self.proc.wait(timeout=3) + + def request(self, request: ChipRequest) -> ChipResponse: + if not self.proc or not self.proc.stdin or not self.proc.stdout: + raise RuntimeError("chip process is not running") + payload = request.payload() + encoded = json.dumps(payload, separators=(",", ":")).encode("utf-8") + self.proc.stdin.write(b"Content-Length: " + str(len(encoded)).encode("ascii") + b"\r\n\r\n" + encoded) + self.proc.stdin.flush() + raw = _read_message(self.proc.stdout) + if raw.get("id") != request.request_id: + raise RuntimeError(f"Unexpected MCP response id: expected {request.request_id}, got {raw.get('id')}") + return ChipResponse( + ok="error" not in raw, + method=request.method, + request_id=request.request_id, + result=raw.get("result"), + error=raw.get("error"), + raw=raw, + ) + + def notify(self, method: str, params: Optional[Dict[str, Any]] = None) -> None: + if not self.proc or not self.proc.stdin: + raise RuntimeError("chip process is not running") + request = ChipRequest(method=method, params=params or {}, request_id=None) + payload = request.payload() + encoded = json.dumps(payload, separators=(",", ":")).encode("utf-8") + self.proc.stdin.write(b"Content-Length: " + str(len(encoded)).encode("ascii") + b"\r\n\r\n" + encoded) + self.proc.stdin.flush() + + def stderr_text(self) -> str: + if not self.proc or not self.proc.stderr: + return "" + try: + return self.proc.stderr.read().decode("utf-8", errors="replace").strip() + except Exception: + return "" + + +def _read_message(stream: IO[bytes]) -> Dict[str, Any]: + headers: Dict[str, str] = {} + while True: + line = stream.readline() + if not line: + raise RuntimeError("chip closed stdout before returning an MCP response") + if line in (b"\r\n", b"\n"): + break + key, _, value = line.decode("utf-8", errors="replace").partition(":") + headers[key.strip().lower()] = value.strip() + content_length = int(headers.get("content-length", "0")) + if content_length <= 0: + raise RuntimeError(f"Invalid MCP content-length: {headers.get('content-length')!r}") + body = stream.read(content_length) + if len(body) != content_length: + raise RuntimeError("Incomplete MCP response body") + return json.loads(body.decode("utf-8")) + + +def _now_iso() -> str: + return datetime.now(timezone.utc).replace(microsecond=0).isoformat().replace("+00:00", "Z") + + +def _chip_server_reference(paths: ChipPaths) -> Dict[str, Any]: + return { + "command": str(paths.binary), + "type": "stdio", + } + + +def _codex_has_chip(paths: ChipPaths) -> bool: + if not paths.codex_config.exists(): + return False + text = paths.codex_config.read_text(encoding="utf-8") + return ( + "[mcp_servers.collibra]" in text + and f'command = "{paths.binary}"' in text + ) + + +def _claude_has_chip(paths: ChipPaths) -> bool: + if not paths.claude_config.exists(): + return False + try: + payload = json.loads(paths.claude_config.read_text(encoding="utf-8")) + except json.JSONDecodeError: + return False + return payload.get("mcpServers", {}).get("collibra", {}).get("command") == str(paths.binary) + + +def _startup_probe(paths: ChipPaths, *, wait_seconds: float = 1.0) -> Dict[str, Any]: + proc = subprocess.Popen( + [str(paths.binary)], + stdin=subprocess.PIPE, + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, + text=True, + ) + try: + time.sleep(wait_seconds) + running = proc.poll() is None + if running: + proc.terminate() + try: + proc.wait(timeout=3) + except subprocess.TimeoutExpired: + proc.kill() + proc.wait(timeout=3) + stdout = proc.stdout.read() if proc.stdout else "" + stderr = proc.stderr.read() if proc.stderr else "" + finally: + if proc.poll() is None: + proc.kill() + proc.wait(timeout=3) + tool_lines = [] + for line in stderr.splitlines(): + marker = "Registering tool: " + if marker in line: + tool_lines.append(line.split(marker, 1)[1].strip()) + return { + "ok": "Listening on stdio" in stderr and bool(tool_lines), + "listening_on_stdio": "Listening on stdio" in stderr, + "tool_names": tool_lines, + "stdout": stdout.strip(), + "stderr": stderr.strip(), + "exit_code": proc.returncode, + } + + +def configure_codex(paths: ChipPaths) -> Dict[str, Any]: + text = paths.codex_config.read_text(encoding="utf-8") if paths.codex_config.exists() else "" + section = f'\n[mcp_servers.collibra]\ncommand = "{paths.binary}"\n' + changed = False + if "[mcp_servers.collibra]" not in text: + if text and not text.endswith("\n"): + text += "\n" + text += section + paths.codex_config.parent.mkdir(parents=True, exist_ok=True) + paths.codex_config.write_text(text, encoding="utf-8") + changed = True + return { + "ok": True, + "client": "codex", + "changed": changed, + "path": str(paths.codex_config), + "configured": _codex_has_chip(paths), + } + + +def configure_claude(paths: ChipPaths) -> Dict[str, Any]: + payload: Dict[str, Any] = {} + if paths.claude_config.exists(): + payload = json.loads(paths.claude_config.read_text(encoding="utf-8")) + payload.setdefault("mcpServers", {})["collibra"] = _chip_server_reference(paths) + paths.claude_config.parent.mkdir(parents=True, exist_ok=True) + paths.claude_config.write_text(json.dumps(payload, indent=2) + "\n", encoding="utf-8") + return { + "ok": True, + "client": "claude", + "changed": True, + "path": str(paths.claude_config), + "configured": _claude_has_chip(paths), + } + + +def probe_chip(paths: ChipPaths) -> Dict[str, Any]: + errors: List[str] = [] + startup: Optional[Dict[str, Any]] = None + + if not paths.binary.exists(): + errors.append(f"chip binary not found at {paths.binary}") + elif not paths.mcp_config.exists(): + errors.append(f"chip config not found at {paths.mcp_config}") + else: + startup = _startup_probe(paths) + if not startup.get("ok"): + errors.append("chip did not reach a healthy stdio startup state") + + tools = [] + if startup: + tools = [{"name": item, "description": ""} for item in startup.get("tool_names", [])] + + metadata = { + "timestamp": _now_iso(), + "paths": paths.describe(), + "codex_configured": _codex_has_chip(paths), + "claude_configured": _claude_has_chip(paths), + "startup_ok": bool(startup and startup.get("ok")), + "listening_on_stdio": bool(startup and startup.get("listening_on_stdio")), + "transport_note": "chip stdio is client-owned; this probe validates startup and registered tools before Claude/Codex attach.", + "stderr": (startup or {}).get("stderr", ""), + } + activity = ChipActivityReport( + activity_id=f"activity:collibra:chip:{uuid.uuid4()}", + status="completed" if not errors and startup and startup.get("ok") else "failed", + description="Validate the Collibra CHIP MCP server and enumerate its tools.", + tool_count=len(tools), + binary_path=str(paths.binary), + metadata=metadata, + ) + return { + "ok": not errors and bool(startup and startup.get("ok")), + "command": "collibra io chip status", + "chip": { + "paths": paths.describe(), + "codex_configured": _codex_has_chip(paths), + "claude_configured": _claude_has_chip(paths), + "startup": startup, + "initialize": None, + "tools": tools, + "tool_count": len(tools), + "stderr": (startup or {}).get("stderr", ""), + }, + "activity": activity.as_activity(), + "errors": errors, + } + + +def _print_chip_payload(payload: Dict[str, Any], *, as_json: bool) -> int: + if as_json: + print(json.dumps(payload)) + return 0 if payload.get("ok") else 1 + + if payload.get("command") == "collibra io chip status": + chip = payload["chip"] + print("[collibra io chip status]") + print(f" Binary: {'ok' if chip['paths']['binary']['exists'] else 'missing'} {chip['paths']['binary']['path']}") + print(f" MCP config: {'ok' if chip['paths']['mcp_config']['exists'] else 'missing'} {chip['paths']['mcp_config']['path']}") + print(f" Codex configured: {'yes' if chip['codex_configured'] else 'no'}") + print(f" Claude configured: {'yes' if chip['claude_configured'] else 'no'}") + print(f" CHIP startup: {'ok' if chip['startup'] and chip['startup']['ok'] else 'fail'}") + print(f" MCP tools: {chip['tool_count']}") + for tool in chip["tools"][:10]: + print(f" - {tool['name']}") + if payload.get("errors"): + print(" Errors:") + for error in payload["errors"]: + print(f" - {error}") + elif payload.get("command") == "collibra io chip tools list": + print("[collibra io chip tools list]") + for tool in payload.get("tools", []): + if tool.get("description"): + print(f" {tool['name']}: {tool['description']}") + else: + print(f" {tool['name']}") + else: + print(json.dumps(payload, indent=2)) + return 0 if payload.get("ok") else 1 + + +def cmd_collibra_io_chip_status(args: argparse.Namespace) -> int: + paths = ChipPaths(binary=Path(args.binary).expanduser()) + return _print_chip_payload(probe_chip(paths), as_json=args.json) + + +def cmd_collibra_io_chip_tools_list(args: argparse.Namespace) -> int: + paths = ChipPaths(binary=Path(args.binary).expanduser()) + probe = probe_chip(paths) + payload = { + "ok": probe.get("ok", False), + "command": "collibra io chip tools list", + "tools": probe.get("chip", {}).get("tools", []), + "activity": probe.get("activity"), + "errors": probe.get("errors", []), + } + return _print_chip_payload(payload, as_json=args.json) + + +def cmd_collibra_io_chip_configure(args: argparse.Namespace) -> int: + paths = ChipPaths(binary=Path(args.binary).expanduser()) + results: List[Dict[str, Any]] = [] + if args.client in {"codex", "all"}: + results.append(configure_codex(paths)) + if args.client in {"claude", "all"}: + results.append(configure_claude(paths)) + payload = { + "ok": all(item.get("ok") for item in results), + "command": "collibra io chip configure", + "results": results, + "chip": _chip_server_reference(paths), + } + if args.json: + print(json.dumps(payload)) + return 0 if payload["ok"] else 1 + print(f"[collibra io chip configure] client={args.client}") + for item in results: + print(f" {item['client']}: {'configured' if item['configured'] else 'not-configured'} {item['path']}") + return 0 if payload["ok"] else 1 diff --git a/singine-collibra/python/singine_collibra/chip_queries.py b/singine-collibra/python/singine_collibra/chip_queries.py new file mode 100644 index 0000000..ed4820d --- /dev/null +++ b/singine-collibra/python/singine_collibra/chip_queries.py @@ -0,0 +1,362 @@ +"""MCP query DSL for the Collibra CHIP server. + +Implements the ``~ws(self, ...+ ++ +++ ++++ +++++)`` workspace traversal, +``codeLookup().lambda_().exec().try_catch_claude()`` fluent execution chain, +typed ``TypeRetrieval`` queries, and an HTTP-compatible gRPC bridge against +``singine.persistence.v1``. + +Entry-point grammar: ``docs/xml/chip-queries.xml`` (consumed by Go ``lang=XML.g()``). +JProfiler targets declared in grammar; attach via ``discover_jvm_targets()``. +""" + +from __future__ import annotations + +import enum +import json +import traceback +import uuid +from dataclasses import dataclass, field +from pathlib import Path +from typing import Any, Callable, Dict, List, Optional, Tuple, TypeVar + +from .chip import ( + ChipPaths, + ChipRequest, + ChipResponse, + ChipSession, +) + +T = TypeVar("T") + +_GRAMMAR_XML = Path(__file__).parent.parent.parent.parent / "docs" / "xml" / "chip-queries.xml" + + +# ── Workspace depth: ~ws(self, + ++ +++ ++++ +++++) ────────────────────────── + +class WorkspaceDepth(enum.IntEnum): + """Depth levels for ``~ws(self, ...)`` traversal. + + Symbol Level Meaning + ------ ----- ------- + self 0 Workspace root only (SELF) + + 1 Immediate children (SHALLOW) + ++ 2 Two levels deep (MEDIUM) + +++ 3 Three levels deep (DEEP) + ++++ 4 Four levels deep (DEEPER) + +++++ 5 Full recursive traversal (FULL) + """ + SELF = 0 + SHALLOW = 1 + MEDIUM = 2 + DEEP = 3 + DEEPER = 4 + FULL = 5 + + +@dataclass +class WorkspaceContext: + """Represents ``~ws(self, depth)`` — root of all chip MCP queries. + + Example:: + + ctx = WorkspaceContext(depth=WorkspaceDepth.FULL) + result = ctx.codeLookup("elia electricity domain").exec().try_catch_claude() + """ + root: Path = field(default_factory=lambda: Path("~/ws").expanduser()) + depth: WorkspaceDepth = WorkspaceDepth.SELF + paths: ChipPaths = field(default_factory=ChipPaths) + + def at(self, depth: WorkspaceDepth) -> "WorkspaceContext": + return WorkspaceContext(root=self.root, depth=depth, paths=self.paths) + + def codeLookup(self, term: str, *, scope: Optional[str] = None) -> "CodeLookupQuery": # noqa: N802 + return CodeLookupQuery(ctx=self, term=term, scope=scope) + + +# ── Type retrieval ───────────────────────────────────────────────────────────── + +@dataclass +class TypeRef: + """Collibra asset type reference from a chip code-lookup result.""" + iri: str + type_name: str + collibra_id: str + asset_type: str + fragments: List[str] = field(default_factory=list) + + +@dataclass +class TypeRetrieval: + """Full type definition returned by the ``collibra/type_retrieve`` tool.""" + type_ref: TypeRef + properties: Dict[str, Any] = field(default_factory=dict) + relations: List[Dict[str, Any]] = field(default_factory=list) + + @classmethod + def from_chip_result(cls, result: Any) -> "TypeRetrieval": + if not isinstance(result, dict): + result = {} + ref = TypeRef( + iri=result.get("type_iri", ""), + type_name=result.get("type_name", ""), + collibra_id=result.get("collibra_id", ""), + asset_type=result.get("asset_type", ""), + fragments=result.get("fragments", []), + ) + return cls( + type_ref=ref, + properties=result.get("properties", {}), + relations=result.get("relations", []), + ) + + +# ── Lambda/exec chain: .lambda_().exec().try_catch_claude() ────────────────── + +@dataclass +class LambdaExec: + """Wraps a chip MCP call in a deferred ``lambda_().exec()`` chain. + + Calling ``.try_catch_claude()`` returns the result on success or an + MCP-compatible error envelope that Claude can interpret and recover from. + """ + fn: Callable[[], Any] + _result: Optional[Any] = field(default=None, init=False, repr=False) + _error: Optional[Exception] = field(default=None, init=False, repr=False) + + def exec(self) -> "LambdaExec": # noqa: A003 + try: + self._result = self.fn() + except Exception as exc: # noqa: BLE001 + self._error = exc + return self + + def try_catch_claude(self, *, default: Any = None) -> Any: + """``tryCatchClaude`` — return result or an MCP-compatible error envelope.""" + if self._error is None: + return self._result + return { + "ok": False, + "error": str(self._error), + "traceback": traceback.format_exc(), + "mcp_error": { + "code": -32000, + "message": str(self._error), + "data": { + "source": "chip_queries.tryCatchClaude", + "type": type(self._error).__name__, + "recovery": "delegate to Claude MCP session for re-evaluation", + }, + }, + "default": default, + } + + +# ── CodeLookup query: codeLookup().lambda_().exec() ────────────────────────── + +@dataclass +class CodeLookupQuery: + """``codeLookup()`` — chip MCP tool call for Collibra type and code lookup. + + Grammar reference: ``chip-queries.xml`` query-type id="code-lookup". + """ + ctx: WorkspaceContext + term: str + scope: Optional[str] = None + + def _build_request(self) -> ChipRequest: + params: Dict[str, Any] = { + "term": self.term, + "depth": int(self.ctx.depth), + } + if self.scope: + params["scope"] = self.scope + return ChipRequest( + method="tools/call", + params={"name": "collibra/code_lookup", "arguments": params}, + request_id=str(uuid.uuid4()), + ) + + def lambda_( # noqa: N802 + self, + transform: Optional[Callable[[ChipResponse], T]] = None, + ) -> LambdaExec: + """Return a ``LambdaExec`` wrapping the chip call + optional transform.""" + request = self._build_request() + paths = self.ctx.paths + + def _fn() -> Any: + with ChipSession(paths.binary) as session: + resp = session.request(request) + if transform is not None: + return transform(resp) + return resp + + return LambdaExec(fn=_fn) + + def exec(self) -> LambdaExec: + """Shorthand: ``lambda_().exec()``.""" + return self.lambda_().exec() + + def type_retrieval(self) -> LambdaExec: + """Execute and map result to a typed ``TypeRetrieval`` object.""" + def _transform(resp: ChipResponse) -> TypeRetrieval: + raw = resp.result or {} + content = raw.get("content", [{}]) + try: + data = json.loads(content[0].get("text", "{}")) if content else {} + except (json.JSONDecodeError, IndexError, TypeError): + data = {} + return TypeRetrieval.from_chip_result(data) + + return self.lambda_(_transform).exec() + + +# ── HTTP-compatible gRPC bridge ─────────────────────────────────────────────── + +@dataclass +class GrpcHttpRequest: + """An HTTP-transcoded gRPC request (grpc-gateway style). + + Compatible with both native gRPC/HTTP2 and plain HTTP/1.1 JSON. + Service: ``singine.persistence.v1`` — see persistence.proto. + HTTP bindings: ``chip-queries.xml`` grpc-http-bindings section. + """ + rpc: str + body: Dict[str, Any] + base_url: str = "http://127.0.0.1:9090" + grpc_port: int = 50051 + use_http: bool = True + + +_RPC_HTTP_MAP: Dict[str, Tuple[str, str]] = { + "GenId": ("POST", "/v1/id/gen"), + "QueryLineage": ("GET", "/v1/lineage"), + "ShortestPath": ("POST", "/v1/path"), + "Categorise": ("POST", "/v1/category"), + "Similarity": ("POST", "/v1/similarity"), + "Migrate": ("POST", "/v1/migrate"), +} + + +def grpc_http_call(req: GrpcHttpRequest) -> Dict[str, Any]: + """Execute a gRPC call via HTTP/JSON transcoding (grpc-gateway pattern). + + ``use_http=True`` — plain HTTP/1.1 POST/GET with JSON body. + ``use_http=False`` — returns a stub signalling native gRPC is needed. + """ + import urllib.error + import urllib.request + + if req.rpc not in _RPC_HTTP_MAP: + return {"ok": False, "error": f"Unknown RPC: {req.rpc}. Known: {sorted(_RPC_HTTP_MAP)}"} + + method, path = _RPC_HTTP_MAP[req.rpc] + url = req.base_url.rstrip("/") + path + + if not req.use_http: + host = req.base_url.split("//")[-1].split(":")[0] + return { + "ok": False, + "mode": "grpc-native", + "note": "Set use_http=True for HTTP/JSON transcoding, or use a grpc channel directly.", + "endpoint": f"{host}:{req.grpc_port}", + "rpc": req.rpc, + } + + encoded = json.dumps(req.body).encode("utf-8") + http_req = urllib.request.Request( + url, + data=encoded if method == "POST" else None, + headers={ + "Content-Type": "application/json", + "Accept": "application/json", + "X-Singine-Rpc": req.rpc, + "X-Singine-Version": "persistence/v1", + }, + method=method, + ) + try: + with urllib.request.urlopen(http_req, timeout=10) as response: + return {"ok": True, "status": response.status, "body": json.loads(response.read())} + except urllib.error.HTTPError as exc: + return {"ok": False, "status": exc.code, "error": exc.reason} + except Exception as exc: # noqa: BLE001 + return {"ok": False, "error": str(exc)} + + +# ── JProfiler attachment descriptors ───────────────────────────────────────── + +@dataclass +class JProfilerTarget: + """Descriptor for a JVM process (Groovy or Clojure) to attach JProfiler to. + + Grammar reference: ``chip-queries.xml`` jprofiler-targets section. + """ + process_id: str + runtime: str # "groovy" | "clojure" + pid: Optional[int] + agent_path: Path + config_id: str + nowait: bool = True + + def attach_args(self) -> str: + """Produce the JVM ``-agentpath:`` argument string.""" + return ( + f"-agentpath:{self.agent_path}" + f"=port=8849" + f",nowait={'y' if self.nowait else 'n'}" + f",id={self.config_id}" + ) + + def as_dict(self) -> Dict[str, Any]: + return { + "process_id": self.process_id, + "runtime": self.runtime, + "pid": self.pid, + "agent_path": str(self.agent_path), + "config_id": self.config_id, + "attach_args": self.attach_args(), + } + + +_GROOVY_PATTERNS = {"groovy.ui.GroovyMain", "org.codehaus.groovy", "groovy"} +_CLOJURE_PATTERNS = {"clojure.main", "singine.persistence.core"} + + +def discover_jvm_targets( + *, + agent_path: Path = Path("/opt/jprofiler/bin/linux-x64/libjprofilerti.so"), +) -> List[JProfilerTarget]: + """Discover running Groovy and Clojure JVM processes via ``jps -l``. + + Returns a ``JProfilerTarget`` for each matched process. + Grammar reference: ``chip-queries.xml`` jprofiler-targets section. + """ + import subprocess + + targets: List[JProfilerTarget] = [] + try: + result = subprocess.run(["jps", "-l"], capture_output=True, text=True, timeout=10) + except (FileNotFoundError, subprocess.TimeoutExpired): + return targets + + for line in result.stdout.splitlines(): + parts = line.split(None, 1) + if len(parts) < 2: + continue + pid_str, main_class = parts + runtime: Optional[str] = None + config_id: Optional[str] = None + if any(p in main_class for p in _GROOVY_PATTERNS): + runtime, config_id = "groovy", "chip.profiler.groovy" + elif any(p in main_class for p in _CLOJURE_PATTERNS): + runtime, config_id = "clojure", "chip.profiler.clojure" + if runtime and config_id: + targets.append(JProfilerTarget( + process_id=main_class, + runtime=runtime, + pid=int(pid_str), + agent_path=agent_path, + config_id=config_id, + )) + return targets diff --git a/singine-collibra/python/singine_collibra/command.py b/singine-collibra/python/singine_collibra/command.py index 0a32da7..cd4d24d 100644 --- a/singine-collibra/python/singine_collibra/command.py +++ b/singine-collibra/python/singine_collibra/command.py @@ -1,4 +1,4 @@ -"""argparse registration for singine collibra id/contract/pipeline/server subcommands. +"""argparse registration for singine collibra id/contract/io/pipeline/server subcommands. Called from singine's build_parser() via dynamic import. @@ -9,6 +9,9 @@ from __future__ import annotations import argparse +import json + +from .io import add_collibra_io_parser # ── Command handlers ────────────────────────────────────────────────────────── @@ -107,10 +110,197 @@ def _cmd_server_dmz(args: argparse.Namespace) -> int: return dmz(port=args.port) +def _workspace_depth(value: str) -> int: + mapping = { + "self": 0, + "+": 1, + "++": 2, + "+++": 3, + "++++": 4, + "+++++": 5, + } + if value not in mapping: + raise argparse.ArgumentTypeError(f"invalid workspace depth: {value}") + return mapping[value] + + +def _print_payload(payload: object, *, as_json: bool) -> int: + if as_json: + print(json.dumps(payload, indent=2, default=str)) + return 0 + if isinstance(payload, dict): + print(json.dumps(payload, indent=2, default=str)) + else: + print(payload) + return 0 + + +def _cmd_query_status(args: argparse.Namespace) -> int: + from .chip_queries import _GRAMMAR_XML, _RPC_HTTP_MAP + + payload = { + "ok": True, + "grammar_xml": { + "path": str(_GRAMMAR_XML), + "exists": _GRAMMAR_XML.exists(), + }, + "rpc_bindings": sorted(_RPC_HTTP_MAP), + } + return _print_payload(payload, as_json=args.json) + + +def _cmd_query_jprofiler_targets(args: argparse.Namespace) -> int: + from pathlib import Path + + from .chip_queries import discover_jvm_targets + + payload = { + "ok": True, + "targets": [ + target.as_dict() + for target in discover_jvm_targets(agent_path=Path(args.agent_path).expanduser()) + ], + } + return _print_payload(payload, as_json=args.json) + + +def _cmd_query_grpc_bindings(args: argparse.Namespace) -> int: + from .chip_queries import _RPC_HTTP_MAP + + payload = { + "ok": True, + "bindings": [ + {"rpc": rpc, "method": method, "path": path} + for rpc, (method, path) in sorted(_RPC_HTTP_MAP.items()) + ], + } + return _print_payload(payload, as_json=args.json) + + +def _query_context(args: argparse.Namespace): + from .chip_queries import WorkspaceContext, WorkspaceDepth + + return WorkspaceContext(depth=WorkspaceDepth(args.depth)) + + +def _cmd_query_code_lookup(args: argparse.Namespace) -> int: + ctx = _query_context(args) + result = ctx.codeLookup(args.term, scope=args.scope).exec().try_catch_claude() + return _print_payload(result, as_json=args.json) + + +def _cmd_query_type_retrieval(args: argparse.Namespace) -> int: + ctx = _query_context(args) + result = ctx.codeLookup(args.term, scope=args.scope).type_retrieval().try_catch_claude() + return _print_payload(result, as_json=args.json) + + +def _cmd_query_grpc_http_call(args: argparse.Namespace) -> int: + from .chip_queries import GrpcHttpRequest, grpc_http_call + + body = json.loads(args.body) + payload = grpc_http_call( + GrpcHttpRequest( + rpc=args.rpc, + body=body, + base_url=args.base_url, + grpc_port=args.grpc_port, + use_http=not args.native_grpc, + ) + ) + return _print_payload(payload, as_json=args.json) + + +def _cmd_quantum_status(args: argparse.Namespace) -> int: + from pathlib import Path + + from .quantum_catalog import loadCodeTableFromBaseFromShiva + + docs_root = Path(__file__).parent.parent.parent.parent / "docs" / "quantum" + payload = { + "ok": True, + "code_table_size": len(loadCodeTableFromBaseFromShiva()), + "artifacts": { + "tex": str(docs_root / "chip-quantum-catalog.tex"), + "svg": str(docs_root / "complex-plane.svg"), + "xml": str(docs_root / "quantum-catalog.xml"), + }, + } + return _print_payload(payload, as_json=args.json) + + +def _cmd_quantum_load_shiva(args: argparse.Namespace) -> int: + from pathlib import Path + + from .quantum_catalog import loadCodeTableFromBaseFromShiva + + payload = { + "ok": True, + "db": str(Path(args.db).expanduser()), + "entries": { + code: entry.__dict__ + for code, entry in loadCodeTableFromBaseFromShiva(db=Path(args.db).expanduser()).items() + }, + } + return _print_payload(payload, as_json=args.json) + + +def _cmd_quantum_refdata(args: argparse.Namespace) -> int: + from .quantum_catalog import refData + + entry = refData(args.code) + payload = {"ok": entry is not None, "entry": entry.__dict__ if entry else None} + return _print_payload(payload, as_json=args.json) + + +def _parse_complex_csv(value: str) -> list[complex]: + try: + return [complex(part.strip()) for part in value.split(",") if part.strip()] + except ValueError as exc: + raise argparse.ArgumentTypeError(str(exc)) from exc + + +def _cmd_quantum_cosine(args: argparse.Namespace) -> int: + from .quantum_catalog import cosine + + payload = ( + cosine()(args.u, args.v) + .similarity() + .complex() + .resolve() + .xml() + .catalog() + .collibra() + ) + return _print_payload(payload, as_json=args.json) + + +def _cmd_quantum_bubble_leader(args: argparse.Namespace) -> int: + from .quantum_catalog import bubbleLeader + + payload = ( + bubbleLeader(args.items) + .builder() + .piotr() + .groovy() + .clojure() + .c() + .f() + .math() + .godel() + .escher() + .pg() + .pg() + .paulGraham() + .build() + ) + return _print_payload(payload, as_json=args.json) + + # ── Parser registration ─────────────────────────────────────────────────────── def add_collibra_subcommands(collibra_sub: argparse._SubParsersAction) -> None: - """Register id, contract, pipeline, server subcommands under ``singine collibra``.""" + """Register id, contract, io, query, quantum, and server subcommands under ``singine collibra``.""" # ── id ──────────────────────────────────────────────────────────────────── id_parser = collibra_sub.add_parser( @@ -203,6 +393,102 @@ def add_collibra_subcommands(collibra_sub: argparse._SubParsersAction) -> None: p.add_argument("--json", action="store_true", help="Emit JSON") p.set_defaults(func=_cmd_contract_progress) + # ── io ──────────────────────────────────────────────────────────────────── + add_collibra_io_parser(collibra_sub) + + # ── query ───────────────────────────────────────────────────────────────── + query_parser = collibra_sub.add_parser( + "query", + help="CHIP MCP query DSL helpers and persistence bridge probes", + ) + query_parser.set_defaults(func=lambda a: (query_parser.print_help(), 1)[1]) + query_sub = query_parser.add_subparsers(dest="collibra_query_action") + + p = query_sub.add_parser("status", help="Show chip query grammar and RPC binding status") + p.add_argument("--json", action="store_true", help="Emit JSON") + p.set_defaults(func=_cmd_query_status) + + p = query_sub.add_parser("jprofiler-targets", help="Discover Groovy and Clojure JVM attach targets") + p.add_argument( + "--agent-path", + default="/opt/jprofiler/bin/linux-x64/libjprofilerti.so", + help="JProfiler agent shared library path", + ) + p.add_argument("--json", action="store_true", help="Emit JSON") + p.set_defaults(func=_cmd_query_jprofiler_targets) + + p = query_sub.add_parser("grpc-bindings", help="List HTTP-transcoded persistence RPC bindings") + p.add_argument("--json", action="store_true", help="Emit JSON") + p.set_defaults(func=_cmd_query_grpc_bindings) + + p = query_sub.add_parser("code-lookup", help="Run a CHIP code lookup against the configured workspace") + p.add_argument("term", help="Search term") + p.add_argument("--scope", default=None, help="Optional lookup scope") + p.add_argument( + "--depth", + type=_workspace_depth, + default=0, + metavar="{self,+,++,+++,++++,+++++}", + help="Workspace traversal depth (default: self)", + ) + p.add_argument("--json", action="store_true", help="Emit JSON") + p.set_defaults(func=_cmd_query_code_lookup) + + p = query_sub.add_parser("type-retrieval", help="Run a typed CHIP code lookup projection") + p.add_argument("term", help="Search term") + p.add_argument("--scope", default=None, help="Optional lookup scope") + p.add_argument( + "--depth", + type=_workspace_depth, + default=0, + metavar="{self,+,++,+++,++++,+++++}", + help="Workspace traversal depth (default: self)", + ) + p.add_argument("--json", action="store_true", help="Emit JSON") + p.set_defaults(func=_cmd_query_type_retrieval) + + p = query_sub.add_parser("grpc-http-call", help="Invoke a persistence RPC via the HTTP bridge") + p.add_argument("rpc", choices=["GenId", "QueryLineage", "ShortestPath", "Categorise", "Similarity", "Migrate"]) + p.add_argument("--body", default="{}", help="JSON request body") + p.add_argument("--base-url", default="http://127.0.0.1:9090", help="Bridge base URL") + p.add_argument("--grpc-port", type=int, default=50051, help="Native gRPC port (for metadata only)") + p.add_argument("--native-grpc", action="store_true", help="Return native gRPC endpoint metadata instead of using HTTP") + p.add_argument("--json", action="store_true", help="Emit JSON") + p.set_defaults(func=_cmd_query_grpc_http_call) + + # ── quantum ─────────────────────────────────────────────────────────────── + quantum_parser = collibra_sub.add_parser( + "quantum", + help="Quantum catalog, code-table, cosine, and BubbleLeader helpers", + ) + quantum_parser.set_defaults(func=lambda a: (quantum_parser.print_help(), 1)[1]) + quantum_sub = quantum_parser.add_subparsers(dest="collibra_quantum_action") + + p = quantum_sub.add_parser("status", help="Show quantum catalog artifact and code-table status") + p.add_argument("--json", action="store_true", help="Emit JSON") + p.set_defaults(func=_cmd_quantum_status) + + p = quantum_sub.add_parser("load-shiva", help="Load the in-memory Shiva base-layer code table") + p.add_argument("--db", default="/tmp/humble-idp.db", help="Reference database path") + p.add_argument("--json", action="store_true", help="Emit JSON") + p.set_defaults(func=_cmd_quantum_load_shiva) + + p = quantum_sub.add_parser("refdata", help="Look up a single Shiva code-table entry") + p.add_argument("code", help="Code table key such as AAAA or FFFFF") + p.add_argument("--json", action="store_true", help="Emit JSON") + p.set_defaults(func=_cmd_quantum_refdata) + + p = quantum_sub.add_parser("cosine", help="Run the complex cosine -> catalog -> Collibra chain") + p.add_argument("--u", required=True, type=_parse_complex_csv, help="Comma-separated complex vector, e.g. 1+0j,0+1j") + p.add_argument("--v", required=True, type=_parse_complex_csv, help="Comma-separated complex vector, e.g. 0.5+0j,0+0.5j") + p.add_argument("--json", action="store_true", help="Emit JSON") + p.set_defaults(func=_cmd_quantum_cosine) + + p = quantum_sub.add_parser("bubble-leader", help="Run the full BubbleLeader symbolic chain") + p.add_argument("items", nargs="*", help="Items to bubble-sort before building the chain") + p.add_argument("--json", action="store_true", help="Emit JSON") + p.set_defaults(func=_cmd_quantum_bubble_leader) + # ── server ──────────────────────────────────────────────────────────────── server_parser = collibra_sub.add_parser( "server", diff --git a/singine-collibra/python/singine_collibra/io.py b/singine-collibra/python/singine_collibra/io.py index a615846..cf27c36 100644 --- a/singine-collibra/python/singine_collibra/io.py +++ b/singine-collibra/python/singine_collibra/io.py @@ -8,13 +8,23 @@ from __future__ import annotations import argparse +import ast import json import re import socket import subprocess +from datetime import datetime, timezone from pathlib import Path +from xml.etree import ElementTree as ET from typing import Any, Dict, List, Optional, Sequence, Tuple +from .chip import ( + cmd_collibra_io_chip_configure, + cmd_collibra_io_chip_status, + cmd_collibra_io_chip_tools_list, +) +from .metamodel import DEFAULT_METAMODEL_ROOT, MetamodelSnapshot, load_snapshot + _DEFAULT_EDGE_NAMESPACE = "collibra-edge" _DEFAULT_EDGE_COMPONENT = "edge-controller" @@ -26,6 +36,9 @@ _DEFAULT_PG_USER = "singine" _DEFAULT_PG_PASSWORD = "singine" _DEFAULT_DRIVER_VERSION = "42.7.10" +_REPO_ROOT = Path(__file__).resolve().parents[3] +_METAMODEL_SCRIPT = _REPO_ROOT / "id-gen" / "collibra" / "metamodel_7step.sh" +_MODEL_XML = _REPO_ROOT / "docs" / "xml" / "singine-collibra-model.xml" def _run(cmd: Sequence[str], *, capture: bool = True, text: bool = True) -> subprocess.CompletedProcess: @@ -130,6 +143,306 @@ def _collibra_ok(result: Dict[str, Any], args: argparse.Namespace) -> int: return 0 if result.get("ok") else 1 +def _slug(value: str) -> str: + return re.sub(r"[^a-z0-9]+", "_", value.lower()).strip("_") + + +def _normalize_label(value: str) -> str: + return re.sub(r"[^a-z0-9]+", "", value.lower()) + + +def _extract_python_literal(text: str, marker: str) -> Any: + start = text.find(marker) + if start < 0: + return None + eq = text.find("=", start) + if eq < 0: + return None + i = eq + 1 + while i < len(text) and text[i].isspace(): + i += 1 + if i >= len(text) or text[i] not in "[{": + return None + opening = text[i] + closing = "}" if opening == "{" else "]" + depth = 0 + in_string = False + string_delim = "" + escape = False + for j in range(i, len(text)): + ch = text[j] + if in_string: + if escape: + escape = False + elif ch == "\\": + escape = True + elif ch == string_delim: + in_string = False + continue + if ch in ("'", '"'): + in_string = True + string_delim = ch + continue + if ch == opening: + depth += 1 + elif ch == closing: + depth -= 1 + if depth == 0: + return ast.literal_eval(text[i : j + 1]) + return None + + +def _extract_fallback_asset_types(text: str) -> List[Dict[str, Any]]: + match = re.search(r"""echo\s+'(\{"results":\[.*?\]\})'""", text, re.DOTALL) + if not match: + return [] + try: + payload = json.loads(match.group(1)) + except json.JSONDecodeError: + return [] + return payload.get("results", []) + + +def _load_metamodel_extracts() -> Dict[str, Any]: + script_text = _METAMODEL_SCRIPT.read_text(encoding="utf-8") + asset_types = _extract_fallback_asset_types(script_text) + classifications = _extract_python_literal(script_text, "classifications") + orm_facts = _extract_python_literal(script_text, "orm_facts") + + xml_asset_types: List[str] = [] + if _MODEL_XML.exists(): + root = ET.parse(_MODEL_XML).getroot() + xml_asset_types.extend( + elem.get("assetType", "").strip() + for elem in root.findall(".//collibra-ref") + if elem.get("assetType") + ) + xml_asset_types.extend( + elem.get("assetType", "").strip() + for elem in root.findall(".//collibra-catalog/asset") + if elem.get("assetType") + ) + xml_asset_types.extend( + elem.get("name", "").strip() + for elem in root.findall(".//mock-data/assets/asset-types/type") + if elem.get("name") + ) + + merged_asset_types: Dict[str, Dict[str, Any]] = {} + for item in asset_types: + name = item.get("name") + if name: + merged_asset_types[_normalize_label(name)] = item + for name in xml_asset_types: + key = _normalize_label(name) + merged_asset_types.setdefault(key, {"name": name}) + + return { + "asset_types": sorted(merged_asset_types.values(), key=lambda item: item.get("name", "")), + "classifications": classifications or {}, + "orm_facts": orm_facts or [], + "sources": { + "script": str(_METAMODEL_SCRIPT), + "model_xml": str(_MODEL_XML), + }, + } + + +def _parse_scope_assignment(value: str) -> Dict[str, str]: + if "=" not in value: + raise argparse.ArgumentTypeError("scope assignment must use NAME=VALUE") + name, assigned = value.split("=", 1) + name = name.strip() + assigned = assigned.strip() + if not name or not assigned: + raise argparse.ArgumentTypeError("scope assignment must use NAME=VALUE") + return {"name": name, "value": assigned} + + +def _parse_attribute_binding(value: str) -> Dict[str, str]: + parts = [part.strip() for part in value.split(":", 1)] + name = parts[0] + if not name: + raise argparse.ArgumentTypeError("attribute binding requires ATTRIBUTE[:CSV_HEADER]") + return {"name": name, "csv_header": parts[1] if len(parts) > 1 and parts[1] else _slug(name)} + + +def _parse_relation_binding(value: str) -> Dict[str, str]: + parts = [part.strip() for part in value.split(":")] + if len(parts) not in {3, 4} or not all(parts[:3]): + raise argparse.ArgumentTypeError( + "relation binding requires SUBJECT:VERB:OBJECT[:CSV_HEADER]" + ) + subject, verb, obj = parts[:3] + csv_header = parts[3] if len(parts) == 4 and parts[3] else _slug(f"{verb}_{obj}") + return {"subject": subject, "verb": verb, "object": obj, "csv_header": csv_header} + + +def _discover_view_configs( + *, + domain_id: Optional[str], + location: Optional[str], + limit: int, +) -> Dict[str, Any]: + from .rest import check_env, fetch_views + + env = check_env() + if not env.get("ok"): + return { + "available": False, + "reason": "; ".join(env.get("issues", [])), + "domain": [], + "global": [], + } + + try: + response = fetch_views(location=location, limit=limit) + except Exception as exc: + return { + "available": False, + "reason": str(exc), + "domain": [], + "global": [], + } + + def matches_domain(view: Dict[str, Any]) -> bool: + if not domain_id: + return False + tokens = { + str(view.get("domainId", "")), + str(view.get("resourceId", "")), + str((view.get("scope") or {}).get("domainId", "")), + } + return domain_id in tokens + + def is_global(view: Dict[str, Any]) -> bool: + return not any( + [ + view.get("domainId"), + view.get("resourceId"), + (view.get("scope") or {}).get("domainId"), + ] + ) + + raw_views = response.get("data", []) + domain_views = [view for view in raw_views if matches_domain(view)] + global_views = [view for view in raw_views if is_global(view)] + return { + "available": True, + "reason": "", + "domain": domain_views, + "global": global_views, + } + + +def _view_summary(view: Dict[str, Any]) -> Dict[str, Any]: + name = view.get("name") or view.get("displayName") or view.get("resourceName") or "unnamed-view" + return { + "id": view.get("id"), + "name": name, + "type": view.get("type") or view.get("resourceType") or "view", + "domain_id": view.get("domainId") or (view.get("scope") or {}).get("domainId"), + } + + +def _infer_driver_columns(views: Sequence[Dict[str, Any]]) -> List[str]: + columns: List[str] = [] + seen: set[str] = set() + for view in views: + for key in ("columns", "columnConfigs", "displayedColumns", "fields"): + raw = view.get(key) + if not isinstance(raw, list): + continue + for item in raw: + label = "" + if isinstance(item, str): + label = item + elif isinstance(item, dict): + label = ( + item.get("name") + or item.get("header") + or item.get("label") + or item.get("field") + or item.get("id") + or "" + ) + if label and label not in seen: + columns.append(label) + seen.add(label) + return columns + + +def _find_asset_type(asset_types: Sequence[Dict[str, Any]], asset_type_name: str) -> Optional[Dict[str, Any]]: + target = _normalize_label(asset_type_name) + for item in asset_types: + if _normalize_label(str(item.get("name", ""))) == target: + return item + return None + + +def _infer_relations_for_asset_type( + orm_facts: Sequence[Dict[str, Any]], + asset_type_name: str, +) -> List[Dict[str, str]]: + target = _normalize_label(asset_type_name) + inferred: List[Dict[str, str]] = [] + for fact in orm_facts: + subject = str(fact.get("subject", "")) + obj = str(fact.get("object", "")) + if _normalize_label(subject) != target: + continue + verb = str(fact.get("verb", "relatedTo")) + header_seed = obj + inferred.append( + { + "subject": subject, + "verb": verb, + "object": obj, + "csv_header": _slug(header_seed), + } + ) + return inferred + + +def _dedupe_column_headers(columns: Sequence[Dict[str, Any]]) -> List[Dict[str, Any]]: + counters: Dict[str, int] = {} + deduped: List[Dict[str, Any]] = [] + for column in columns: + updated = dict(column) + base = str(updated.get("csv_header") or "column") + count = counters.get(base, 0) + updated["csv_header"] = base if count == 0 else f"{base}_{count + 1}" + counters[base] = count + 1 + deduped.append(updated) + return deduped + + +def _render_csv_headers(columns: Sequence[Dict[str, Any]]) -> List[str]: + return [str(column.get("csv_header")) for column in columns] + + +def _render_sample_row(columns: Sequence[Dict[str, Any]], scope: Optional[Dict[str, str]]) -> Dict[str, str]: + row: Dict[str, str] = {} + for column in columns: + binding = column.get("binding", {}) + csv_header = str(column.get("csv_header")) + if binding.get("type") == "system" and binding.get("name") == "name": + row[csv_header] = "Example Asset" + elif binding.get("type") == "system" and binding.get("name") == "description": + row[csv_header] = "Imported from CSV" + elif binding.get("type") == "attribute": + row[csv_header] = f"example_{_slug(str(binding.get('name', 'value')))}" + elif binding.get("type") == "relation": + row[csv_header] = f"lookup:{binding.get('object')}" + elif binding.get("type") == "scope" and scope: + row[csv_header] = scope.get("value", "") + return row + + +def _snapshot_or_error(path: Optional[str]) -> MetamodelSnapshot: + return load_snapshot(path) + + def _edge_tcp_probe(namespace: str, component: str, host: str, port: int) -> Dict[str, Any]: snippet = ( "if command -v nc >/dev/null 2>&1; then " @@ -272,6 +585,305 @@ def cmd_collibra_io_create_community(args: argparse.Namespace) -> int: return 1 +def cmd_collibra_io_create_template(args: argparse.Namespace) -> int: + snapshot: Optional[MetamodelSnapshot] = None + asset_type_name = args.asset_type + snapshot_error = "" + try: + snapshot = _snapshot_or_error(getattr(args, "metamodel_root", None)) + asset_type_model = snapshot.asset_type(args.asset_type) + if asset_type_model is not None: + asset_type_name = asset_type_model.name + except Exception as exc: + snapshot_error = str(exc) + + extracts = _load_metamodel_extracts() + asset_type = _find_asset_type(extracts["asset_types"], asset_type_name) + if asset_type is None and snapshot is None: + payload = { + "ok": False, + "error": f"Unknown asset type: {args.asset_type}", + "known_asset_types": [item.get("name") for item in extracts["asset_types"]], + "metamodel_error": snapshot_error, + } + print(json.dumps(payload, indent=2)) + return 1 + if asset_type is None: + asset_type = {"id": getattr(asset_type_model, "id", ""), "name": asset_type_name} + + scope_assignment = args.scope_attribute + view_configs = _discover_view_configs( + domain_id=args.domain_id, + location=args.location, + limit=args.view_limit, + ) + disk_views: List[Dict[str, Any]] = [] + if snapshot is not None: + disk_views = [ + { + "id": view.id, + "name": view.name, + "location": view.location, + "type": view.view_type, + "columns": view.driver_columns(), + } + for view in snapshot.view_candidates(asset_type["name"]) + ] + driver_views = disk_views + view_configs["domain"] + view_configs["global"] + driver_columns = _infer_driver_columns(driver_views) + + if args.relation: + relations = args.relation + elif snapshot is not None and snapshot.asset_type(asset_type["name"]) and snapshot.asset_type(asset_type["name"]).assignment: + relations = [ + { + "subject": asset_type["name"], + "verb": relation.public_id or relation.name, + "object": relation.peer_asset_type(asset_type["name"]) or relation.name, + "csv_header": _slug(relation.peer_asset_type(asset_type["name"]) or relation.public_id or relation.name), + } + for relation in snapshot.asset_type(asset_type["name"]).assignment.relation_characteristics() + ] + else: + relations = _infer_relations_for_asset_type(extracts["orm_facts"], asset_type["name"]) + + if args.attribute: + attributes = args.attribute + elif snapshot is not None and snapshot.asset_type(asset_type["name"]) and snapshot.asset_type(asset_type["name"]).assignment: + attributes = [ + { + "name": attribute.public_id or attribute.name, + "csv_header": _slug(attribute.public_id or attribute.name), + } + for attribute in snapshot.asset_type(asset_type["name"]).assignment.attribute_characteristics() + if (attribute.public_id or attribute.name).lower() not in {"description"} + ] + else: + attributes = [] + + columns: List[Dict[str, Any]] = [ + { + "csv_header": "name", + "binding": {"type": "system", "name": "name"}, + "required": True, + }, + { + "csv_header": "description", + "binding": {"type": "system", "name": "description"}, + "required": False, + }, + ] + if scope_assignment: + columns.append( + { + "csv_header": _slug(scope_assignment["name"]), + "binding": { + "type": "scope", + "name": scope_assignment["name"], + "value": scope_assignment["value"], + }, + "required": True, + } + ) + for attribute in attributes: + columns.append( + { + "csv_header": attribute["csv_header"], + "binding": {"type": "attribute", "name": attribute["name"]}, + "required": False, + } + ) + for relation in relations: + columns.append( + { + "csv_header": relation["csv_header"], + "binding": { + "type": "relation", + "subject": relation["subject"], + "verb": relation["verb"], + "object": relation["object"], + }, + "required": False, + } + ) + columns = _dedupe_column_headers(columns) + + payload = { + "ok": True, + "command": "collibra io create template", + "template_kind": "collibra-csv-import", + "generated_at": datetime.now(timezone.utc).isoformat(), + "template": { + "name": args.name, + "asset_type": asset_type["name"], + "domain_id": args.domain_id, + "view": { + "name": args.view_name or f"{args.name} Import View", + "location": args.location, + "driver_column_order": driver_columns, + "scope": { + "attribute_assignment": scope_assignment, + "relation_assignments": relations, + }, + "columns": columns, + }, + "csv": { + "delimiter": args.delimiter, + "headers": _render_csv_headers(columns), + "sample_row": _render_sample_row(columns, scope_assignment), + }, + "import": { + "mode": "upsert-by-name-with-scoped-assignments", + "driver_view_precedence": ["domain", "global"], + "metamodel_sources": extracts["sources"], + "metamodel_export_root": str(snapshot.root) if snapshot is not None else None, + }, + }, + "driver": { + "view_configs": { + "available": view_configs["available"], + "reason": view_configs["reason"], + "disk": [_view_summary(view) for view in disk_views], + "domain": [_view_summary(view) for view in view_configs["domain"]], + "global": [_view_summary(view) for view in view_configs["global"]], + }, + "metamodel": { + "asset_type": asset_type, + "classification": extracts["classifications"].get(asset_type["name"]), + "inferred_relations": _infer_relations_for_asset_type( + extracts["orm_facts"], + asset_type["name"], + ), + "snapshot_loaded": snapshot is not None, + "snapshot_error": snapshot_error, + }, + }, + } + + output_path = Path(args.output).expanduser() if args.output else None + if output_path: + output_path.parent.mkdir(parents=True, exist_ok=True) + output_path.write_text(json.dumps(payload, indent=2), encoding="utf-8") + print(json.dumps({"ok": True, "output": str(output_path), "template": payload["template"]["name"]})) + return 0 + + print(json.dumps(payload, indent=2)) + return 0 + + +def cmd_collibra_io_metamodel_status(args: argparse.Namespace) -> int: + try: + snapshot = _snapshot_or_error(args.root) + except Exception as exc: + print(json.dumps({"ok": False, "error": str(exc)}, indent=2)) + return 1 + payload = { + "ok": True, + "command": "collibra io metamodel status", + "root": str(snapshot.root), + "version": snapshot.version, + "stats": snapshot.stats, + "asset_type_examples": sorted(item.name for item in list(snapshot.asset_types.values())[:10]), + } + print(json.dumps(payload, indent=2)) + return 0 + + +def cmd_collibra_io_metamodel_visualize(args: argparse.Namespace) -> int: + try: + snapshot = _snapshot_or_error(args.root) + if args.format == "mermaid": + payload = snapshot.to_mermaid(asset_type_name=args.asset_type) if args.asset_type else snapshot.to_mermaid_landscape() + else: + if args.asset_type: + asset_type = snapshot.asset_type(args.asset_type) + if asset_type is None: + raise KeyError(args.asset_type) + payload = { + "ok": True, + "command": "collibra io metamodel visualize", + "root": str(snapshot.root), + "asset_type": asset_type.as_opmodel(), + "views": [ + { + "id": view.id, + "name": view.name, + "location": view.location, + "type": view.view_type, + "assignment_asset_types": view.assignment_asset_types, + } + for view in snapshot.view_candidates(asset_type.name) + ], + } + else: + payload = { + "ok": True, + "command": "collibra io metamodel visualize", + "root": str(snapshot.root), + "version": snapshot.version, + "stats": snapshot.stats, + "asset_types": [item.as_opmodel() for item in sorted(snapshot.asset_types.values(), key=lambda x: x.name)], + "views": [ + { + "id": view.id, + "name": view.name, + "location": view.location, + "type": view.view_type, + "assignment_asset_types": view.assignment_asset_types, + } + for view in sorted(snapshot.views.values(), key=lambda x: x.name) + ], + } + if args.output: + out = Path(args.output).expanduser() + out.parent.mkdir(parents=True, exist_ok=True) + out.write_text(payload if isinstance(payload, str) else json.dumps(payload, indent=2), encoding="utf-8") + print(json.dumps({"ok": True, "output": str(out)}, indent=2)) + return 0 + print(payload if isinstance(payload, str) else json.dumps(payload, indent=2)) + return 0 + except Exception as exc: + print(json.dumps({"ok": False, "error": str(exc)}, indent=2)) + return 1 + + +def cmd_collibra_io_metamodel_export(args: argparse.Namespace) -> int: + try: + snapshot = _snapshot_or_error(args.root) + if args.format == "opmodel": + payload = snapshot.to_opmodel(asset_type_name=args.asset_type) + else: + asset_type = snapshot.asset_type(args.asset_type) if args.asset_type else None + if args.format == "template": + ns = argparse.Namespace( + name=args.name or f"{(asset_type.name if asset_type else 'collibra')}-import", + asset_type=asset_type.name if asset_type else args.asset_type, + view_name=args.view_name, + domain_id=args.domain_id, + location=args.location, + scope_attribute=None, + attribute=None, + relation=None, + view_limit=args.view_limit, + delimiter=args.delimiter, + output=args.output, + metamodel_root=args.root, + ) + return cmd_collibra_io_create_template(ns) + raise ValueError(f"Unsupported export format: {args.format}") + if args.output: + out = Path(args.output).expanduser() + out.parent.mkdir(parents=True, exist_ok=True) + out.write_text(json.dumps(payload, indent=2), encoding="utf-8") + print(json.dumps({"ok": True, "output": str(out)}, indent=2)) + return 0 + print(json.dumps(payload, indent=2)) + return 0 + except Exception as exc: + print(json.dumps({"ok": False, "error": str(exc)}, indent=2)) + return 1 + + def cmd_collibra_io_edge_datasource_diagnose(args: argparse.Namespace) -> int: secrets = _kubectl_get_secrets(args.namespace) jobs = _kubectl_get_jobs(args.namespace) @@ -406,6 +1018,115 @@ def add_collibra_io_parser(collibra_sub: argparse._SubParsersAction) -> None: community_parser.add_argument("--json", action="store_true", default=True) community_parser.set_defaults(func=cmd_collibra_io_create_community) + template_parser = create_sub.add_parser( + "template", + help="Generate a CSV import template and view specification from the Collibra metamodel and available ViewConfigs", + ) + template_parser.add_argument("--name", required=True, help="Logical template name") + template_parser.add_argument("--asset-type", required=True, help="Collibra asset type to import, e.g. 'Business Term'") + template_parser.add_argument("--view-name", help="Explicit ViewConfig name to emit in the template") + template_parser.add_argument("--domain-id", help="Domain UUID whose ViewConfigs should override global ones") + template_parser.add_argument("--location", default="catalog", help="View location filter for Collibra /views lookup (default: catalog)") + template_parser.add_argument("--scope-attribute", type=_parse_scope_assignment, help="Scoped assignment applied to each imported row, in NAME=VALUE form") + template_parser.add_argument("--attribute", action="append", type=_parse_attribute_binding, help="Attribute binding in ATTRIBUTE[:CSV_HEADER] form; repeatable") + template_parser.add_argument("--relation", action="append", type=_parse_relation_binding, help="Relation binding in SUBJECT:VERB:OBJECT[:CSV_HEADER] form; repeatable") + template_parser.add_argument("--view-limit", type=int, default=100, help="Maximum number of ViewConfigs to inspect when Collibra access is configured") + template_parser.add_argument("--delimiter", default=",", help="CSV delimiter to encode in the template (default: ,)") + template_parser.add_argument("--output", help="Write the generated template JSON to this path") + template_parser.add_argument("--metamodel-root", default=str(DEFAULT_METAMODEL_ROOT), help="Path to the exported Collibra metamodel package root") + template_parser.set_defaults(func=cmd_collibra_io_create_template) + + metamodel_parser = io_sub.add_parser( + "metamodel", + help="Load, visualize, and export the Collibra metamodel in a Singine-friendly form", + ) + metamodel_parser.set_defaults(func=lambda a: (metamodel_parser.print_help(), 1)[1]) + metamodel_sub = metamodel_parser.add_subparsers(dest="collibra_io_metamodel_action") + + metamodel_status_parser = metamodel_sub.add_parser( + "status", + help="Summarize the exported Collibra metamodel package on disk", + ) + metamodel_status_parser.add_argument("--root", default=str(DEFAULT_METAMODEL_ROOT), help="Path to the metamodel export root") + metamodel_status_parser.set_defaults(func=cmd_collibra_io_metamodel_status) + + metamodel_visualize_parser = metamodel_sub.add_parser( + "visualize", + help="Visualize one asset type and its assigned relations", + ) + metamodel_visualize_parser.add_argument("--asset-type", help="Asset type name or publicId; omit for the full metamodel landscape") + metamodel_visualize_parser.add_argument("--root", default=str(DEFAULT_METAMODEL_ROOT), help="Path to the metamodel export root") + metamodel_visualize_parser.add_argument("--format", default="json", choices=["json", "mermaid"], help="Visualization output format") + metamodel_visualize_parser.add_argument("--output", help="Write the visualization output to this path") + metamodel_visualize_parser.set_defaults(func=cmd_collibra_io_metamodel_visualize) + + metamodel_export_parser = metamodel_sub.add_parser( + "export", + help="Export the metamodel as Singine opmodel JSON or as a CSV import template", + ) + metamodel_export_parser.add_argument("--root", default=str(DEFAULT_METAMODEL_ROOT), help="Path to the metamodel export root") + metamodel_export_parser.add_argument("--format", default="opmodel", choices=["opmodel", "template"], help="Export format") + metamodel_export_parser.add_argument("--asset-type", help="Restrict the export to one asset type") + metamodel_export_parser.add_argument("--name", help="Template name when --format template is used") + metamodel_export_parser.add_argument("--view-name", help="Explicit view name when --format template is used") + metamodel_export_parser.add_argument("--domain-id", help="Domain UUID for live ViewConfig discovery") + metamodel_export_parser.add_argument("--location", default="catalog", help="View location for live ViewConfig discovery") + metamodel_export_parser.add_argument("--view-limit", type=int, default=100, help="Maximum number of live ViewConfigs to inspect") + metamodel_export_parser.add_argument("--delimiter", default=",", help="CSV delimiter when --format template is used") + metamodel_export_parser.add_argument("--output", help="Write the export to this path") + metamodel_export_parser.set_defaults(func=cmd_collibra_io_metamodel_export) + + chip_parser = io_sub.add_parser( + "chip", + help="Use the Collibra CHIP MCP server as the default governed Collibra I/O backend", + ) + chip_parser.set_defaults(func=lambda a: (chip_parser.print_help(), 1)[1]) + chip_sub = chip_parser.add_subparsers(dest="collibra_io_chip_subject") + + status_parser = chip_sub.add_parser( + "status", + help="Validate the local CHIP binary, client wiring, and stdio startup probe", + ) + status_parser.add_argument( + "--binary", + default="~/ws/github/collibra/chip/.build/chip", + help="Path to the source-built chip binary", + ) + status_parser.add_argument("--json", action="store_true") + status_parser.set_defaults(func=cmd_collibra_io_chip_status) + + configure_parser = chip_sub.add_parser( + "configure", + help="Wire Codex and/or Claude to the source-built CHIP binary", + ) + configure_parser.add_argument("client", choices=["codex", "claude", "all"], help="Client to configure") + configure_parser.add_argument( + "--binary", + default="~/ws/github/collibra/chip/.build/chip", + help="Path to the source-built chip binary", + ) + configure_parser.add_argument("--json", action="store_true") + configure_parser.set_defaults(func=cmd_collibra_io_chip_configure) + + tools_parser = chip_sub.add_parser( + "tools", + help="Inspect tool metadata exposed by CHIP", + ) + tools_parser.set_defaults(func=lambda a: (tools_parser.print_help(), 1)[1]) + tools_sub = tools_parser.add_subparsers(dest="collibra_io_chip_tools_action") + + tools_list_parser = tools_sub.add_parser( + "list", + help="Start CHIP briefly and list the tools it registers", + ) + tools_list_parser.add_argument( + "--binary", + default="~/ws/github/collibra/chip/.build/chip", + help="Path to the source-built chip binary", + ) + tools_list_parser.add_argument("--json", action="store_true") + tools_list_parser.set_defaults(func=cmd_collibra_io_chip_tools_list) + edge_parser = io_sub.add_parser( "edge", help="Collibra Edge I/O workflows", diff --git a/singine-collibra/python/singine_collibra/metamodel.py b/singine-collibra/python/singine_collibra/metamodel.py new file mode 100644 index 0000000..5d7f6ac --- /dev/null +++ b/singine-collibra/python/singine_collibra/metamodel.py @@ -0,0 +1,380 @@ +"""Singine-friendly Collibra metamodel abstractions. + +This module loads Collibra operating-model exports from disk and projects them +into a stable in-memory representation that can also be aligned with Singine's +opmodel vocabulary. +""" + +from __future__ import annotations + +import json +from dataclasses import dataclass, field +from pathlib import Path +from typing import Any, Dict, Iterable, List, Optional + + +DEFAULT_METAMODEL_ROOT = Path("/Users/skh/ws/today/metamodel/reference/current/latest") + + +def _resource_name(payload: Dict[str, Any], *keys: str) -> str: + for key in keys: + value = payload.get(key) + if isinstance(value, dict): + nested = value.get("name") + if nested: + return str(nested) + elif value: + return str(value) + return "" + + +def _json_files(path: Path) -> Iterable[Path]: + if not path.exists(): + return [] + return sorted(file for file in path.glob("*.json") if file.is_file()) + + +@dataclass +class Characteristic: + id: str + kind: str + name: str + public_id: str + minimum_occurrences: int + maximum_occurrences: Optional[int] + direction: Optional[str] = None + source_asset_type: Optional[str] = None + target_asset_type: Optional[str] = None + raw: Dict[str, Any] = field(default_factory=dict) + + def peer_asset_type(self, asset_type_name: str) -> Optional[str]: + target = asset_type_name.lower() + if (self.source_asset_type or "").lower() == target: + return self.target_asset_type + if (self.target_asset_type or "").lower() == target: + return self.source_asset_type + return self.target_asset_type or self.source_asset_type + + def as_opmodel(self) -> Dict[str, Any]: + payload = { + "id": self.id, + "kind": self.kind, + "name": self.name, + "public_id": self.public_id, + "cardinality": { + "min": self.minimum_occurrences, + "max": self.maximum_occurrences, + }, + } + if self.kind == "relation": + payload["edge"] = { + "direction": self.direction, + "source_asset_type": self.source_asset_type, + "target_asset_type": self.target_asset_type, + } + return payload + + +@dataclass +class Assignment: + id: str + asset_type_id: str + asset_type_name: str + domain_types: List[str] + characteristics: List[Characteristic] + raw: Dict[str, Any] = field(default_factory=dict) + + def relation_characteristics(self) -> List[Characteristic]: + return [item for item in self.characteristics if item.kind == "relation"] + + def attribute_characteristics(self) -> List[Characteristic]: + return [item for item in self.characteristics if item.kind == "attribute"] + + +@dataclass +class AssetType: + id: str + name: str + public_id: str + parent_name: str + assignment: Optional[Assignment] = None + raw: Dict[str, Any] = field(default_factory=dict) + + def as_opmodel(self) -> Dict[str, Any]: + return { + "id": self.id, + "kind": "asset_type", + "name": self.name, + "public_id": self.public_id, + "parent_name": self.parent_name, + "attributes": [ + item.as_opmodel() + for item in (self.assignment.attribute_characteristics() if self.assignment else []) + ], + "relations": [ + item.as_opmodel() + for item in (self.assignment.relation_characteristics() if self.assignment else []) + ], + } + + +@dataclass +class ViewDefinition: + id: str + name: str + location: str + view_type: str + assignment_asset_types: List[str] + config: Dict[str, Any] + raw: Dict[str, Any] = field(default_factory=dict) + + def driver_columns(self) -> List[str]: + columns: List[str] = [] + template = self.config.get("template", {}) + for item in template.get("nodes", []): + label = item.get("label") or item.get("id") + if label: + columns.append(str(label)) + return columns + + +@dataclass +class MetamodelSnapshot: + root: Path + version: str + asset_types: Dict[str, AssetType] + assignments: Dict[str, Assignment] + views: Dict[str, ViewDefinition] + stats: Dict[str, int] + + def asset_type(self, value: str) -> Optional[AssetType]: + normalized = value.lower() + for asset_type in self.asset_types.values(): + if asset_type.name.lower() == normalized: + return asset_type + if asset_type.public_id.lower() == normalized.replace(" ", ""): + return asset_type + return self.asset_types.get(value) + + def view_candidates(self, asset_type_name: str) -> List[ViewDefinition]: + target = asset_type_name.lower() + matches: List[ViewDefinition] = [] + for view in self.views.values(): + if any(name.lower() == target for name in view.assignment_asset_types): + matches.append(view) + return matches + + def to_opmodel(self, *, asset_type_name: Optional[str] = None) -> Dict[str, Any]: + selected = ( + [self.asset_type(asset_type_name)] if asset_type_name else list(self.asset_types.values()) + ) + assets = [item.as_opmodel() for item in selected if item is not None] + return { + "kind": "singine.collibra.opmodel", + "version": self.version, + "source_root": str(self.root), + "asset_types": assets, + } + + def to_mermaid(self, *, asset_type_name: str) -> str: + asset_type = self.asset_type(asset_type_name) + if asset_type is None: + raise KeyError(asset_type_name) + lines = ["graph TD"] + lines.append(f' A["{asset_type.name}"]') + if asset_type.assignment: + for relation in asset_type.assignment.relation_characteristics(): + target = relation.peer_asset_type(asset_type.name) or relation.name + node_id = f"N{relation.id.replace('-', '')}" + lines.append(f' {node_id}["{target}"]') + edge_label = relation.public_id or relation.name + lines.append(f' A -->|{edge_label}| {node_id}') + return "\n".join(lines) + + def to_mermaid_landscape(self) -> str: + lines = ["graph TD"] + emitted_nodes: set[str] = set() + emitted_edges: set[str] = set() + + def node_id(value: str) -> str: + return "N" + "".join(ch for ch in value if ch.isalnum()) + + for asset_type in sorted(self.asset_types.values(), key=lambda item: item.name): + aid = node_id(asset_type.id or asset_type.name) + if aid not in emitted_nodes: + lines.append(f' {aid}["{asset_type.name}"]') + emitted_nodes.add(aid) + if asset_type.parent_name: + parent = next( + (item for item in self.asset_types.values() if item.name == asset_type.parent_name), + None, + ) + if parent is not None: + pid = node_id(parent.id or parent.name) + if pid not in emitted_nodes: + lines.append(f' {pid}["{parent.name}"]') + emitted_nodes.add(pid) + edge_key = f"{pid}>{aid}>inherits" + if edge_key not in emitted_edges: + lines.append(f" {pid} -->|inherits| {aid}") + emitted_edges.add(edge_key) + if asset_type.assignment: + for relation in asset_type.assignment.relation_characteristics(): + peer = relation.peer_asset_type(asset_type.name) + if not peer: + continue + peer_type = next((item for item in self.asset_types.values() if item.name == peer), None) + if peer_type is None: + continue + tid = node_id(peer_type.id or peer_type.name) + if tid not in emitted_nodes: + lines.append(f' {tid}["{peer_type.name}"]') + emitted_nodes.add(tid) + edge_label = relation.public_id or relation.name + edge_key = f"{aid}>{tid}>{edge_label}" + if edge_key not in emitted_edges: + lines.append(f" {aid} -->|{edge_label}| {tid}") + emitted_edges.add(edge_key) + return "\n".join(lines) + + +def _load_characteristics(assignment_payload: Dict[str, Any]) -> List[Characteristic]: + items: List[Characteristic] = [] + for entry in assignment_payload.get("characteristicTypes", []): + discr = entry.get("assignedCharacteristicTypeDiscriminator") + if discr == "AttributeType": + attribute = entry.get("attributeType", {}) + items.append( + Characteristic( + id=str(entry.get("id", "")), + kind="attribute", + name=str(attribute.get("name", "")), + public_id=str(attribute.get("publicId", "")), + minimum_occurrences=int(entry.get("minimumOccurrences") or 0), + maximum_occurrences=entry.get("maximumOccurrences"), + raw=entry, + ) + ) + elif discr == "RelationType": + relation = entry.get("relationType", {}) + items.append( + Characteristic( + id=str(entry.get("id", "")), + kind="relation", + name=str(relation.get("role", "")), + public_id=str(relation.get("publicId", "")), + minimum_occurrences=int(entry.get("minimumOccurrences") or 0), + maximum_occurrences=entry.get("maximumOccurrences"), + direction=entry.get("relationTypeDirection"), + source_asset_type=_resource_name(relation, "sourceType"), + target_asset_type=_resource_name(relation, "targetType"), + raw=entry, + ) + ) + return items + + +def _load_json(path: Path) -> Dict[str, Any]: + return json.loads(path.read_text(encoding="utf-8")) + + +def detect_export_root(path: Optional[str] = None) -> Path: + if path: + candidate = Path(path).expanduser() + else: + candidate = DEFAULT_METAMODEL_ROOT + if candidate.is_dir() and (candidate / "1.1.27").exists(): + return candidate / "1.1.27" + if candidate.is_dir() and any((candidate / child).is_dir() for child in ("AssetType", "Assignment", "View")): + return candidate + nested = sorted(p for p in candidate.glob("*") if p.is_dir() and any((p / child).is_dir() for child in ("AssetType", "Assignment", "View"))) + if nested: + direct_version = sorted( + child for child in nested[0].glob("*") + if child.is_dir() and any((child / name).is_dir() for name in ("AssetType", "Assignment", "View")) + ) + if direct_version: + return direct_version[0] + return nested[0] + raise FileNotFoundError(f"No Collibra metamodel export found under {candidate}") + + +def load_snapshot(path: Optional[str] = None) -> MetamodelSnapshot: + root = detect_export_root(path) + + assignments_by_asset_type_id: Dict[str, Assignment] = {} + assignments: Dict[str, Assignment] = {} + for file in _json_files(root / "Assignment"): + payload = _load_json(file) + asset_type = payload.get("assetType", {}) + assignment = Assignment( + id=str(payload.get("id", "")), + asset_type_id=str(asset_type.get("id", "")), + asset_type_name=str(asset_type.get("name", "")), + domain_types=[item.get("name", "") for item in payload.get("domainTypes", []) if item.get("name")], + characteristics=_load_characteristics(payload), + raw=payload, + ) + assignments[assignment.id] = assignment + assignments_by_asset_type_id[assignment.asset_type_id] = assignment + + asset_types: Dict[str, AssetType] = {} + for file in _json_files(root / "AssetType"): + payload = _load_json(file) + item = AssetType( + id=str(payload.get("id", "")), + name=str(payload.get("name", "")), + public_id=str(payload.get("publicId", "")), + parent_name=_resource_name(payload, "parent"), + assignment=assignments_by_asset_type_id.get(str(payload.get("id", ""))), + raw=payload, + ) + asset_types[item.id] = item + + views: Dict[str, ViewDefinition] = {} + for file in _json_files(root / "View"): + payload = _load_json(file) + config_payload = payload.get("config") or "{}" + if isinstance(config_payload, str): + try: + config = json.loads(config_payload) + except json.JSONDecodeError: + config = {} + else: + config = config_payload + item = ViewDefinition( + id=str(payload.get("id", "")), + name=str(payload.get("name", "")), + location=str(payload.get("location", "")), + view_type=str(payload.get("type", "")), + assignment_asset_types=[ + _resource_name(rule, "assetType") + for rule in payload.get("assignmentRules", []) + if _resource_name(rule, "assetType") + ], + config=config, + raw=payload, + ) + views[item.id] = item + + stats = {} + for name in ( + "AssetType", + "Assignment", + "AttributeType", + "RelationType", + "View", + "Domain", + "Community", + "Workflow", + ): + stats[name] = len(list(_json_files(root / name))) + + return MetamodelSnapshot( + root=root, + version=root.name, + asset_types=asset_types, + assignments=assignments, + views=views, + stats=stats, + ) diff --git a/singine-collibra/python/singine_collibra/quantum_catalog.py b/singine-collibra/python/singine_collibra/quantum_catalog.py new file mode 100644 index 0000000..435bf72 --- /dev/null +++ b/singine-collibra/python/singine_collibra/quantum_catalog.py @@ -0,0 +1,453 @@ +"""Quantum catalog — symbolic function chain for the Collibra chip MCP surface. + +Implements the full symbolic chain: + + dirac() · einstein() · knuth() · tex() · latex() · jd() · refData() + collibra().init() · loadCodeTableFromBaseFromShiva() + bubbleLeader().builder().piotr().groovy().clojure().c().f() + .math().godel().escher().pg().pg().paulGraham() + cosine().similarity().complex().resolve().xml().catalog().collibra() + +Quantum redefinition of stack and queue on the complex Cartesian plane. +LaTeX source: docs/quantum/chip-quantum-catalog.tex +SVG diagram: docs/quantum/complex-plane.svg +""" + +from __future__ import annotations + +import cmath +import json +import math +import operator +from dataclasses import dataclass, field +from datetime import datetime, timezone +from functools import reduce +from pathlib import Path +from typing import Any, Callable, Dict, Generator, Generic, List, Optional, TypeVar + +T = TypeVar("T") +S = TypeVar("S") + +# ── Primitive symbols ───────────────────────────────────────────────────────── + + +def dirac(x: float, x0: float = 0.0, eps: float = 1e-6) -> float: + """Dirac delta approximation: δ(x − x₀) via Gaussian kernel.""" + return math.exp(-((x - x0) ** 2) / eps**2) / (eps * math.sqrt(math.pi)) + + +def einstein() -> Dict[str, str]: + """Einstein field equation and mass-energy equivalence in symbolic form.""" + return { + "field_equation": "G_μν + Λ g_μν = (8πG/c⁴) T_μν", + "mass_energy": "E = mc²", + "data_gravity": "G_μν^info = (8π G_info / c_latency⁴) T_μν^usage", + "ultimate_metric": "𝒰 = α·U_usage + β·V_business − γ·C_platform", + "latex": r"G_{\mu\nu} + \Lambda g_{\mu\nu} = \frac{8\pi G}{c^4} T_{\mu\nu}", + } + + +def knuth() -> Dict[str, str]: + """Knuth asymptotic notation and up-arrow tower.""" + return { + "big_O": "f(n) = O(g(n)) ⟺ ∃c>0,n₀: |f(n)| ≤ c|g(n)| ∀n≥n₀", + "big_Omega": "f(n) = Ω(g(n)) ⟺ g(n) = O(f(n))", + "big_Theta": "f(n) = Θ(g(n)) ⟺ f=O(g) ∧ g=O(f)", + "up_arrow": "a↑b = aᵇ | a↑↑b = aᵃ·ᵇ (tower) | a↑↑↑b = ...", + "taocp": "The Art of Computer Programming, Vol. 1–4A", + } + + +def tex() -> str: + """TeX typesetting badness formula.""" + return r"b_i = \left(\frac{l_i - L}{L}\right)^3 \cdot 10{,}000" + + +def latex(expr: Any) -> str: + """Generate a LaTeX string from any symbolic expression.""" + if isinstance(expr, complex): + return rf"{expr.real:.4g} + {expr.imag:.4g}i" + if isinstance(expr, float): + return rf"{expr:.6g}" + if isinstance(expr, dict) and "latex" in expr: + return expr["latex"] + return str(expr) + + +def jd(year: int, month: int, day: float) -> float: + """Julian Day Number JD(Y,M,D) — temporal lineage key. + + JD 2451545.0 = J2000.0 = 2000-01-01 12:00 TT. + Used in date-elements for catalog temporal keys. + """ + a = (14 - month) // 12 + y = year + 4800 - a + m = month + 12 * a - 3 + jdn = day + (153 * m + 2) // 5 + 365 * y + y // 4 - y // 100 + y // 400 - 32045 + return float(jdn) + + +# ── Reference data / code tables ───────────────────────────────────────────── + + +@dataclass +class CodeEntry: + code: str + label: str + domain: str + sbvr: str = "" + collibra_asset_type: str = "Business Term" + collibra_id: str = "" + + +def loadCodeTableFromBaseFromShiva( # noqa: N802 + db: Path = Path("/tmp/humble-idp.db"), + shiva_base: str = "urn:singine:base:shiva", +) -> Dict[str, CodeEntry]: + """Load the canonical code table from the Shiva base layer. + + Code table (AAAA → FFFFF): + AAAA — Axiom Alpha (Mathematics) + BBBB — Basis Bundle Beta (Quantum) + CCCC — Catalog Code (Collibra) + DDDD — Dirac Domain (Physics) + EEEE — Einstein Epsilon (Relativity) + FFFFF — Formal Field Fiber (Category Theory) + """ + return { + "AAAA": CodeEntry("AAAA", "Axiom Alpha", "Mathematics", "sbvr:Fact", "Business Term"), + "BBBB": CodeEntry("BBBB", "Basis Bundle Beta", "Quantum", "sbvr:Term", "Data Element"), + "CCCC": CodeEntry("CCCC", "Catalog Code", "Collibra", "odrl:Agreement", "Data Asset"), + "DDDD": CodeEntry("DDDD", "Dirac Domain", "Physics", "prov:Entity", "Data Set"), + "EEEE": CodeEntry("EEEE", "Einstein Epsilon", "Relativity", "owl:Class", "Business Process"), + "FFFFF": CodeEntry("FFFFF", "Formal Field Fiber", "Category Theory", "skos:Concept", "Reference Data"), + } + + +def refData(code: str) -> Optional[CodeEntry]: + """Look up a code entry from the Shiva base layer.""" + return loadCodeTableFromBaseFromShiva().get(code) + + +# ── Collibra init ───────────────────────────────────────────────────────────── + + +class CollibraInit: + """``collibra().init()`` — catalog initialisation chain.""" + + def __init__(self) -> None: + self._code_table: Dict[str, CodeEntry] = {} + self._registered: List[str] = [] + + def init(self) -> "CollibraInit": + self._code_table = loadCodeTableFromBaseFromShiva() + self._registered = list(self._code_table.keys()) + return self + + def as_dict(self) -> Dict[str, Any]: + return { + "ok": True, + "registered": self._registered, + "code_table": {k: v.__dict__ for k, v in self._code_table.items()}, + "timestamp": datetime.now(timezone.utc).isoformat(), + } + + +def collibra() -> CollibraInit: + return CollibraInit() + + +# ── Quantum stack ───────────────────────────────────────────────────────────── + + +@dataclass +class QuantumStack: + """Stack as quantum superposition |S⟩ = Σ αₖ|k⟩. + + Push: â†|n⟩ = √(n+1)|n+1⟩ (creation operator) + Pop: â|n⟩ = √n|n−1⟩ (annihilation operator) + Number: N̂|n⟩ = n|n⟩ + CCR: [â, â†] = 1̂ + """ + _amplitudes: List[complex] = field(default_factory=lambda: [complex(1, 0)]) + + @property + def depth(self) -> int: + return len(self._amplitudes) - 1 + + @property + def norm(self) -> float: + return math.sqrt(sum(abs(a) ** 2 for a in self._amplitudes)) + + def normalize(self) -> "QuantumStack": + n = self.norm + if n > 0: + self._amplitudes = [a / n for a in self._amplitudes] + return self + + def push(self, alpha: complex = complex(1, 0)) -> "QuantumStack": + """â†: extend superposition by one basis state.""" + n = len(self._amplitudes) + self._amplitudes.append(alpha / math.sqrt(n + 1)) + return self.normalize() + + def pop(self) -> "QuantumStack": + """â: collapse top basis state (annihilate).""" + if len(self._amplitudes) <= 1: + return self # |0⟩ is annihilated to 0 + self._amplitudes.pop() + return self.normalize() + + def number_expectation(self) -> float: + """⟨N̂⟩ = Σₖ k |αₖ|²""" + return sum(k * abs(a) ** 2 for k, a in enumerate(self._amplitudes)) + + def ket(self) -> str: + terms = [f"({a.real:.3f}{a.imag:+.3f}i)|{k}⟩" + for k, a in enumerate(self._amplitudes)] + return "|S⟩ = " + " + ".join(terms) + + +# ── Quantum queue ───────────────────────────────────────────────────────────── + + +@dataclass +class QuantumQueue: + """Queue as density matrix ρ_Q = Σᵢ pᵢ|ψᵢ⟩⟨ψᵢ|. + + Enqueue: U_enq ρ U_enq† ⊗ |new⟩⟨new| + Dequeue: Tr₁[ρ] (partial trace over first register) + """ + _states: List[complex] = field(default_factory=list) + _probs: List[float] = field(default_factory=list) + + def enqueue(self, state: complex, prob: float = 1.0) -> "QuantumQueue": + self._states.append(state) + self._probs.append(prob) + self._normalize_probs() + return self + + def dequeue(self) -> Optional[complex]: + """Partial trace over first register — returns front element.""" + if not self._states: + return None + state = self._states.pop(0) + self._probs.pop(0) + self._normalize_probs() + return state + + def _normalize_probs(self) -> None: + total = sum(self._probs) + if total > 0: + self._probs = [p / total for p in self._probs] + + @property + def purity(self) -> float: + """Tr[ρ²] = Σᵢ pᵢ² — 1 for pure state, 1/n for maximally mixed.""" + return sum(p ** 2 for p in self._probs) if self._probs else 0.0 + + def density_repr(self) -> str: + terms = [f"{p:.3f}|ψ_{i}⟩⟨ψ_{i}|" + for i, p in enumerate(self._probs)] + return "ρ_Q = " + " + ".join(terms) if terms else "ρ_Q = 0" + + +# ── Complex cosine similarity ───────────────────────────────────────────────── + + +def cosine_similarity_complex( + u: List[complex], v: List[complex] +) -> complex: + """Complex inner-product cosine similarity. + + cos_sim(u,v) = Re(⟨u,v⟩) / (|u|·|v|) + + On the complex Cartesian plane: + z = r e^{iθ} → cos θ = Re(e^{iθ}) = cos(arg(z)) + """ + dot = sum(a.conjugate() * b for a, b in zip(u, v)) + norm_u = math.sqrt(sum(abs(a) ** 2 for a in u)) + norm_v = math.sqrt(sum(abs(b) ** 2 for b in v)) + if norm_u == 0 or norm_v == 0: + return complex(0, 0) + return dot / (norm_u * norm_v) + + +# ── Fluent cosine → Collibra chain ─────────────────────────────────────────── + + +class CosineChain: + """cosine().similarity().complex().resolve().xml().catalog().collibra()""" + + def __init__(self, u: List[complex], v: List[complex]) -> None: + self._u = u + self._v = v + self._sim: Optional[complex] = None + self._angle: Optional[float] = None + self._iri: Optional[str] = None + self._xml_node: Optional[str] = None + self._catalog_entry: Optional[Dict[str, Any]] = None + self._collibra_result: Optional[Dict[str, Any]] = None + + def similarity(self) -> "CosineChain": + self._sim = cosine_similarity_complex(self._u, self._v) + return self + + def complex(self) -> "CosineChain": # noqa: A003 + if self._sim is not None: + self._angle = cmath.phase(self._sim) + return self + + def resolve(self) -> "CosineChain": + if self._angle is not None: + code = list(loadCodeTableFromBaseFromShiva().keys())[ + int(abs(self._angle) / (math.pi / 6)) % 6 + ] + entry = refData(code) + self._iri = f"urn:singine:quantum:{entry.domain.lower()}:{code}" if entry else "" + return self + + def xml(self) -> "CosineChain": # noqa: A003 + self._xml_node = ( + f'' + ) + return self + + def catalog(self) -> "CosineChain": + self._catalog_entry = { + "dcat:Dataset": self._iri, + "dct:description": "Cosine similarity on complex Cartesian plane", + "cos_sim": self._sim.real if self._sim else 0, + "angle_rad": self._angle, + "xml_node": self._xml_node, + } + return self + + def collibra(self) -> Dict[str, Any]: + self._collibra_result = { + "ok": True, + "command": "cosine().similarity().complex().resolve().xml().catalog().collibra()", + "asset_iri": self._iri, + "catalog": self._catalog_entry, + "xml": self._xml_node, + "mcp_tool": "collibra/code_lookup", + } + return self._collibra_result + + +def cosine() -> "_CosineFactory": + class _CosineFactory: + def __call__(self, u: List[complex], v: List[complex]) -> CosineChain: + return CosineChain(u, v) + return _CosineFactory() + + +# ── BubbleLeader builder chain ──────────────────────────────────────────────── + + +class BubbleLeaderChain: + """Ξ = bubbleLeader().builder().piotr().groovy().clojure() + .c().f().math().godel().escher().pg().pg().paulGraham() + + As function composition (right-to-left): + Ξ = bubbleLeader ∘ builder ∘ piotr ∘ ... ∘ paulGraham + + As monad bind (left-to-right): + x >>= bubbleLeader >>= builder >>= ... >>= paulGraham + """ + + def __init__(self, data: Any = None) -> None: + self._data = data + self._trace: List[str] = [] + + def _step(self, name: str, transform: Callable[[Any], Any]) -> "BubbleLeaderChain": + self._trace.append(name) + self._data = transform(self._data) + return self + + # ── chain steps ────────────────────────────────────────────────────────── + + def builder(self) -> "BubbleLeaderChain": + """GoF Builder: accumulate config.""" + return self._step("builder", lambda d: {"built": True, "input": d, "config": {}}) + + def piotr(self) -> "BubbleLeaderChain": + """Cross-language coordination point.""" + return self._step("piotr", lambda d: {**d, "coordinated": True, "langs": []}) + + def groovy(self) -> "BubbleLeaderChain": + """Groovy JVM DSL layer (JProfiler target: chip.profiler.groovy).""" + return self._step("groovy", lambda d: {**d, "langs": d.get("langs", []) + ["groovy"]}) + + def clojure(self) -> "BubbleLeaderChain": + """Clojure pure-function pass (persistence.core).""" + return self._step("clojure", lambda d: {**d, "langs": d.get("langs", []) + ["clojure"]}) + + def c(self) -> "BubbleLeaderChain": + """C layer: zero-copy, cache-aligned structs.""" + return self._step("c", lambda d: {**d, "langs": d.get("langs", []) + ["c"]}) + + def f(self) -> "BubbleLeaderChain": + """F-algebra / fixed-point functor.""" + return self._step("f", lambda d: {**d, "algebra": "F-algebra", "fix": "μF"}) + + def math(self) -> "BubbleLeaderChain": + """Symbolic algebra — SymPy / Mathematica layer.""" + return self._step("math", lambda d: {**d, "symbolic": True, "cas": "sympy"}) + + def godel(self) -> "BubbleLeaderChain": + """Gödel encoding: ⌈Ξ⌉ = Π pⱼ^aⱼ (incompleteness check).""" + def _encode(d: Any) -> Any: + primes = [2, 3, 5, 7, 11, 13, 17] + tokens = list(str(d))[:7] + gnum = reduce(operator.mul, (p ** ord(t) for p, t in zip(primes, tokens)), 1) + return {**d, "godel_number": gnum, "incomplete": True} + return self._step("godel", _encode) + + def escher(self) -> "BubbleLeaderChain": + """Escher fixed-point: Y = λf.(λx.f(xx))(λx.f(xx)).""" + def _fixed(d: Any) -> Any: + return {**d, "fixed_point": True, "combinator": "Y", "self_ref": "f∘f"} + return self._step("escher", _fixed) + + def pg(self) -> "BubbleLeaderChain": + """PostgreSQL query layer — or Paul Graham (second call).""" + calls = self._trace.count("pg") + if calls == 0: + return self._step("pg", lambda d: {**d, "storage": "postgresql", "sql": True}) + else: + return self._step("pg", lambda d: {**d, "lisp_wisdom": "pg/arc", "pg_quote": "Succinctness is power."}) + + def paulGraham(self) -> "BubbleLeaderChain": # noqa: N802 + """Terminal evaluation: LISP primitives — atom, eq, car, cdr, cons, cond, lambda.""" + def _eval(d: Any) -> Any: + return { + **d, + "terminal": "paulGraham", + "lisp_primitives": ["atom", "eq", "car", "cdr", "cons", "cond", "lambda"], + "thesis": "Succinctness is power.", + "arc_eval": f"(eval '{json.dumps(d)[:40]}... nil)", + } + return self._step("paulGraham", _eval) + + def build(self) -> Dict[str, Any]: + return {"chain": self._trace, "result": self._data} + + +def bubbleLeader(items: Optional[List[Any]] = None) -> BubbleLeaderChain: + """Elect leader via bubble-up: float max to top. + + In quantum terms: â†|max⟩ → collapses superposition to max eigenstate. + """ + if items is None: + items = [] + # Bubble sort pass — O(n²) classical, O(n^{3/2}) quantum + arr = list(items) + for i in range(len(arr) - 1): + for j in range(len(arr) - 1 - i): + if arr[j] > arr[j + 1]: + arr[j], arr[j + 1] = arr[j + 1], arr[j] + return BubbleLeaderChain(data={"leader": arr[-1] if arr else None, "sorted": arr}) diff --git a/singine-collibra/python/tests/test_collibra_io_docs_surface.py b/singine-collibra/python/tests/test_collibra_io_docs_surface.py new file mode 100644 index 0000000..a9885ee --- /dev/null +++ b/singine-collibra/python/tests/test_collibra_io_docs_surface.py @@ -0,0 +1,47 @@ +import json +import subprocess +import unittest +from pathlib import Path + + +class CollibraIoDocsSurfaceTest(unittest.TestCase): + def setUp(self): + self.repo_root = Path("/Users/skh/ws/git/github/sindoc/collibra") + self.paths = [ + "/api/collibra/io/create/community", + "/api/collibra/io/create/template", + "/api/collibra/io/metamodel/status", + "/api/collibra/io/metamodel/visualize", + "/api/collibra/io/metamodel/export", + "/api/collibra/io/chip/status", + "/api/collibra/io/chip/configure", + "/api/collibra/io/chip/tools/list", + "/api/collibra/io/edge/connection/probe-postgres", + "/api/collibra/io/edge/datasource/diagnose", + ] + + def test_openapi_and_support_docs_exist(self): + markdown = self.repo_root / "docs" / "collibra-io-commands.md" + openapi = self.repo_root / "schema" / "singine-collibra-io-api.json" + sinlisp = self.repo_root / "runtime" / "sinlisp" / "collibra_io.sinlisp" + xml = self.repo_root / "docs" / "xml" / "singine-collibra-commands.xml" + + self.assertTrue(markdown.exists()) + self.assertTrue(openapi.exists()) + self.assertTrue(sinlisp.exists()) + self.assertTrue(xml.exists()) + + def test_openapi_contains_expected_paths(self): + payload = json.loads((self.repo_root / "schema" / "singine-collibra-io-api.json").read_text(encoding="utf-8")) + for path in self.paths: + self.assertIn(path, payload["paths"]) + + def test_openapi_file_matches_generated_output(self): + script = self.repo_root / "scripts" / "generate_collibra_io_openapi.py" + generated = subprocess.check_output(["python3", str(script), "--stdout"], text=True) + checked_in = (self.repo_root / "schema" / "singine-collibra-io-api.json").read_text(encoding="utf-8") + self.assertEqual(json.loads(generated), json.loads(checked_in)) + + +if __name__ == "__main__": + unittest.main() diff --git a/uniWork/lutino-collibra-metamodel.json b/uniWork/lutino-collibra-metamodel.json new file mode 100644 index 0000000..2046ed4 --- /dev/null +++ b/uniWork/lutino-collibra-metamodel.json @@ -0,0 +1,32233 @@ +{ + "ok": true, + "command": "collibra io metamodel visualize", + "root": "/Users/skh/ws/today/metamodel/reference/current/latest/lutino.collibra.singine.process.C213(1)/1.1.27", + "version": "1.1.27", + "stats": { + "AssetType": 228, + "Assignment": 219, + "AttributeType": 261, + "RelationType": 175, + "View": 53, + "Domain": 7, + "Community": 5, + "Workflow": 20 + }, + "asset_types": [ + { + "id": "00000000-0000-0000-0001-002800000003", + "kind": "asset_type", + "name": "ADLS Container", + "public_id": "AdlsContainer", + "parent_name": "Storage Container", + "attributes": [ + { + "id": "01922077-b1a9-7538-8ad7-139e0fcb905e", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "01922077-b1aa-759e-8438-ded542d919cb", + "kind": "attribute", + "name": "URL", + "public_id": "Url", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-b1aa-759e-8438-ded542d919cc", + "kind": "attribute", + "name": "Location", + "public_id": "Location", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-b1aa-759e-8438-ded542d919cd", + "kind": "attribute", + "name": "External System Label", + "public_id": "ExternalSystemLabel", + "cardinality": { + "min": 0, + "max": null + } + } + ], + "relations": [ + { + "id": "01922077-b1aa-759e-8438-ded542d919ce", + "kind": "relation", + "name": "contains", + "public_id": "FileContainerContainsFileContainer", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Storage Container", + "target_asset_type": "Storage Container" + } + }, + { + "id": "01922077-b379-77b4-a27c-041e4c8a6fdc", + "kind": "relation", + "name": "contains", + "public_id": "FileContainerContainsFileContainer", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Storage Container", + "target_asset_type": "Storage Container" + } + }, + { + "id": "01922077-b379-77b4-a27c-041e4c8a6fdd", + "kind": "relation", + "name": "contains", + "public_id": "FileContainerContainsFile", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Storage Container", + "target_asset_type": "File" + } + } + ] + }, + { + "id": "00000000-0000-0000-0001-002800000001", + "kind": "asset_type", + "name": "ADLS File System", + "public_id": "AdlsFileSystem", + "parent_name": "File Storage", + "attributes": [ + { + "id": "01922077-b011-7670-9173-2bfd7bbb5a58", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": null + } + } + ], + "relations": [ + { + "id": "01922077-b34c-78eb-a437-4f0f2f8f3868", + "kind": "relation", + "name": "contains", + "public_id": "FileStorageContainsFileContainer", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "File Storage", + "target_asset_type": "Storage Container" + } + } + ] + }, + { + "id": "00000000-0000-0000-0001-002800000002", + "kind": "asset_type", + "name": "ADLS Storage Account", + "public_id": "AdlsStorageAccount", + "parent_name": "Storage Container", + "attributes": [ + { + "id": "01922077-b0c4-7ae6-bcb6-ef8d35614847", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "01922077-b0c4-7ae6-bcb6-ef8d35614848", + "kind": "attribute", + "name": "URL", + "public_id": "Url", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-b0c4-7ae6-bcb6-ef8d35614849", + "kind": "attribute", + "name": "Location", + "public_id": "Location", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-b0c4-7ae6-bcb6-ef8d3561484a", + "kind": "attribute", + "name": "External System Label", + "public_id": "ExternalSystemLabel", + "cardinality": { + "min": 0, + "max": null + } + } + ], + "relations": [ + { + "id": "01922077-b0c5-71be-a294-94ba4ff8cb5a", + "kind": "relation", + "name": "contains", + "public_id": "FileStorageContainsFileContainer", + "cardinality": { + "min": 0, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "File Storage", + "target_asset_type": "Storage Container" + } + }, + { + "id": "01922077-b0c5-71be-a294-94ba4ff8cb5b", + "kind": "relation", + "name": "contains", + "public_id": "FileContainerContainsFileContainer", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Storage Container", + "target_asset_type": "Storage Container" + } + }, + { + "id": "01922077-b362-771b-a3bd-1ae3fa74e3ca", + "kind": "relation", + "name": "contains", + "public_id": "FileContainerContainsFileContainer", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Storage Container", + "target_asset_type": "Storage Container" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-000000031450", + "kind": "asset_type", + "name": "AI Agent", + "public_id": "AIAgent", + "parent_name": "Technology Asset", + "attributes": [ + { + "id": "0196bf61-641d-7e75-bef0-a7e10a4a9c1b", + "kind": "attribute", + "name": "Instructions", + "public_id": "Instructions", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0196bf61-641d-7e75-bef0-a7e10a4a9c1c", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019ccde7-d42a-7551-96bc-8cdcf4d3ee1e", + "kind": "attribute", + "name": "Description from source system", + "public_id": "DescriptionFromSourceSystem", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019ccde7-d42a-7551-96bc-8cdcf4d3ee1f", + "kind": "attribute", + "name": "Creation Date in Source", + "public_id": "CreationDateInSource", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019ccde7-d42a-7551-96bc-8cdcf4d3ee20", + "kind": "attribute", + "name": "Tool Usage", + "public_id": "ToolUsage", + "cardinality": { + "min": 0, + "max": null + } + } + ], + "relations": [ + { + "id": "01957b35-ceb0-7bef-b4a5-5dc1ce4d1db6", + "kind": "relation", + "name": "uses", + "public_id": "AIUseCaseUsesAIAgent", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "AI Use Case", + "target_asset_type": "AI Agent" + } + }, + { + "id": "01957b35-ceb0-7bef-b4a5-5dc1ce4d1db7", + "kind": "relation", + "name": "uses", + "public_id": "AIAgentUsesAIModel", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "AI Agent", + "target_asset_type": "AI Model Version" + } + }, + { + "id": "01957b35-ceb0-7bef-b4a5-5dc1ce4d1db8", + "kind": "relation", + "name": "uses", + "public_id": "AIAgentUsesAIAgent", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "AI Agent", + "target_asset_type": "AI Agent" + } + }, + { + "id": "01957b35-ceb0-7bef-b4a5-5dc1ce4d1db9", + "kind": "relation", + "name": "uses", + "public_id": "AIAgentUsesAIAgent", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "AI Agent", + "target_asset_type": "AI Agent" + } + }, + { + "id": "01992462-0f70-72c3-b265-0ccc85412748", + "kind": "relation", + "name": "contains", + "public_id": "AIAgentContainsFileContainer", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "AI Agent", + "target_asset_type": "Storage Container" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-000000031422", + "kind": "asset_type", + "name": "AI Base Model", + "public_id": "FoundationalAIModel", + "parent_name": "Technology Asset", + "attributes": [ + { + "id": "01992462-0c23-7fba-a70d-93c2c31123b2", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01992462-0c23-7fba-a70d-93c2c31123b6", + "kind": "attribute", + "name": "Creation Date in Source", + "public_id": "CreationDateInSource", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01992462-0c23-7fba-a70d-93c2c31123b7", + "kind": "attribute", + "name": "Retirement Date in Source", + "public_id": "RetirementDateInSource", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01992462-0c23-7fba-a70d-93c2c31123b8", + "kind": "attribute", + "name": "Required Content Filtering", + "public_id": "ContentFilter", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "019ccde7-cb57-7644-9ff2-534571eed5bc", + "kind": "attribute", + "name": "Description from source system", + "public_id": "DescriptionFromSourceSystem", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019ccde7-cb57-7644-9ff2-534571eed5bd", + "kind": "attribute", + "name": "Owner in Source", + "public_id": "OwnerInSource", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019ccde7-cb57-7644-9ff2-534571eed5be", + "kind": "attribute", + "name": "Retrain Cycle", + "public_id": "RetrainCycle", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "01992462-0c23-7fba-a70d-93c2c31123ba", + "kind": "relation", + "name": "complies to", + "public_id": "AssetCompliesToGovernanceAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Asset", + "target_asset_type": "Governance Asset" + } + }, + { + "id": "0199b495-e5ce-7b2b-a463-412b9c972e5d", + "kind": "relation", + "name": "uses", + "public_id": "FoundationalAIModelUsesFoundationalAIModel", + "cardinality": { + "min": 0, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "AI Base Model", + "target_asset_type": "AI Base Model" + } + }, + { + "id": "0199b495-e5ce-7b2b-a463-412b9c972e5e", + "kind": "relation", + "name": "uses", + "public_id": "FoundationalAIModelUsesFoundationalAIModel", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "AI Base Model", + "target_asset_type": "AI Base Model" + } + }, + { + "id": "019ccde7-cb57-7644-9ff2-534571eed5b9", + "kind": "relation", + "name": "has version", + "public_id": "ModelHasVersion", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "AI Base Model", + "target_asset_type": "AI Model Version" + } + }, + { + "id": "019ccde7-cb57-7644-9ff2-534571eed5ba", + "kind": "relation", + "name": "uses", + "public_id": "AIUseCaseUsesBaseModel", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "AI Use Case", + "target_asset_type": "AI Base Model" + } + }, + { + "id": "019ccde7-cb57-7644-9ff2-534571eed5bb", + "kind": "relation", + "name": "is provided by", + "public_id": "BaseModelProvidedByVendor", + "cardinality": { + "min": 0, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "AI Base Model", + "target_asset_type": "Vendor" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-000000031501", + "kind": "asset_type", + "name": "AI Endpoint", + "public_id": "AIEndpoint", + "parent_name": "Technology Asset", + "attributes": [ + { + "id": "019ccde7-caec-7693-86f6-49558f6b0de0", + "kind": "attribute", + "name": "Access Method", + "public_id": "AccessMethod", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019ccde7-caec-7693-86f6-49558f6b0de1", + "kind": "attribute", + "name": "Access Instructions", + "public_id": "AccessInstructions", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019ccde7-caec-7693-86f6-49558f6b0de3", + "kind": "attribute", + "name": "Traffic Split", + "public_id": "TrafficSplit", + "cardinality": { + "min": 0, + "max": null + } + } + ], + "relations": [ + { + "id": "019ccde7-caec-7693-86f6-49558f6b0de2", + "kind": "relation", + "name": "is exposed through", + "public_id": "DeploymentsExposedThroughEndpoint", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "AI Model Deployment", + "target_asset_type": "AI Endpoint" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-000000031500", + "kind": "asset_type", + "name": "AI Model Deployment", + "public_id": "AIModelDeployment", + "parent_name": "Technology Asset", + "attributes": [ + { + "id": "019ccde7-c9bb-702b-b578-c790e70519a4", + "kind": "attribute", + "name": "Description from source system", + "public_id": "DescriptionFromSourceSystem", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019ccde7-c9bb-702b-b578-c790e70519a5", + "kind": "attribute", + "name": "Initiating User in Source", + "public_id": "InitiatingUserInSource", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "019ccde7-c9bb-702b-b578-c790e70519a6", + "kind": "attribute", + "name": "Creation Date in Source", + "public_id": "CreationDateInSource", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "019ccde7-c9bb-702b-b578-c790e70519a7", + "kind": "attribute", + "name": "Modification Date in Source", + "public_id": "ModificationDateInSource", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019ccde7-c9bb-702b-b578-c790e70519a8", + "kind": "attribute", + "name": "Retirement Date in Source", + "public_id": "RetirementDateInSource", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019ccde7-c9bb-702b-b578-c790e70519a9", + "kind": "attribute", + "name": "Implemented Content Filtering", + "public_id": "ImplementedContentFiltering", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "019ccde7-c9bb-702b-b578-c790e70519aa", + "kind": "attribute", + "name": "Compute Configuration", + "public_id": "ComputeConfiguration", + "cardinality": { + "min": 0, + "max": null + } + } + ], + "relations": [ + { + "id": "019ccde7-c9ba-74f9-9180-b14158cf3561", + "kind": "relation", + "name": "is deployed by", + "public_id": "ModelVersionIsDeployedByModelDeployment", + "cardinality": { + "min": 0, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "AI Model Version", + "target_asset_type": "AI Model Deployment" + } + }, + { + "id": "019ccde7-c9ba-74f9-9180-b14158cf3562", + "kind": "relation", + "name": "uses", + "public_id": "ModelDeploymentInfersFromInferenceData", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "AI Model Deployment", + "target_asset_type": "Inference Data" + } + }, + { + "id": "019ccde7-c9ba-74f9-9180-b14158cf3563", + "kind": "relation", + "name": "produces", + "public_id": "ModelDeploymentToOutputData", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "AI Model Deployment", + "target_asset_type": "Output Data" + } + }, + { + "id": "019ccde7-c9bb-702b-b578-c790e70519a3", + "kind": "relation", + "name": "is exposed through", + "public_id": "DeploymentsExposedThroughEndpoint", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "AI Model Deployment", + "target_asset_type": "AI Endpoint" + } + }, + { + "id": "019ccde7-d39e-773f-8419-5a71d6d9ad66", + "kind": "relation", + "name": "is monitored by", + "public_id": "DeploymentMonitoredByAIMonitor", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "AI Model Deployment", + "target_asset_type": "AI Monitor" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-000000031402", + "kind": "asset_type", + "name": "AI Model Version", + "public_id": "AIModel", + "parent_name": "Technology Asset", + "attributes": [ + { + "id": "01922077-edcd-7350-b3c3-a71eae9147db", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-edcd-7350-b3c3-a71eae9147dd", + "kind": "attribute", + "name": "Model Accuracy", + "public_id": "ModelAccuracy", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-edcd-7350-b3c3-a71eae9147de", + "kind": "attribute", + "name": "Model Precision", + "public_id": "ModelPrecision", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-edcd-7350-b3c3-a71eae9147df", + "kind": "attribute", + "name": "Mean Squared Error", + "public_id": "MeanSquaredError", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-edcd-7350-b3c3-a71eae9147e0", + "kind": "attribute", + "name": "Mean Absolute Error", + "public_id": "MeanAbsoluteError", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-edcd-7350-b3c3-a71eae9147e2", + "kind": "attribute", + "name": "Model Type", + "public_id": "ModelType", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-edcd-7350-b3c3-a71eae9147e4", + "kind": "attribute", + "name": "Feature Importance", + "public_id": "FeatureImportance", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-f570-7379-b031-b63a2e43dc49", + "kind": "attribute", + "name": "Version", + "public_id": "Version", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-f570-7379-b031-b63a2e43dc4a", + "kind": "attribute", + "name": "Description from source system", + "public_id": "DescriptionFromSourceSystem", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-f570-7379-b031-b63a2e43dc4b", + "kind": "attribute", + "name": "Repository", + "public_id": "Repository", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0199b495-e673-75bc-b134-4f98f7206f7c", + "kind": "attribute", + "name": "Required Content Filtering", + "public_id": "ContentFilter", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "019ccde7-d3cc-7621-b19c-0aa2c29bcc19", + "kind": "attribute", + "name": "Supported Input Modalities", + "public_id": "SupportedInputModalities", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "019ccde7-d3cc-7621-b19c-0aa2c29bcc1a", + "kind": "attribute", + "name": "Supported Output Modalities", + "public_id": "SupportedOutputModalities", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "019ccde7-d3cc-7621-b19c-0aa2c29bcc1b", + "kind": "attribute", + "name": "Supported Model Customizations", + "public_id": "SupportedModelCustomizations", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "019ccde7-d3cc-7621-b19c-0aa2c29bcc1c", + "kind": "attribute", + "name": "Framework", + "public_id": "Framework", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "01922077-eeea-7fb0-aab7-5b2bd08d0732", + "kind": "relation", + "name": "uses", + "public_id": "AIUseCaseUsesAIModel", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "AI Use Case", + "target_asset_type": "AI Model Version" + } + }, + { + "id": "01922077-f570-7379-b031-b63a2e43dc4c", + "kind": "relation", + "name": "trained by", + "public_id": "AIModelTrainedByAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "AI Model Version", + "target_asset_type": "Asset" + } + }, + { + "id": "01922077-f570-7379-b031-b63a2e43dc4d", + "kind": "relation", + "name": "infers from", + "public_id": "AIModelInfersFromAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "AI Model Version", + "target_asset_type": "Asset" + } + }, + { + "id": "01922077-f570-7379-b031-b63a2e43dc4e", + "kind": "relation", + "name": "has output", + "public_id": "AIModelHasOutputAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "AI Model Version", + "target_asset_type": "Asset" + } + }, + { + "id": "01922077-f570-7379-b031-b63a2e43dc4f", + "kind": "relation", + "name": "is provided by", + "public_id": "AIModelProvidedByVendor", + "cardinality": { + "min": 0, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "AI Model Version", + "target_asset_type": "Vendor" + } + }, + { + "id": "01922077-f570-7379-b031-b63a2e43dc50", + "kind": "relation", + "name": "uses", + "public_id": "AIModelUsesAIModel", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "AI Model Version", + "target_asset_type": "AI Model Version" + } + }, + { + "id": "01922077-f570-7379-b031-b63a2e43dc51", + "kind": "relation", + "name": "uses", + "public_id": "AIModelUsesAIModel", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "AI Model Version", + "target_asset_type": "AI Model Version" + } + }, + { + "id": "01922078-0810-78e0-a646-5d4f947107ff", + "kind": "relation", + "name": "complies to", + "public_id": "AssetCompliesToGovernanceAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Asset", + "target_asset_type": "Governance Asset" + } + }, + { + "id": "01957b35-cfc0-7b95-8797-93c04bd76073", + "kind": "relation", + "name": "uses", + "public_id": "AIAgentUsesAIModel", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "AI Agent", + "target_asset_type": "AI Model Version" + } + }, + { + "id": "01992462-09ff-73e2-b8f1-379d24a2a5e6", + "kind": "relation", + "name": "deploys", + "public_id": "AIProjectDeploysAIModel", + "cardinality": { + "min": 0, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "AI Project", + "target_asset_type": "AI Model Version" + } + }, + { + "id": "01992462-0d90-7f4d-9ad9-449a7a03f5ab", + "kind": "relation", + "name": "contains", + "public_id": "AIModelContainsFileContainer", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "AI Model Version", + "target_asset_type": "Storage Container" + } + }, + { + "id": "019ccde7-cce2-74bd-9d45-c9f2926458a2", + "kind": "relation", + "name": "has version", + "public_id": "ModelHasVersion", + "cardinality": { + "min": 0, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "AI Base Model", + "target_asset_type": "AI Model Version" + } + }, + { + "id": "019ccde7-cce2-74bd-9d45-c9f2926458a3", + "kind": "relation", + "name": "is deployed by", + "public_id": "ModelVersionIsDeployedByModelDeployment", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "AI Model Version", + "target_asset_type": "AI Model Deployment" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-000000031502", + "kind": "asset_type", + "name": "AI Monitor", + "public_id": "AIMonitor", + "parent_name": "Governance Asset", + "attributes": [ + { + "id": "019ccde7-d32e-70e3-a9bf-faf9a854937c", + "kind": "attribute", + "name": "Data Drift Detection Enabled", + "public_id": "DataDriftDetection", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019ccde7-d32e-70e3-a9bf-faf9a854937d", + "kind": "attribute", + "name": "Prediction Drift Detection Enabled", + "public_id": "PredictionDriftDetection", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019ccde7-d32e-70e3-a9bf-faf9a854937e", + "kind": "attribute", + "name": "Schedule", + "public_id": "Schedule", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019ccde7-d32e-70e3-a9bf-faf9a854937f", + "kind": "attribute", + "name": "Alert Configuration", + "public_id": "AlertConfiguration", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "019ccde7-d32e-70e3-a9bf-faf9a854937b", + "kind": "relation", + "name": "is monitored by", + "public_id": "DeploymentMonitoredByAIMonitor", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "AI Model Deployment", + "target_asset_type": "AI Monitor" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-000000031420", + "kind": "asset_type", + "name": "AI Project", + "public_id": "AIProject", + "parent_name": "Technology Asset", + "attributes": [ + { + "id": "01992462-08ac-7bd2-9999-a733c8d72874", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01992462-08ac-7bd2-9999-a733c8d72875", + "kind": "attribute", + "name": "Project Id", + "public_id": "ProjectId", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "01992462-08ac-7bd2-9999-a733c8d72876", + "kind": "attribute", + "name": "Location", + "public_id": "Location", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01992462-08ac-7bd2-9999-a733c8d72877", + "kind": "attribute", + "name": "URL", + "public_id": "Url", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "01992462-09c5-7611-8292-9bafe47d3b9b", + "kind": "relation", + "name": "deploys", + "public_id": "AIProjectDeploysAIModel", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "AI Project", + "target_asset_type": "AI Model Version" + } + }, + { + "id": "01992462-09c6-793a-83e5-6df3e4492ee4", + "kind": "relation", + "name": "uses", + "public_id": "AIUseCaseUsesAIProject", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "AI Use Case", + "target_asset_type": "AI Project" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-000000031401", + "kind": "asset_type", + "name": "AI Use Case", + "public_id": "AIUseCase", + "parent_name": "Business Asset", + "attributes": [ + { + "id": "01922077-ebde-7f3d-adc5-4e0f6bc0e6cb", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-ebde-7f3d-adc5-4e0f6bc0e6cd", + "kind": "attribute", + "name": "Use Case Application", + "public_id": "UseCaseApplication", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-ebde-7f3d-adc5-4e0f6bc0e6ce", + "kind": "attribute", + "name": "Business Case", + "public_id": "BusinessCase", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-ebde-7f3d-adc5-4e0f6bc0e6cf", + "kind": "attribute", + "name": "Business Value", + "public_id": "BusinessValue", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-ebde-7f3d-adc5-4e0f6bc0e6d0", + "kind": "attribute", + "name": "Business Sponsor", + "public_id": "BusinessSponsor", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-ebde-7f3d-adc5-4e0f6bc0e6d1", + "kind": "attribute", + "name": "Maintenance Cost", + "public_id": "MaintenanceCost", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-ebde-7f3d-adc5-4e0f6bc0e6d2", + "kind": "attribute", + "name": "General Purpose AI", + "public_id": "GeneralPurposeAI", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-ebde-7f3d-adc5-4e0f6bc0e6d3", + "kind": "attribute", + "name": "Third Party Model", + "public_id": "ThirdPartyModel", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-ebde-7f3d-adc5-4e0f6bc0e6d4", + "kind": "attribute", + "name": "Internal Model", + "public_id": "InternalModel", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-ebde-7f3d-adc5-4e0f6bc0e6d5", + "kind": "attribute", + "name": "Training Data Description", + "public_id": "TrainingDataDescription", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-ebde-7f3d-adc5-4e0f6bc0e6d6", + "kind": "attribute", + "name": "Inference Data Description", + "public_id": "InferenceDataDescription", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-ebde-7f3d-adc5-4e0f6bc0e6d7", + "kind": "attribute", + "name": "Model Output", + "public_id": "ModelOutput", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-ebde-7f3d-adc5-4e0f6bc0e6d8", + "kind": "attribute", + "name": "Data Storage", + "public_id": "DataStorage", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-ebde-7f3d-adc5-4e0f6bc0e6d9", + "kind": "attribute", + "name": "Automation Level", + "public_id": "AutomationLevel", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-ebde-7f3d-adc5-4e0f6bc0e6da", + "kind": "attribute", + "name": "Model Monitoring", + "public_id": "ModelMonitoring", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-ebde-7f3d-adc5-4e0f6bc0e6db", + "kind": "attribute", + "name": "Legal Approval Date", + "public_id": "LegalApprovalDate", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-ebde-7f3d-adc5-4e0f6bc0e6dc", + "kind": "attribute", + "name": "Legal Approval Renewal Date", + "public_id": "LegalApprovalRenewalDate", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-ebde-7f3d-adc5-4e0f6bc0e6dd", + "kind": "attribute", + "name": "Legal Description of Model", + "public_id": "LegalModelDescription", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-ebde-7f3d-adc5-4e0f6bc0e6de", + "kind": "attribute", + "name": "Security Protocols", + "public_id": "SecurityProtocols", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-ebde-7f3d-adc5-4e0f6bc0e6df", + "kind": "attribute", + "name": "Data Retention Protocols", + "public_id": "DataRetentionProtocols", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-ebde-7f3d-adc5-4e0f6bc0e6e0", + "kind": "attribute", + "name": "Data Privacy Risks", + "public_id": "DataPrivacyRisks", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-ebde-7f3d-adc5-4e0f6bc0e6e1", + "kind": "attribute", + "name": "Data Privacy Risk Score", + "public_id": "DataPrivacyRiskScore", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-ebde-7f3d-adc5-4e0f6bc0e6e2", + "kind": "attribute", + "name": "Intellectual Property Risks", + "public_id": "IntellectualPropertyRisks", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-ebde-7f3d-adc5-4e0f6bc0e6e3", + "kind": "attribute", + "name": "Ethical Risks", + "public_id": "EthicalRisks", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-ebde-7f3d-adc5-4e0f6bc0e6e4", + "kind": "attribute", + "name": "Other Risks", + "public_id": "OtherRisks", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-ebde-7f3d-adc5-4e0f6bc0e6e5", + "kind": "attribute", + "name": "Overall Risk Analysis", + "public_id": "OverallRiskAnalysis", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-ebde-7f3d-adc5-4e0f6bc0e6e6", + "kind": "attribute", + "name": "Overall Risk Rating", + "public_id": "OverallRiskRating", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-ebde-7f3d-adc5-4e0f6bc0e6e7", + "kind": "attribute", + "name": "Transparency Disclosure Requirements", + "public_id": "TransparencyDisclosureRequirements", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-ebde-7f3d-adc5-4e0f6bc0e6e8", + "kind": "attribute", + "name": "Protective Measures", + "public_id": "ProtectiveMeasures", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-f459-76bc-bade-3d565ad78203", + "kind": "attribute", + "name": "Business Risks", + "public_id": "BusinessRisks", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019ccde7-c3e5-7652-a135-baa8457da854", + "kind": "attribute", + "name": "Safeguard Effectiveness", + "public_id": "SafeguardEffectiveness", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "01922077-ebdd-7db1-8c00-08feb81f0139", + "kind": "relation", + "name": "is assessed by", + "public_id": "AssetIsAssessedByAssessmentReview", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Asset", + "target_asset_type": "Assessment Review" + } + }, + { + "id": "01922077-eeab-70a3-a866-9af3be78c36d", + "kind": "relation", + "name": "uses", + "public_id": "AIUseCaseUsesAIModel", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "AI Use Case", + "target_asset_type": "AI Model Version" + } + }, + { + "id": "01922077-eeab-70a3-a866-9af3be78c36e", + "kind": "relation", + "name": "infers from", + "public_id": "AIUseCaseTransformsAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "AI Use Case", + "target_asset_type": "Asset" + } + }, + { + "id": "01922077-eeab-70a3-a866-9af3be78c36f", + "kind": "relation", + "name": "trained by", + "public_id": "AIUseCaseTrainedByAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "AI Use Case", + "target_asset_type": "Asset" + } + }, + { + "id": "01922077-eeab-70a3-a866-9af3be78c370", + "kind": "relation", + "name": "has output", + "public_id": "AIUseCaseHasOutputAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "AI Use Case", + "target_asset_type": "Asset" + } + }, + { + "id": "01922078-07f4-7ad0-884a-cbaa04d37a3e", + "kind": "relation", + "name": "complies to", + "public_id": "AssetCompliesToGovernanceAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Asset", + "target_asset_type": "Governance Asset" + } + }, + { + "id": "01957b35-cfa3-7c1e-bfac-bdd58df57f34", + "kind": "relation", + "name": "uses", + "public_id": "AIUseCaseUsesAIAgent", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "AI Use Case", + "target_asset_type": "AI Agent" + } + }, + { + "id": "01992462-0a22-73be-a43a-f03c64b3757f", + "kind": "relation", + "name": "uses", + "public_id": "AIUseCaseUsesAIProject", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "AI Use Case", + "target_asset_type": "AI Project" + } + }, + { + "id": "019ccde7-d1d7-7417-88cc-9d826f0b43d5", + "kind": "relation", + "name": "uses", + "public_id": "AIUseCaseUsesBaseModel", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "AI Use Case", + "target_asset_type": "AI Base Model" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-000000031408", + "kind": "asset_type", + "name": "AWS Bedrock AI Model Version", + "public_id": "AwsBedrockAIModel", + "parent_name": "AI Model Version", + "attributes": [ + { + "id": "019261eb-68ce-7da6-b778-70f6c5dc0c67", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019261eb-68ce-7da6-b778-70f6c5dc0c68", + "kind": "attribute", + "name": "Model Accuracy", + "public_id": "ModelAccuracy", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019261eb-68ce-7da6-b778-70f6c5dc0c69", + "kind": "attribute", + "name": "Model Precision", + "public_id": "ModelPrecision", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019261eb-68ce-7da6-b778-70f6c5dc0c6a", + "kind": "attribute", + "name": "Mean Squared Error", + "public_id": "MeanSquaredError", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019261eb-68ce-7da6-b778-70f6c5dc0c6b", + "kind": "attribute", + "name": "Mean Absolute Error", + "public_id": "MeanAbsoluteError", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019261eb-68ce-7da6-b778-70f6c5dc0c6c", + "kind": "attribute", + "name": "Model Type", + "public_id": "ModelType", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019261eb-68ce-7da6-b778-70f6c5dc0c6e", + "kind": "attribute", + "name": "Feature Importance", + "public_id": "FeatureImportance", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019261eb-68ce-7da6-b778-70f6c5dc0c70", + "kind": "attribute", + "name": "Version", + "public_id": "Version", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019261eb-68ce-7da6-b778-70f6c5dc0c71", + "kind": "attribute", + "name": "Description from source system", + "public_id": "DescriptionFromSourceSystem", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019261eb-68ce-7da6-b778-70f6c5dc0c72", + "kind": "attribute", + "name": "Repository", + "public_id": "Repository", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0199b495-e6b0-7a9e-a247-d437856a33f9", + "kind": "attribute", + "name": "Required Content Filtering", + "public_id": "ContentFilter", + "cardinality": { + "min": 0, + "max": null + } + } + ], + "relations": [ + { + "id": "019261eb-68ce-7da6-b778-70f6c5dc0c6f", + "kind": "relation", + "name": "uses", + "public_id": "AIUseCaseUsesAIModel", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "AI Use Case", + "target_asset_type": "AI Model Version" + } + }, + { + "id": "019261eb-68ce-7da6-b778-70f6c5dc0c73", + "kind": "relation", + "name": "trained by", + "public_id": "AIModelTrainedByAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "AI Model Version", + "target_asset_type": "Asset" + } + }, + { + "id": "019261eb-68ce-7da6-b778-70f6c5dc0c76", + "kind": "relation", + "name": "is provided by", + "public_id": "AIModelProvidedByVendor", + "cardinality": { + "min": 0, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "AI Model Version", + "target_asset_type": "Vendor" + } + }, + { + "id": "019261eb-68ce-7da6-b778-70f6c5dc0c77", + "kind": "relation", + "name": "uses", + "public_id": "AIModelUsesAIModel", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "AI Model Version", + "target_asset_type": "AI Model Version" + } + }, + { + "id": "019261eb-68ce-7da6-b778-70f6c5dc0c78", + "kind": "relation", + "name": "uses", + "public_id": "AIModelUsesAIModel", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "AI Model Version", + "target_asset_type": "AI Model Version" + } + }, + { + "id": "019261eb-68ce-7da6-b778-70f6c5dc0c79", + "kind": "relation", + "name": "complies to", + "public_id": "AssetCompliesToGovernanceAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Asset", + "target_asset_type": "Governance Asset" + } + }, + { + "id": "01992462-0dc2-7f97-8433-cf2cb54aef3f", + "kind": "relation", + "name": "contains", + "public_id": "AIModelContainsFileContainer", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "AI Model Version", + "target_asset_type": "Storage Container" + } + }, + { + "id": "01992462-1f15-7cb7-bc97-99000ea3866c", + "kind": "relation", + "name": "deploys", + "public_id": "AIProjectDeploysAIModel", + "cardinality": { + "min": 0, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "AI Project", + "target_asset_type": "AI Model Version" + } + }, + { + "id": "019ccde7-d15c-7340-90fb-c810effef596", + "kind": "relation", + "name": "has version", + "public_id": "ModelHasVersion", + "cardinality": { + "min": 0, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "AI Base Model", + "target_asset_type": "AI Model Version" + } + }, + { + "id": "019ccde7-d15c-7340-90fb-c810effef597", + "kind": "relation", + "name": "is deployed by", + "public_id": "ModelVersionIsDeployedByModelDeployment", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "AI Model Version", + "target_asset_type": "AI Model Deployment" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-000000031406", + "kind": "asset_type", + "name": "AWS Sagemaker AI Model Version", + "public_id": "AWSSagemakerAIModel", + "parent_name": "AI Model Version", + "attributes": [ + { + "id": "01922078-0d5c-7c12-a46c-e6ea5d89d575", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922078-0d5d-77d8-94a4-75da2e3ae6d7", + "kind": "attribute", + "name": "Model Accuracy", + "public_id": "ModelAccuracy", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922078-0d5d-77d8-94a4-75da2e3ae6d8", + "kind": "attribute", + "name": "Model Precision", + "public_id": "ModelPrecision", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922078-0d5d-77d8-94a4-75da2e3ae6d9", + "kind": "attribute", + "name": "Mean Squared Error", + "public_id": "MeanSquaredError", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922078-0d5d-77d8-94a4-75da2e3ae6da", + "kind": "attribute", + "name": "Mean Absolute Error", + "public_id": "MeanAbsoluteError", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922078-0d5d-77d8-94a4-75da2e3ae6db", + "kind": "attribute", + "name": "Model Type", + "public_id": "ModelType", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922078-0d5d-77d8-94a4-75da2e3ae6dd", + "kind": "attribute", + "name": "Feature Importance", + "public_id": "FeatureImportance", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922078-0d5d-77d8-94a4-75da2e3ae6df", + "kind": "attribute", + "name": "Version", + "public_id": "Version", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922078-0d5d-77d8-94a4-75da2e3ae6e0", + "kind": "attribute", + "name": "Description from source system", + "public_id": "DescriptionFromSourceSystem", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922078-0d5d-77d8-94a4-75da2e3ae6e1", + "kind": "attribute", + "name": "Repository", + "public_id": "Repository", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0199b495-e6f4-7c65-9da3-00c02a86e028", + "kind": "attribute", + "name": "Required Content Filtering", + "public_id": "ContentFilter", + "cardinality": { + "min": 0, + "max": null + } + } + ], + "relations": [ + { + "id": "01922078-0d5d-77d8-94a4-75da2e3ae6de", + "kind": "relation", + "name": "uses", + "public_id": "AIUseCaseUsesAIModel", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "AI Use Case", + "target_asset_type": "AI Model Version" + } + }, + { + "id": "01922078-0d5d-77d8-94a4-75da2e3ae6e2", + "kind": "relation", + "name": "trained by", + "public_id": "AIModelTrainedByAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "AI Model Version", + "target_asset_type": "Asset" + } + }, + { + "id": "01922078-0d5d-77d8-94a4-75da2e3ae6e5", + "kind": "relation", + "name": "is provided by", + "public_id": "AIModelProvidedByVendor", + "cardinality": { + "min": 0, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "AI Model Version", + "target_asset_type": "Vendor" + } + }, + { + "id": "01922078-0d5d-77d8-94a4-75da2e3ae6e6", + "kind": "relation", + "name": "uses", + "public_id": "AIModelUsesAIModel", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "AI Model Version", + "target_asset_type": "AI Model Version" + } + }, + { + "id": "01922078-0d5d-77d8-94a4-75da2e3ae6e7", + "kind": "relation", + "name": "uses", + "public_id": "AIModelUsesAIModel", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "AI Model Version", + "target_asset_type": "AI Model Version" + } + }, + { + "id": "01922078-0d5d-77d8-94a4-75da2e3ae6e8", + "kind": "relation", + "name": "complies to", + "public_id": "AssetCompliesToGovernanceAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Asset", + "target_asset_type": "Governance Asset" + } + }, + { + "id": "01992462-0df2-76d7-9189-7f241ac3def7", + "kind": "relation", + "name": "contains", + "public_id": "AIModelContainsFileContainer", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "AI Model Version", + "target_asset_type": "Storage Container" + } + }, + { + "id": "01992462-1ede-7670-aa54-beebe3356098", + "kind": "relation", + "name": "deploys", + "public_id": "AIProjectDeploysAIModel", + "cardinality": { + "min": 0, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "AI Project", + "target_asset_type": "AI Model Version" + } + }, + { + "id": "019ccde7-d0da-7633-9ac2-ccbebdeeaa35", + "kind": "relation", + "name": "has version", + "public_id": "ModelHasVersion", + "cardinality": { + "min": 0, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "AI Base Model", + "target_asset_type": "AI Model Version" + } + }, + { + "id": "019ccde7-d0da-7633-9ac2-ccbebdeeaa36", + "kind": "relation", + "name": "is deployed by", + "public_id": "ModelVersionIsDeployedByModelDeployment", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "AI Model Version", + "target_asset_type": "AI Model Deployment" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-000000011003", + "kind": "asset_type", + "name": "Acronym", + "public_id": "Acronym", + "parent_name": "Business Term", + "attributes": [], + "relations": [] + }, + { + "id": "00000000-0000-0000-0000-090000010014", + "kind": "asset_type", + "name": "Adaptive Rule Score", + "public_id": "AdaptiveRuleScore", + "parent_name": "Data Quality Metric", + "attributes": [ + { + "id": "01922077-c833-706c-902c-59b99a696166", + "kind": "attribute", + "name": "Rows Failed", + "public_id": "RowsFailed", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "01922077-c833-706c-902c-59b99a696167", + "kind": "attribute", + "name": "Loaded Rows", + "public_id": "LoadedRows", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "01922077-c833-706c-902c-59b99a696168", + "kind": "attribute", + "name": "Measurement", + "public_id": "Measurement", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "01922077-c833-706c-902c-59b99a696169", + "kind": "attribute", + "name": "Passing Fraction", + "public_id": "PassingFraction", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "01922077-c833-706c-902c-59b99a69616a", + "kind": "attribute", + "name": "Score Details", + "public_id": "ScoreDetails", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "01922077-c833-706c-902c-59b99a69616b", + "kind": "attribute", + "name": "Score Status", + "public_id": "ScoreStatus", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "01922077-d09c-7abe-b19f-46a3ce1ddff2", + "kind": "attribute", + "name": "Finding Type", + "public_id": "FindingType", + "cardinality": { + "min": 1, + "max": 1 + } + } + ], + "relations": [ + { + "id": "01922077-d882-7b5e-a879-34e1b350c366", + "kind": "relation", + "name": "executed by", + "public_id": "DataQualityRuleExecutedByDataQualityMetric", + "cardinality": { + "min": 1, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "Data Quality Rule", + "target_asset_type": "Data Quality Metric" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-000000031305", + "kind": "asset_type", + "name": "Assessment Review", + "public_id": "AssessmentReview", + "parent_name": "Governance Asset", + "attributes": [ + { + "id": "98cb6ecf-e24a-43f8-9733-cbd8062640b1", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "9ad6e05f-8ef2-4038-84fb-74d560be5024", + "kind": "attribute", + "name": "Start date", + "public_id": "StartDate", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "cd1c47d9-1a09-48ae-94ab-33a07f52d5c8", + "kind": "attribute", + "name": "Approval date", + "public_id": "ApprovalDate", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "fccc220a-bac9-4f33-b762-6e4f5110a935", + "kind": "attribute", + "name": "Submission date", + "public_id": "SubmissionDate", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "e0c6321d-79b8-42c8-a3f0-5f3b16b28029", + "kind": "attribute", + "name": "Assessment link", + "public_id": "AssessmentLink", + "cardinality": { + "min": 1, + "max": 1 + } + } + ], + "relations": [ + { + "id": "5c4aa5a6-1474-4289-9d83-8aa9cecbc5b1", + "kind": "relation", + "name": "is assessed by", + "public_id": "AssetIsAssessedByAssessmentReview", + "cardinality": { + "min": 0, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "Asset", + "target_asset_type": "Assessment Review" + } + }, + { + "id": "01922078-0a3a-775b-8eee-78fbd0520640", + "kind": "relation", + "name": "is a retake of", + "public_id": "AssessmentReviewIsARetakeOfAssessmentReview", + "cardinality": { + "min": 0, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "Assessment Review", + "target_asset_type": "Assessment Review" + } + }, + { + "id": "01922078-0a3a-775b-8eee-78fbd0520641", + "kind": "relation", + "name": "is a retake of", + "public_id": "AssessmentReviewIsARetakeOfAssessmentReview", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Assessment Review", + "target_asset_type": "Assessment Review" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-000000031451", + "kind": "asset_type", + "name": "Azure AI Foundry Agent", + "public_id": "AzureAIFoundryAgent", + "parent_name": "AI Agent", + "attributes": [ + { + "id": "01957b35-cba9-7a5c-b337-492867ee1a18", + "kind": "attribute", + "name": "Instructions", + "public_id": "Instructions", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01957b35-cba9-7a5c-b337-492867ee1a19", + "kind": "attribute", + "name": "Document creation date", + "public_id": "DocumentCreationDate", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0196bf61-646a-75f2-b4cf-359dc9b2cec0", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "01957b35-cf0e-7f77-8483-44ea34ff8ef1", + "kind": "relation", + "name": "uses", + "public_id": "AIUseCaseUsesAIAgent", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "AI Use Case", + "target_asset_type": "AI Agent" + } + }, + { + "id": "01957b35-cf0e-7f77-8483-44ea34ff8ef2", + "kind": "relation", + "name": "uses", + "public_id": "AIAgentUsesAIModel", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "AI Agent", + "target_asset_type": "AI Model Version" + } + }, + { + "id": "01957b35-cf0e-7f77-8483-44ea34ff8ef3", + "kind": "relation", + "name": "uses", + "public_id": "AIAgentUsesAIAgent", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "AI Agent", + "target_asset_type": "AI Agent" + } + }, + { + "id": "01957b35-cf0e-7f77-8483-44ea34ff8ef4", + "kind": "relation", + "name": "uses", + "public_id": "AIAgentUsesAIAgent", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "AI Agent", + "target_asset_type": "AI Agent" + } + }, + { + "id": "01992462-0f92-751e-8f66-7ca4d79630df", + "kind": "relation", + "name": "contains", + "public_id": "AIAgentContainsFileContainer", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "AI Agent", + "target_asset_type": "Storage Container" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-000000031411", + "kind": "asset_type", + "name": "Azure AI Foundry Model Version", + "public_id": "AzureAIFoundryModel", + "parent_name": "AI Model Version", + "attributes": [ + { + "id": "01957b35-cc6c-7c14-a622-2febc9e87ac7", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01957b35-cc6c-7c14-a622-2febc9e87ac8", + "kind": "attribute", + "name": "Model Accuracy", + "public_id": "ModelAccuracy", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01957b35-cc6c-7c14-a622-2febc9e87ac9", + "kind": "attribute", + "name": "Model Precision", + "public_id": "ModelPrecision", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01957b35-cc6c-7c14-a622-2febc9e87aca", + "kind": "attribute", + "name": "Mean Squared Error", + "public_id": "MeanSquaredError", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01957b35-cc6c-7c14-a622-2febc9e87acb", + "kind": "attribute", + "name": "Mean Absolute Error", + "public_id": "MeanAbsoluteError", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01957b35-cc6c-7c14-a622-2febc9e87acc", + "kind": "attribute", + "name": "Model Type", + "public_id": "ModelType", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01957b35-cc6c-7c14-a622-2febc9e87ace", + "kind": "attribute", + "name": "Feature Importance", + "public_id": "FeatureImportance", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01957b35-cc6c-7c14-a622-2febc9e87ad0", + "kind": "attribute", + "name": "Version", + "public_id": "Version", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01957b35-cc6c-7c14-a622-2febc9e87ad1", + "kind": "attribute", + "name": "Repository", + "public_id": "Repository", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01974f91-b7b2-7108-b217-bc1b45a1b841", + "kind": "attribute", + "name": "Request Rate Limit", + "public_id": "RequestRateLimit", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01974f91-b7b2-7108-b217-bc1b45a1b842", + "kind": "attribute", + "name": "Token Rate Limit", + "public_id": "TokenRateLimit", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0199b495-e71a-7925-9397-4b4aa7ddcd89", + "kind": "attribute", + "name": "Required Content Filtering", + "public_id": "ContentFilter", + "cardinality": { + "min": 0, + "max": null + } + } + ], + "relations": [ + { + "id": "01957b35-cc6c-7c14-a622-2febc9e87acf", + "kind": "relation", + "name": "uses", + "public_id": "AIUseCaseUsesAIModel", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "AI Use Case", + "target_asset_type": "AI Model Version" + } + }, + { + "id": "01957b35-cc6c-7c14-a622-2febc9e87ad2", + "kind": "relation", + "name": "trained by", + "public_id": "AIModelTrainedByAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "AI Model Version", + "target_asset_type": "Asset" + } + }, + { + "id": "01957b35-cc6c-7c14-a622-2febc9e87ad5", + "kind": "relation", + "name": "is provided by", + "public_id": "AIModelProvidedByVendor", + "cardinality": { + "min": 0, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "AI Model Version", + "target_asset_type": "Vendor" + } + }, + { + "id": "01957b35-cc6c-7c14-a622-2febc9e87ad6", + "kind": "relation", + "name": "uses", + "public_id": "AIModelUsesAIModel", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "AI Model Version", + "target_asset_type": "AI Model Version" + } + }, + { + "id": "01957b35-cc6c-7c14-a622-2febc9e87ad7", + "kind": "relation", + "name": "uses", + "public_id": "AIModelUsesAIModel", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "AI Model Version", + "target_asset_type": "AI Model Version" + } + }, + { + "id": "01957b35-cc6c-7c14-a622-2febc9e87ad8", + "kind": "relation", + "name": "complies to", + "public_id": "AssetCompliesToGovernanceAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Asset", + "target_asset_type": "Governance Asset" + } + }, + { + "id": "01957b35-cf63-7798-b4e5-288e9c7176b7", + "kind": "relation", + "name": "uses", + "public_id": "AIAgentUsesAIModel", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "AI Agent", + "target_asset_type": "AI Model Version" + } + }, + { + "id": "01992462-0e23-7f51-a2d5-cb1fd2b79554", + "kind": "relation", + "name": "contains", + "public_id": "AIModelContainsFileContainer", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "AI Model Version", + "target_asset_type": "Storage Container" + } + }, + { + "id": "01992462-1ec0-7558-b7a1-41c4c52fc367", + "kind": "relation", + "name": "deploys", + "public_id": "AIProjectDeploysAIModel", + "cardinality": { + "min": 0, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "AI Project", + "target_asset_type": "AI Model Version" + } + }, + { + "id": "019ccde7-d03e-7137-9517-b46c3db1776b", + "kind": "relation", + "name": "has version", + "public_id": "ModelHasVersion", + "cardinality": { + "min": 0, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "AI Base Model", + "target_asset_type": "AI Model Version" + } + }, + { + "id": "019ccde7-d03f-7258-9c0b-4e0405cbbedc", + "kind": "relation", + "name": "is deployed by", + "public_id": "ModelVersionIsDeployedByModelDeployment", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "AI Model Version", + "target_asset_type": "AI Model Deployment" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-000000031421", + "kind": "asset_type", + "name": "Azure AI Foundry Project", + "public_id": "AzureAIFoundryProject", + "parent_name": "AI Project", + "attributes": [ + { + "id": "01992462-0a40-7f6e-8335-57df0510c3a0", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01992462-0a41-7feb-abdd-7eee16837d29", + "kind": "attribute", + "name": "Project Id", + "public_id": "ProjectId", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "01992462-0a41-7feb-abdd-7eee16837d2a", + "kind": "attribute", + "name": "Location", + "public_id": "Location", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01992462-0a41-7feb-abdd-7eee16837d2b", + "kind": "attribute", + "name": "URL", + "public_id": "Url", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "01992462-0a41-7feb-abdd-7eee16837d2c", + "kind": "relation", + "name": "deploys", + "public_id": "AIProjectDeploysAIModel", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "AI Project", + "target_asset_type": "AI Model Version" + } + }, + { + "id": "01992462-0a41-7feb-abdd-7eee16837d2d", + "kind": "relation", + "name": "uses", + "public_id": "AIUseCaseUsesAIProject", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "AI Use Case", + "target_asset_type": "AI Project" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-000000031407", + "kind": "asset_type", + "name": "Azure AI Model Version", + "public_id": "AzureAIModel", + "parent_name": "AI Model Version", + "attributes": [ + { + "id": "01922078-0edc-79e0-ab21-750df507b138", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922078-0edc-79e0-ab21-750df507b139", + "kind": "attribute", + "name": "Model Accuracy", + "public_id": "ModelAccuracy", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922078-0edc-79e0-ab21-750df507b13a", + "kind": "attribute", + "name": "Model Precision", + "public_id": "ModelPrecision", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922078-0edc-79e0-ab21-750df507b13b", + "kind": "attribute", + "name": "Mean Squared Error", + "public_id": "MeanSquaredError", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922078-0edc-79e0-ab21-750df507b13c", + "kind": "attribute", + "name": "Mean Absolute Error", + "public_id": "MeanAbsoluteError", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922078-0edc-79e0-ab21-750df507b13d", + "kind": "attribute", + "name": "Model Type", + "public_id": "ModelType", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922078-0edc-79e0-ab21-750df507b13f", + "kind": "attribute", + "name": "Feature Importance", + "public_id": "FeatureImportance", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922078-0edc-79e0-ab21-750df507b141", + "kind": "attribute", + "name": "Version", + "public_id": "Version", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922078-0edc-79e0-ab21-750df507b142", + "kind": "attribute", + "name": "Description from source system", + "public_id": "DescriptionFromSourceSystem", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922078-0edc-79e0-ab21-750df507b143", + "kind": "attribute", + "name": "Repository", + "public_id": "Repository", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0199b495-e73d-7371-bb82-8750712dee0e", + "kind": "attribute", + "name": "Required Content Filtering", + "public_id": "ContentFilter", + "cardinality": { + "min": 0, + "max": null + } + } + ], + "relations": [ + { + "id": "01922078-0edc-79e0-ab21-750df507b140", + "kind": "relation", + "name": "uses", + "public_id": "AIUseCaseUsesAIModel", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "AI Use Case", + "target_asset_type": "AI Model Version" + } + }, + { + "id": "01922078-0edc-79e0-ab21-750df507b144", + "kind": "relation", + "name": "trained by", + "public_id": "AIModelTrainedByAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "AI Model Version", + "target_asset_type": "Asset" + } + }, + { + "id": "01922078-0edc-79e0-ab21-750df507b147", + "kind": "relation", + "name": "is provided by", + "public_id": "AIModelProvidedByVendor", + "cardinality": { + "min": 0, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "AI Model Version", + "target_asset_type": "Vendor" + } + }, + { + "id": "01922078-0edc-79e0-ab21-750df507b148", + "kind": "relation", + "name": "uses", + "public_id": "AIModelUsesAIModel", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "AI Model Version", + "target_asset_type": "AI Model Version" + } + }, + { + "id": "01922078-0edc-79e0-ab21-750df507b149", + "kind": "relation", + "name": "uses", + "public_id": "AIModelUsesAIModel", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "AI Model Version", + "target_asset_type": "AI Model Version" + } + }, + { + "id": "01922078-0edc-79e0-ab21-750df507b14a", + "kind": "relation", + "name": "complies to", + "public_id": "AssetCompliesToGovernanceAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Asset", + "target_asset_type": "Governance Asset" + } + }, + { + "id": "01992462-0e53-778f-9a13-ec7c86545d28", + "kind": "relation", + "name": "contains", + "public_id": "AIModelContainsFileContainer", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "AI Model Version", + "target_asset_type": "Storage Container" + } + }, + { + "id": "01992462-1ea7-7198-aee5-effa2a3406d0", + "kind": "relation", + "name": "deploys", + "public_id": "AIProjectDeploysAIModel", + "cardinality": { + "min": 0, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "AI Project", + "target_asset_type": "AI Model Version" + } + }, + { + "id": "019ccde7-cfa2-7638-85c5-436011b22496", + "kind": "relation", + "name": "has version", + "public_id": "ModelHasVersion", + "cardinality": { + "min": 0, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "AI Base Model", + "target_asset_type": "AI Model Version" + } + }, + { + "id": "019ccde7-cfa2-7638-85c5-436011b22497", + "kind": "relation", + "name": "is deployed by", + "public_id": "ModelVersionIsDeployedByModelDeployment", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "AI Model Version", + "target_asset_type": "AI Model Deployment" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-090000000006", + "kind": "asset_type", + "name": "BI Data Attribute", + "public_id": "BIDataAttribute", + "parent_name": "Data Attribute", + "attributes": [], + "relations": [] + }, + { + "id": "00000000-0000-0000-0000-090000000007", + "kind": "asset_type", + "name": "BI Data Entity", + "public_id": "BIDataEntity", + "parent_name": "Data Entity", + "attributes": [ + { + "id": "218497e8-72c8-41df-8f58-6475e110290e", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "7916bbcc-44cb-46c9-85e7-c9f1e2a4996c", + "kind": "attribute", + "name": "Descriptive Example", + "public_id": "DescriptiveExample", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "c1658bd4-d851-4866-8d38-55241d3f9f90", + "kind": "attribute", + "name": "Location", + "public_id": "Location", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "6337b2f6-ff7f-4bb7-a199-2163439513c9", + "kind": "attribute", + "name": "Note", + "public_id": "Note", + "cardinality": { + "min": 0, + "max": null + } + } + ], + "relations": [ + { + "id": "54060bab-77e7-4574-a81c-92a4dd8b9e43", + "kind": "relation", + "name": "contains", + "public_id": "DataEntityContainsDataAttribute", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Entity", + "target_asset_type": "Data Attribute" + } + }, + { + "id": "9a2dc2d5-be67-48b3-b891-6a4ad245bddb", + "kind": "relation", + "name": "represents", + "public_id": "BusinessAssetRepresentsDataAsset", + "cardinality": { + "min": 1, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Asset", + "target_asset_type": "Data Asset" + } + }, + { + "id": "5aff5ae7-bf76-48e5-a21e-6b62549c0c86", + "kind": "relation", + "name": "implemented in", + "public_id": "DataAssetImplementedInTechnologyAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Asset", + "target_asset_type": "Technology Asset" + } + }, + { + "id": "203a07ee-9682-44d9-9fcd-6bda7ff4391f", + "kind": "relation", + "name": "governed by", + "public_id": "AssetGovernedByGovernanceAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Asset", + "target_asset_type": "Governance Asset" + } + }, + { + "id": "4a6280c1-d8cd-463a-8835-341f773f7846", + "kind": "relation", + "name": "impacts", + "public_id": "IssueImpactsAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Issue", + "target_asset_type": "Asset" + } + }, + { + "id": "e776780b-4018-4e42-8540-d83b1b0a2a3e", + "kind": "relation", + "name": "source of", + "public_id": "DataStructureSourceOfMappingSpecification", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Structure", + "target_asset_type": "Mapping Specification" + } + }, + { + "id": "bdf278d0-843a-4d67-a679-b2d03e8e4296", + "kind": "relation", + "name": "target of", + "public_id": "DataStructureTargetOfMappingSpecification", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Structure", + "target_asset_type": "Mapping Specification" + } + }, + { + "id": "b3538cf6-82af-4e41-8bbc-486d7ba1779d", + "kind": "relation", + "name": "is part of", + "public_id": "DataEntityIsPartOfDataModel", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Entity", + "target_asset_type": "Data Model" + } + }, + { + "id": "99c33181-ed56-48d5-943b-863e0ea420c1", + "kind": "relation", + "name": "classifies", + "public_id": "BusinessDimensionClassifiesAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Dimension", + "target_asset_type": "Asset" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-090000000008", + "kind": "asset_type", + "name": "BI Data Model", + "public_id": "BIDataModel", + "parent_name": "Data Model", + "attributes": [], + "relations": [] + }, + { + "id": "00000000-0000-0000-0000-090000000009", + "kind": "asset_type", + "name": "BI Data Set", + "public_id": "BIDataSet", + "parent_name": "Data Set", + "attributes": [], + "relations": [] + }, + { + "id": "00000000-0000-0000-0000-090000000005", + "kind": "asset_type", + "name": "BI Data Source", + "public_id": "BIDataSource", + "parent_name": "System", + "attributes": [], + "relations": [] + }, + { + "id": "00000000-0000-0000-0000-090000000002", + "kind": "asset_type", + "name": "BI Folder", + "public_id": "BIFolder", + "parent_name": "Business Dimension", + "attributes": [], + "relations": [] + }, + { + "id": "00000000-0000-0000-0000-090000000003", + "kind": "asset_type", + "name": "BI Report", + "public_id": "BIReport", + "parent_name": "Report", + "attributes": [ + { + "id": "ad99c4b3-fd2a-4145-923b-bb756c991540", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "83fdec39-9258-44fb-a04c-398e29744ad0", + "kind": "attribute", + "name": "Definition", + "public_id": "Definition", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "3012e0fe-50ce-44e2-8cec-94c78f46506b", + "kind": "attribute", + "name": "Descriptive Example", + "public_id": "DescriptiveExample", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "a6bee9de-a35a-4aa8-8e72-4d32d2d8ecaa", + "kind": "attribute", + "name": "Location", + "public_id": "Location", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "10bd3c04-81cc-4df2-b5a1-58fdbb3b690a", + "kind": "attribute", + "name": "Abbreviation", + "public_id": "Abbreviation", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "3529b1c9-251f-4fbe-bfea-1170eec0b7d5", + "kind": "attribute", + "name": "Inclusion Scenario", + "public_id": "InclusionScenario", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "2627750c-7f30-405f-acc8-690fdc3524fa", + "kind": "attribute", + "name": "Scope", + "public_id": "Scope", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "bc573fd0-6eeb-43dd-bd07-55107baa34f9", + "kind": "attribute", + "name": "Frequency", + "public_id": "Frequency", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "f03625cd-3930-4d7b-94d8-ae1355b2057b", + "kind": "attribute", + "name": "Security Classification", + "public_id": "SecurityClassification", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "b9f4123b-2a67-4787-be4c-3d30bb991c00", + "kind": "attribute", + "name": "Last Review Date", + "public_id": "LastReviewDate", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "01922077-b79d-72ce-aa58-0abd2e051802", + "kind": "attribute", + "name": "Certified", + "public_id": "Certified", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-b79d-72ce-aa58-0abd2e051804", + "kind": "attribute", + "name": "Document creation date", + "public_id": "DocumentCreationDate", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-b79d-72ce-aa58-0abd2e051805", + "kind": "attribute", + "name": "Document modification date", + "public_id": "DocumentModificationDate", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-b79d-72ce-aa58-0abd2e051806", + "kind": "attribute", + "name": "Document size", + "public_id": "DocumentSize", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-b79d-72ce-aa58-0abd2e051807", + "kind": "attribute", + "name": "Report Image", + "public_id": "ReportImage", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-b79d-72ce-aa58-0abd2e051808", + "kind": "attribute", + "name": "URL", + "public_id": "Url", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-b79d-72ce-aa58-0abd2e051809", + "kind": "attribute", + "name": "Owner in Source", + "public_id": "OwnerInSource", + "cardinality": { + "min": 0, + "max": null + } + } + ], + "relations": [ + { + "id": "138a80c9-6bda-47aa-837d-6821ea09af40", + "kind": "relation", + "name": "contained in", + "public_id": "ReportAttributeContainedInReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report Attribute", + "target_asset_type": "Report" + } + }, + { + "id": "a2440ee6-2900-4799-95b6-cff19c437984", + "kind": "relation", + "name": "groups", + "public_id": "BusinessAssetGroupsBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Asset", + "target_asset_type": "Business Asset" + } + }, + { + "id": "cc2be310-fc3a-4b09-899a-0287c10c2712", + "kind": "relation", + "name": "groups", + "public_id": "BusinessAssetGroupsBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Asset", + "target_asset_type": "Business Asset" + } + }, + { + "id": "92ab1792-b7b0-46bd-b532-97b5a2f94f29", + "kind": "relation", + "name": "classifies", + "public_id": "BusinessDimensionClassifiesAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Dimension", + "target_asset_type": "Asset" + } + }, + { + "id": "d8393415-582f-45dd-86b8-8b3795e512ec", + "kind": "relation", + "name": "associates", + "public_id": "LineOfBusinessAssociatesBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Line of Business", + "target_asset_type": "Business Asset" + } + }, + { + "id": "0cc1c9c7-b846-4a16-86cd-1ee33cc4b564", + "kind": "relation", + "name": "produces", + "public_id": "BusinessProcessProducesBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Process", + "target_asset_type": "Business Asset" + } + }, + { + "id": "37925090-75e9-4713-a711-9a1cbafea860", + "kind": "relation", + "name": "impacts", + "public_id": "IssueImpactsAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Issue", + "target_asset_type": "Asset" + } + }, + { + "id": "01922077-b79d-72ce-aa58-0abd2e05180a", + "kind": "relation", + "name": "contains", + "public_id": "BIReportContainsBIDataModel", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "BI Report", + "target_asset_type": "BI Data Model" + } + }, + { + "id": "01922077-b79d-72ce-aa58-0abd2e05180b", + "kind": "relation", + "name": "groups", + "public_id": "BusinessDimensionGroupsReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Dimension", + "target_asset_type": "Report" + } + }, + { + "id": "01922077-b79d-72ce-aa58-0abd2e05180c", + "kind": "relation", + "name": "is source for", + "public_id": "DataAssetIsSourceForBIReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Asset", + "target_asset_type": "BI Report" + } + }, + { + "id": "01922077-b79d-72ce-aa58-0abd2e05180d", + "kind": "relation", + "name": "related to", + "public_id": "ReportRelatedToBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Business Asset" + } + }, + { + "id": "01922077-b79d-72ce-aa58-0abd2e05180e", + "kind": "relation", + "name": "groups", + "public_id": "ReportGroupsReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Report" + } + }, + { + "id": "01922077-b79d-72ce-aa58-0abd2e05180f", + "kind": "relation", + "name": "groups", + "public_id": "ReportGroupsReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Report" + } + }, + { + "id": "01922077-b79d-72ce-aa58-0abd2e051810", + "kind": "relation", + "name": "uses", + "public_id": "ReportUsesDataAttribute", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Data Attribute" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-090000000004", + "kind": "asset_type", + "name": "BI Report Attribute", + "public_id": "BIReportAttribute", + "parent_name": "Report Attribute", + "attributes": [ + { + "id": "b8ffb9cd-f978-4ff6-b1b5-1328e465b40b", + "kind": "attribute", + "name": "Definition", + "public_id": "Definition", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "73c5f566-d8b7-4e61-b752-cded7cc01f6f", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "e7375b7d-9587-4543-ba8f-3b08d95bff64", + "kind": "attribute", + "name": "Location", + "public_id": "Location", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "bb576e92-4d8f-4c96-8b22-d214a017d916", + "kind": "attribute", + "name": "Technical Data Type", + "public_id": "TechnicalDataType", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "7ad628e5-cf88-4870-b3a2-badaa9fda7aa", + "kind": "attribute", + "name": "Data Type Precision", + "public_id": "DataTypePrecision", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "fac0e93f-8b15-445b-b0d5-bffbad6bd7dc", + "kind": "attribute", + "name": "Note", + "public_id": "Note", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "ef436cf8-b131-44cf-b41a-4d81f6c98b94", + "kind": "attribute", + "name": "Inclusion Scenario", + "public_id": "InclusionScenario", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "034845cf-6c05-4b19-aa66-ee876c85ce30", + "kind": "attribute", + "name": "Scope", + "public_id": "Scope", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "c93c3e83-088d-40c1-ad37-268a2446626a", + "kind": "attribute", + "name": "Frequency", + "public_id": "Frequency", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "1ae71f00-a2df-4fe5-b0f6-ac961879019a", + "kind": "attribute", + "name": "Security Classification", + "public_id": "SecurityClassification", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "88cedf02-baa4-474d-bf0e-1eae71c4efbb", + "kind": "attribute", + "name": "Last Review Date", + "public_id": "LastReviewDate", + "cardinality": { + "min": 0, + "max": null + } + } + ], + "relations": [ + { + "id": "734de651-3da1-48ed-b0dc-bf98b90ada5f", + "kind": "relation", + "name": "contained in", + "public_id": "ReportAttributeContainedInReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report Attribute", + "target_asset_type": "Report" + } + }, + { + "id": "c2a8e99a-8d97-4bf2-b1c5-3429bda548b0", + "kind": "relation", + "name": "classifies", + "public_id": "BusinessDimensionClassifiesAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Dimension", + "target_asset_type": "Asset" + } + }, + { + "id": "94f90cbe-de02-4674-97cd-6d759c82f254", + "kind": "relation", + "name": "represents", + "public_id": "BusinessAssetRepresentsDataAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Asset", + "target_asset_type": "Data Asset" + } + }, + { + "id": "9ae8923f-0374-4b3d-bb49-840adf36649c", + "kind": "relation", + "name": "impacts", + "public_id": "IssueImpactsAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Issue", + "target_asset_type": "Asset" + } + }, + { + "id": "5ebefb08-8b9d-433d-bf6c-bdcbca773e09", + "kind": "relation", + "name": "sourced from", + "public_id": "ReportAttributeSourcedFromDataAttribute", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report Attribute", + "target_asset_type": "Data Attribute" + } + }, + { + "id": "41e20d32-da63-40e4-bbb0-b93dd8d97be1", + "kind": "relation", + "name": "qualifies", + "public_id": "BusinessQualifierQualifiesAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Qualifier", + "target_asset_type": "Asset" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-090000000001", + "kind": "asset_type", + "name": "BI Server", + "public_id": "BIServer", + "parent_name": "Server", + "attributes": [], + "relations": [] + }, + { + "id": "00000000-0000-0000-0000-000000031101", + "kind": "asset_type", + "name": "Business Asset", + "public_id": "BusinessAsset", + "parent_name": "Asset", + "attributes": [ + { + "id": "e1e49019-33a6-4f41-b68a-b0d5bbef6bda", + "kind": "attribute", + "name": "Definition", + "public_id": "Definition", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "f60f2f29-7c00-4d14-a8a6-03c836da691f", + "kind": "attribute", + "name": "Descriptive Example", + "public_id": "DescriptiveExample", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "cd3f03b9-6658-4ba1-a714-d2315d319c07", + "kind": "attribute", + "name": "Note", + "public_id": "Note", + "cardinality": { + "min": 0, + "max": null + } + } + ], + "relations": [ + { + "id": "ae1c3ee9-7e05-41da-95e9-c8e2145d56ce", + "kind": "relation", + "name": "groups", + "public_id": "BusinessAssetGroupsBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Asset", + "target_asset_type": "Business Asset" + } + }, + { + "id": "4a72ef33-c80b-4208-bdf5-e430d32bf55d", + "kind": "relation", + "name": "groups", + "public_id": "BusinessAssetGroupsBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Asset", + "target_asset_type": "Business Asset" + } + }, + { + "id": "5dad0f10-85cb-49d6-b44d-e777acbc550d", + "kind": "relation", + "name": "represents", + "public_id": "BusinessAssetRepresentsDataAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Asset", + "target_asset_type": "Data Asset" + } + }, + { + "id": "dbe3b0f1-fa1c-4cd1-ad4c-fc8e60b6f8f9", + "kind": "relation", + "name": "classifies", + "public_id": "BusinessDimensionClassifiesAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Dimension", + "target_asset_type": "Asset" + } + }, + { + "id": "2735a1c1-180e-4ebd-920c-720af7856075", + "kind": "relation", + "name": "has acronym", + "public_id": "BusinessAssetHasAcronymAcronym", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Asset", + "target_asset_type": "Acronym" + } + }, + { + "id": "30ea1443-d37d-4227-a73b-5fa4a016e942", + "kind": "relation", + "name": "associates", + "public_id": "LineOfBusinessAssociatesBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Line of Business", + "target_asset_type": "Business Asset" + } + }, + { + "id": "bba50325-c052-434d-8e2e-d742e5220c9e", + "kind": "relation", + "name": "produces", + "public_id": "BusinessProcessProducesBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Process", + "target_asset_type": "Business Asset" + } + }, + { + "id": "7ae12043-618e-4b39-b572-a2c079a8d5ea", + "kind": "relation", + "name": "complies to", + "public_id": "AssetCompliesToGovernanceAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Asset", + "target_asset_type": "Governance Asset" + } + }, + { + "id": "c42ee9ad-ccb5-43b0-a5a2-357d9b6d1eb3", + "kind": "relation", + "name": "consumes", + "public_id": "BusinessProcessConsumesBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Process", + "target_asset_type": "Business Asset" + } + }, + { + "id": "f90c6c6a-24a7-480f-87c4-859fd135066f", + "kind": "relation", + "name": "related to", + "public_id": "DataSetRelatedToBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Set", + "target_asset_type": "Business Asset" + } + }, + { + "id": "2b3cc2cd-86a2-4a68-94e8-d582714003e5", + "kind": "relation", + "name": "impacts", + "public_id": "IssueImpactsAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Issue", + "target_asset_type": "Asset" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-000000031105", + "kind": "asset_type", + "name": "Business Dimension", + "public_id": "BusinessDimension", + "parent_name": "Business Asset", + "attributes": [ + { + "id": "25d17347-7e2f-487d-b2e7-51cbe3a06f5f", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 1, + "max": null + } + } + ], + "relations": [ + { + "id": "1e2dc95b-d466-4c68-a4cc-0b88357f2ee2", + "kind": "relation", + "name": "impacts", + "public_id": "IssueImpactsAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Issue", + "target_asset_type": "Asset" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-000000031103", + "kind": "asset_type", + "name": "Business Process", + "public_id": "BusinessProcess", + "parent_name": "Business Dimension", + "attributes": [ + { + "id": "d3f378be-242a-4e54-bbc5-cbd75390fcb5", + "kind": "attribute", + "name": "Definition", + "public_id": "Definition", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "6c76d9c2-1e89-4476-88b6-67b39b9cf4fd", + "kind": "attribute", + "name": "Descriptive Example", + "public_id": "DescriptiveExample", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "c3e81eb1-9323-4ac5-a6aa-7a1a38aa5284", + "kind": "attribute", + "name": "Note", + "public_id": "Note", + "cardinality": { + "min": 0, + "max": null + } + } + ], + "relations": [ + { + "id": "99611342-4d68-4e96-8e2a-56f8b01a74fe", + "kind": "relation", + "name": "groups", + "public_id": "BusinessAssetGroupsBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Asset", + "target_asset_type": "Business Asset" + } + }, + { + "id": "59ef1e26-e92e-4d2a-aa24-d99e959e1282", + "kind": "relation", + "name": "groups", + "public_id": "BusinessAssetGroupsBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Asset", + "target_asset_type": "Business Asset" + } + }, + { + "id": "876e56c0-f89d-4702-b4f1-d301488ee8a5", + "kind": "relation", + "name": "represents", + "public_id": "BusinessAssetRepresentsDataAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Asset", + "target_asset_type": "Data Asset" + } + }, + { + "id": "6cf55f9c-5cc1-4d24-94cb-5fa8b71527ef", + "kind": "relation", + "name": "classifies", + "public_id": "BusinessDimensionClassifiesAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Dimension", + "target_asset_type": "Asset" + } + }, + { + "id": "5f57ab6d-b4ba-4a06-be62-d9ca6611387a", + "kind": "relation", + "name": "classifies", + "public_id": "BusinessDimensionClassifiesAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Dimension", + "target_asset_type": "Asset" + } + }, + { + "id": "0fc5d278-778b-49d6-9ab8-796d5d9af294", + "kind": "relation", + "name": "has acronym", + "public_id": "BusinessAssetHasAcronymAcronym", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Asset", + "target_asset_type": "Acronym" + } + }, + { + "id": "6166772c-b3d1-4d60-9cd2-38e65c2e58b4", + "kind": "relation", + "name": "associates", + "public_id": "LineOfBusinessAssociatesBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Line of Business", + "target_asset_type": "Business Asset" + } + }, + { + "id": "c2f7b81e-7fb5-49f9-b7b9-1c1841390595", + "kind": "relation", + "name": "produces", + "public_id": "BusinessProcessProducesBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Process", + "target_asset_type": "Business Asset" + } + }, + { + "id": "0c5ffb9e-2a7a-4d0c-a12f-93f687e4dd6f", + "kind": "relation", + "name": "produces", + "public_id": "BusinessProcessProducesBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Process", + "target_asset_type": "Business Asset" + } + }, + { + "id": "8d43a2f4-dfa6-4c80-b93f-c2e5b3e35e71", + "kind": "relation", + "name": "complies to", + "public_id": "AssetCompliesToGovernanceAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Asset", + "target_asset_type": "Governance Asset" + } + }, + { + "id": "4eb114a2-6399-4085-882d-e1601b1a61de", + "kind": "relation", + "name": "consumes", + "public_id": "BusinessProcessConsumesBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Process", + "target_asset_type": "Business Asset" + } + }, + { + "id": "d9d03612-f3f7-4f7a-b5e6-b951667e512d", + "kind": "relation", + "name": "consumes", + "public_id": "BusinessProcessConsumesBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Process", + "target_asset_type": "Business Asset" + } + }, + { + "id": "7f33aee7-f122-4607-a50f-3644835a03e8", + "kind": "relation", + "name": "related to", + "public_id": "DataSetRelatedToBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Set", + "target_asset_type": "Business Asset" + } + }, + { + "id": "9156bbe1-3845-4c2e-a58e-07192932c61a", + "kind": "relation", + "name": "impacts", + "public_id": "IssueImpactsAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Issue", + "target_asset_type": "Asset" + } + }, + { + "id": "ee03b2f9-12b4-4fc4-9541-bae6af7ab44c", + "kind": "relation", + "name": "is assessed by", + "public_id": "AssetIsAssessedByAssessmentReview", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Asset", + "target_asset_type": "Assessment Review" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-000000031115", + "kind": "asset_type", + "name": "Business Qualifier", + "public_id": "BusinessQualifier", + "parent_name": "Business Asset", + "attributes": [ + { + "id": "e5d34634-a6e3-4067-9bbe-965dc383987f", + "kind": "attribute", + "name": "Definition", + "public_id": "Definition", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "b879bfbe-7230-4319-aa93-21607c081fc4", + "kind": "attribute", + "name": "Descriptive Example", + "public_id": "DescriptiveExample", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "244c7bd0-6d88-4bf8-ae35-44def4972dcd", + "kind": "attribute", + "name": "Note", + "public_id": "Note", + "cardinality": { + "min": 0, + "max": null + } + } + ], + "relations": [ + { + "id": "e3f899b3-a5e6-421b-8055-b155865eaeb8", + "kind": "relation", + "name": "groups", + "public_id": "BusinessAssetGroupsBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Asset", + "target_asset_type": "Business Asset" + } + }, + { + "id": "7dda4053-ac8f-41bd-9b89-baf2222d8e67", + "kind": "relation", + "name": "groups", + "public_id": "BusinessAssetGroupsBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Asset", + "target_asset_type": "Business Asset" + } + }, + { + "id": "a0b68e16-aac3-4b98-a4b6-bc14904ddf4b", + "kind": "relation", + "name": "represents", + "public_id": "BusinessAssetRepresentsDataAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Asset", + "target_asset_type": "Data Asset" + } + }, + { + "id": "5658f661-5019-4811-bf58-deac0371165f", + "kind": "relation", + "name": "classifies", + "public_id": "BusinessDimensionClassifiesAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Dimension", + "target_asset_type": "Asset" + } + }, + { + "id": "b431c8db-357d-4f4a-b88c-a0f4a598ebcc", + "kind": "relation", + "name": "has acronym", + "public_id": "BusinessAssetHasAcronymAcronym", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Asset", + "target_asset_type": "Acronym" + } + }, + { + "id": "a23d5ffd-e7f6-4f45-95e2-5be38b013817", + "kind": "relation", + "name": "associates", + "public_id": "LineOfBusinessAssociatesBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Line of Business", + "target_asset_type": "Business Asset" + } + }, + { + "id": "48a205d4-bf6c-49e0-aa2e-cda618905948", + "kind": "relation", + "name": "produces", + "public_id": "BusinessProcessProducesBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Process", + "target_asset_type": "Business Asset" + } + }, + { + "id": "68db5850-e6cc-45c9-85bf-78b174cca888", + "kind": "relation", + "name": "complies to", + "public_id": "AssetCompliesToGovernanceAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Asset", + "target_asset_type": "Governance Asset" + } + }, + { + "id": "e0ae9c36-275e-4b7f-a322-31f038b20c23", + "kind": "relation", + "name": "consumes", + "public_id": "BusinessProcessConsumesBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Process", + "target_asset_type": "Business Asset" + } + }, + { + "id": "670eb36b-9296-4d9b-a70f-e8d68db963c8", + "kind": "relation", + "name": "related to", + "public_id": "DataSetRelatedToBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Set", + "target_asset_type": "Business Asset" + } + }, + { + "id": "f6be5f93-42ca-4627-a6be-2c8a7532288b", + "kind": "relation", + "name": "impacts", + "public_id": "IssueImpactsAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Issue", + "target_asset_type": "Asset" + } + }, + { + "id": "91a76f1d-025f-4847-b7d5-2e939c199526", + "kind": "relation", + "name": "qualifies", + "public_id": "BusinessQualifierQualifiesAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Qualifier", + "target_asset_type": "Asset" + } + }, + { + "id": "02af91e3-b77e-4ee5-85a1-dd22364d31df", + "kind": "relation", + "name": "qualifies", + "public_id": "BusinessQualifierQualifiesAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Qualifier", + "target_asset_type": "Asset" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-000000031204", + "kind": "asset_type", + "name": "Business Rule", + "public_id": "BusinessRule", + "parent_name": "Rule", + "attributes": [ + { + "id": "d20d4509-8d4b-4c35-ae70-fb22d6afa1d0", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "50415e72-80d9-4c0d-8ccf-3d8281dadf8d", + "kind": "attribute", + "name": "Purpose", + "public_id": "Purpose", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "02dd3a0b-e941-46b0-a3a1-ec398a662f91", + "kind": "attribute", + "name": "Descriptive Example", + "public_id": "DescriptiveExample", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "fe8768c5-deff-4aad-a75e-fd8a4f1f35d9", + "kind": "attribute", + "name": "Exception Scenario", + "public_id": "ExceptionScenario", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "bc5ba24a-db78-49ef-ba1b-6b7408b28f5f", + "kind": "attribute", + "name": "Measurement", + "public_id": "Measurement", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "bda07b8e-6768-40fb-b1d0-affba203668e", + "kind": "attribute", + "name": "Note", + "public_id": "Note", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "0a2dd6ff-e117-4d1d-83e3-0ddf0b63b8ee", + "kind": "attribute", + "name": "Inclusion Scenario", + "public_id": "InclusionScenario", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "c2c91d2c-fd21-43b4-a09a-422896efbf78", + "kind": "attribute", + "name": "Effective Start Date", + "public_id": "EffectiveStartDate", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "96b10471-0133-417b-8287-7ad7a4c9652c", + "kind": "attribute", + "name": "Effective End Date", + "public_id": "EffectiveEndDate", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "a081b2e5-7b8c-42be-a895-33265cb267de", + "kind": "attribute", + "name": "Loaded Rows", + "public_id": "LoadedRows", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "d6677e57-e5b9-4c1f-9dd1-b740a556e18d", + "kind": "attribute", + "name": "Non Conformity Score", + "public_id": "NonConformityScore", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "aa488b9f-e621-4df1-ba75-89e1ad77a52e", + "kind": "attribute", + "name": "Conformity Score", + "public_id": "ConformityScore", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "f55f9183-a913-45fb-b08a-8d2dd6104807", + "kind": "attribute", + "name": "Passing Fraction", + "public_id": "PassingFraction", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "e0db6be0-1c14-4edc-96eb-678951e31fc2", + "kind": "attribute", + "name": "Result", + "public_id": "Result", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "791dff28-4cbb-48aa-b7cb-7e8ab652c80e", + "kind": "relation", + "name": "groups", + "public_id": "GovernanceAssetGroupsGovernanceAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Governance Asset", + "target_asset_type": "Governance Asset" + } + }, + { + "id": "7fa304d1-83a2-4e42-b0dc-7680b6a39494", + "kind": "relation", + "name": "groups", + "public_id": "GovernanceAssetGroupsGovernanceAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Governance Asset", + "target_asset_type": "Governance Asset" + } + }, + { + "id": "871cc20a-fadb-4cab-baad-ba0741c81e72", + "kind": "relation", + "name": "complies to", + "public_id": "AssetCompliesToGovernanceAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Asset", + "target_asset_type": "Governance Asset" + } + }, + { + "id": "7819b129-a472-49a9-b057-fa03edc7135d", + "kind": "relation", + "name": "complies to", + "public_id": "AssetCompliesToGovernanceAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Asset", + "target_asset_type": "Governance Asset" + } + }, + { + "id": "3045cb39-c0b0-4b70-9a4c-79b073f1fe2a", + "kind": "relation", + "name": "governed by", + "public_id": "AssetGovernedByGovernanceAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Asset", + "target_asset_type": "Governance Asset" + } + }, + { + "id": "0f78afce-2b1a-482a-b6ec-99c5e5ac5f06", + "kind": "relation", + "name": "governed by", + "public_id": "AssetGovernedByGovernanceAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Asset", + "target_asset_type": "Governance Asset" + } + }, + { + "id": "a351548f-6ffc-4c48-98ab-15c673a9c760", + "kind": "relation", + "name": "is enforced by", + "public_id": "PolicyIsEnforcedByRule", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Policy", + "target_asset_type": "Rule" + } + }, + { + "id": "91ecf983-a549-4df0-8d49-4c3a927ae9ac", + "kind": "relation", + "name": "is implemented by", + "public_id": "RuleIsImplementedByBusinessRule", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Rule", + "target_asset_type": "Business Rule" + } + }, + { + "id": "333c6a13-41e1-4ba5-ba25-7120ea61c16a", + "kind": "relation", + "name": "is implemented by", + "public_id": "RuleIsImplementedByBusinessRule", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Rule", + "target_asset_type": "Business Rule" + } + }, + { + "id": "747c6a8e-6f5f-4d54-863e-9e94897c571f", + "kind": "relation", + "name": "impacts", + "public_id": "IssueImpactsAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Issue", + "target_asset_type": "Asset" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-000000011001", + "kind": "asset_type", + "name": "Business Term", + "public_id": "BusinessTerm", + "parent_name": "Business Asset", + "attributes": [ + { + "id": "2ec04542-cee3-4b06-8805-724cdf112040", + "kind": "attribute", + "name": "Definition", + "public_id": "Definition", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "2a95b947-2f52-42bc-b101-894b9af1beca", + "kind": "attribute", + "name": "Descriptive Example", + "public_id": "DescriptiveExample", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "5be3724b-3466-4439-8ea4-27b63631e2b0", + "kind": "attribute", + "name": "Note", + "public_id": "Note", + "cardinality": { + "min": 0, + "max": null + } + } + ], + "relations": [ + { + "id": "6385eb15-6e16-415e-950f-34bd76509d93", + "kind": "relation", + "name": "synonym", + "public_id": "BusinessTermSynonymBusinessTerm", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Term", + "target_asset_type": "Business Term" + } + }, + { + "id": "0645ad48-d147-4a33-89c5-0cf1240c17b3", + "kind": "relation", + "name": "synonym", + "public_id": "BusinessTermSynonymBusinessTerm", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Term", + "target_asset_type": "Business Term" + } + }, + { + "id": "990d4222-97ca-41f5-9ecc-4bf0ee6b4f56", + "kind": "relation", + "name": "has acronym", + "public_id": "BusinessAssetHasAcronymAcronym", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Asset", + "target_asset_type": "Acronym" + } + }, + { + "id": "0d3b65da-a7ab-4e32-988d-58c199e82849", + "kind": "relation", + "name": "has code", + "public_id": "BusinessTermHasCodeCodeValue", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Term", + "target_asset_type": "Code Value" + } + }, + { + "id": "daa72753-a6ba-4e73-aeb0-abb8b0ac4b36", + "kind": "relation", + "name": "groups", + "public_id": "BusinessAssetGroupsBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Asset", + "target_asset_type": "Business Asset" + } + }, + { + "id": "2841be7a-320d-4471-8ffe-7b27696f1117", + "kind": "relation", + "name": "groups", + "public_id": "BusinessAssetGroupsBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Asset", + "target_asset_type": "Business Asset" + } + }, + { + "id": "ab609a0b-1b68-4eb2-a074-9d4626bb9dd4", + "kind": "relation", + "name": "represents", + "public_id": "BusinessAssetRepresentsDataAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Asset", + "target_asset_type": "Data Asset" + } + }, + { + "id": "461bd7d3-c8bf-4119-8fcc-83a3a8d73e59", + "kind": "relation", + "name": "allowed value", + "public_id": "BusinessTermAllowedValueBusinessTerm", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Term", + "target_asset_type": "Business Term" + } + }, + { + "id": "5fe94e4c-22f5-41ee-8061-1ad011b439d1", + "kind": "relation", + "name": "allowed value", + "public_id": "BusinessTermAllowedValueBusinessTerm", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Term", + "target_asset_type": "Business Term" + } + }, + { + "id": "8ea9f18f-cd2b-498c-b9a1-68c26d373084", + "kind": "relation", + "name": "system of record for", + "public_id": "TechnologyAssetSystemOfRecordForBusinessTerm", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Technology Asset", + "target_asset_type": "Business Term" + } + }, + { + "id": "22db2799-a1fc-4071-bc35-fb2e16b9044c", + "kind": "relation", + "name": "system of use for", + "public_id": "TechnologyAssetSystemOfUseForBusinessTerm", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Technology Asset", + "target_asset_type": "Business Term" + } + }, + { + "id": "a7976265-9acc-427b-8d3b-2034fb888d60", + "kind": "relation", + "name": "source system for", + "public_id": "TechnologyAssetSourceSystemForBusinessTerm", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Technology Asset", + "target_asset_type": "Business Term" + } + }, + { + "id": "b9e486ce-b725-47a8-90f1-910646be4afb", + "kind": "relation", + "name": "classifies", + "public_id": "BusinessDimensionClassifiesAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Dimension", + "target_asset_type": "Asset" + } + }, + { + "id": "03195454-e4ac-48e4-9836-03c9b81db778", + "kind": "relation", + "name": "associates", + "public_id": "LineOfBusinessAssociatesBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Line of Business", + "target_asset_type": "Business Asset" + } + }, + { + "id": "40298dfb-0fc8-4c07-8b7e-73f5ce35ecff", + "kind": "relation", + "name": "produces", + "public_id": "BusinessProcessProducesBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Process", + "target_asset_type": "Business Asset" + } + }, + { + "id": "2879077e-4222-4d64-890d-90924f1d13a8", + "kind": "relation", + "name": "related to", + "public_id": "DataSetRelatedToBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Set", + "target_asset_type": "Business Asset" + } + }, + { + "id": "81530a05-6617-46c7-b9c4-084be8e1f579", + "kind": "relation", + "name": "impacts", + "public_id": "IssueImpactsAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Issue", + "target_asset_type": "Asset" + } + }, + { + "id": "01957b35-d154-785d-8bc0-462dbc603158", + "kind": "relation", + "name": "related to", + "public_id": "ReportRelatedToBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Business Asset" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-000000021002", + "kind": "asset_type", + "name": "Code Set", + "public_id": "CodeSet", + "parent_name": "Data Asset", + "attributes": [ + { + "id": "147fba9b-e5b3-4701-91c5-5e26023ec206", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "b0518e9b-57c6-466e-8cba-1c760c85707a", + "kind": "attribute", + "name": "Descriptive Example", + "public_id": "DescriptiveExample", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "69d70638-e522-40ba-96a2-43d8b1367f1a", + "kind": "attribute", + "name": "Location", + "public_id": "Location", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "90204954-873e-4b9f-bd73-3e931829188c", + "kind": "attribute", + "name": "Effective Start Date", + "public_id": "EffectiveStartDate", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "c5a24277-5b6f-4673-8fc2-035fe5aa711f", + "kind": "attribute", + "name": "Effective End Date", + "public_id": "EffectiveEndDate", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "5055435b-690c-49a5-9fa2-ef83ed03be8b", + "kind": "attribute", + "name": "Last Sync Date", + "public_id": "LastSyncDate", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "fd37999d-aba4-4831-b18d-a2ca0df17d03", + "kind": "attribute", + "name": "Last Review Date", + "public_id": "LastReviewDate", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "185775f7-47d8-4092-b575-16f10b5afe5e", + "kind": "attribute", + "name": "Note", + "public_id": "Note", + "cardinality": { + "min": 0, + "max": null + } + } + ], + "relations": [ + { + "id": "37a4a32e-ce17-40d9-a5f3-c75f87cfecd5", + "kind": "relation", + "name": "is part of", + "public_id": "CodeValueIsPartOfCodeSet", + "cardinality": { + "min": 1, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Code Value", + "target_asset_type": "Code Set" + } + }, + { + "id": "dc11373d-beb7-4e24-ac18-d4ed47fa743d", + "kind": "relation", + "name": "allowed value set", + "public_id": "DataElementAllowedValueSetCodeSet", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Element", + "target_asset_type": "Code Set" + } + }, + { + "id": "614e1554-950b-49e3-ac78-b20fa6426c82", + "kind": "relation", + "name": "implemented in", + "public_id": "DataAssetImplementedInTechnologyAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Asset", + "target_asset_type": "Technology Asset" + } + }, + { + "id": "1ab73a11-0ee4-4431-a621-a6875a24a647", + "kind": "relation", + "name": "impacts", + "public_id": "IssueImpactsAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Issue", + "target_asset_type": "Asset" + } + }, + { + "id": "8c6ab50c-0b5d-4f15-b38c-d577fe762835", + "kind": "relation", + "name": "source of", + "public_id": "CodeSetSourceOfCrosswalk", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Code Set", + "target_asset_type": "Crosswalk" + } + }, + { + "id": "9fbeda03-b9d7-47ea-95a6-52c3541d22c4", + "kind": "relation", + "name": "target of", + "public_id": "CodeSetTargetOfCrosswalk", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Code Set", + "target_asset_type": "Crosswalk" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-000000021001", + "kind": "asset_type", + "name": "Code Value", + "public_id": "CodeValue", + "parent_name": "Data Asset", + "attributes": [ + { + "id": "716f5185-d4f6-4ec6-bb85-babcaccc19d7", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "94795848-c5b8-4978-975f-3d8c19f7f444", + "kind": "attribute", + "name": "Effective Start Date", + "public_id": "EffectiveStartDate", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "eed8eb93-af1f-4dd2-8675-7fac9e3d7223", + "kind": "attribute", + "name": "Effective End Date", + "public_id": "EffectiveEndDate", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "0b40f055-8309-4a30-a639-e146eba1ed9a", + "kind": "attribute", + "name": "Last Sync Date", + "public_id": "LastSyncDate", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "e69e0556-e460-4a65-8d64-dfa5d1ee8130", + "kind": "attribute", + "name": "Descriptive Example", + "public_id": "DescriptiveExample", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "282ecf45-b848-4438-bb48-38684d26cb5f", + "kind": "attribute", + "name": "Location", + "public_id": "Location", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "67b2eb3f-bfb2-4211-aeef-52d2f246cbb3", + "kind": "attribute", + "name": "Note", + "public_id": "Note", + "cardinality": { + "min": 0, + "max": null + } + } + ], + "relations": [ + { + "id": "eb8705c6-4b90-4ec8-9c95-89e3c59f5d70", + "kind": "relation", + "name": "groups", + "public_id": "CodeValueGroupsCodeValue", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Code Value", + "target_asset_type": "Code Value" + } + }, + { + "id": "f39e2cb7-7051-457f-859b-34820848793b", + "kind": "relation", + "name": "groups", + "public_id": "CodeValueGroupsCodeValue", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Code Value", + "target_asset_type": "Code Value" + } + }, + { + "id": "1d059d00-9e7a-4216-bdbb-89f04d760d9a", + "kind": "relation", + "name": "is part of", + "public_id": "CodeValueIsPartOfCodeSet", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Code Value", + "target_asset_type": "Code Set" + } + }, + { + "id": "f466a0b4-d50f-4d8d-a96f-554a7112538d", + "kind": "relation", + "name": "has code", + "public_id": "BusinessTermHasCodeCodeValue", + "cardinality": { + "min": 1, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Term", + "target_asset_type": "Code Value" + } + }, + { + "id": "c7541a7f-99bc-43d5-864b-b16101835ac8", + "kind": "relation", + "name": "allowed value", + "public_id": "DataElementAllowedValueCodeValue", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Element", + "target_asset_type": "Code Value" + } + }, + { + "id": "d600c24d-aa69-4003-b039-f875d085f652", + "kind": "relation", + "name": "implemented in", + "public_id": "DataAssetImplementedInTechnologyAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Asset", + "target_asset_type": "Technology Asset" + } + }, + { + "id": "4365eb41-a841-4536-b507-90a0b423c9bf", + "kind": "relation", + "name": "impacts", + "public_id": "IssueImpactsAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Issue", + "target_asset_type": "Asset" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-000000031008", + "kind": "asset_type", + "name": "Column", + "public_id": "Column", + "parent_name": "Data Element", + "attributes": [ + { + "id": "2a25e33b-8b8a-43cc-a3ce-64cd61a21415", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "7f7bd2ac-38d2-4181-8ab2-11b59147990f", + "kind": "attribute", + "name": "Description from source system", + "public_id": "DescriptionFromSourceSystem", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019c195a-9867-75d7-a655-926cfdbddbb3", + "kind": "attribute", + "name": "Business Name", + "public_id": "BusinessName", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "c6da18f4-1049-47a4-b8dc-af14ddd26c7c", + "kind": "attribute", + "name": "Original Name", + "public_id": "OriginalName", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "3c9eea15-a06e-415c-810e-3ddae6b22b0b", + "kind": "attribute", + "name": "Data Type", + "public_id": "DataType", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "80913d6c-9a06-4c80-b965-3c0de8eb7537", + "kind": "attribute", + "name": "Column Position", + "public_id": "ColumnPosition", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "091c296b-df4e-4eed-943b-e8668cc6fc27", + "kind": "attribute", + "name": "Technical Data Type", + "public_id": "TechnicalDataType", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "68433782-a011-410f-a3ed-5a17c12964aa", + "kind": "attribute", + "name": "Size", + "public_id": "Size", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "a0ce3efc-0cd4-4637-be51-5fe0faa51981", + "kind": "attribute", + "name": "Number Of Fractional Digits", + "public_id": "NumberOfFractionalDigits", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "f620c14c-ebd9-482f-bf7b-523f95f72aca", + "kind": "attribute", + "name": "Is Nullable", + "public_id": "IsNullable", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0272df0d-41ce-4def-8aa2-2420e27397dc", + "kind": "attribute", + "name": "Char octet Length", + "public_id": "CharOctetLength", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "7f8c1b12-4e1c-46d1-892f-c768a6dc5965", + "kind": "attribute", + "name": "Is Auto Incremented", + "public_id": "IsAutoIncremented", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "c13e11c4-97c8-4fad-8c76-f15dc4642aa3", + "kind": "attribute", + "name": "Default Value", + "public_id": "DefaultValue", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "4265741c-38a4-41bc-b6e3-fb1eee986b9a", + "kind": "attribute", + "name": "Is Primary Key", + "public_id": "IsPrimaryKey", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "a21c7ca3-bdc3-40e0-b576-9c09df61d62f", + "kind": "attribute", + "name": "Primary Key Name", + "public_id": "PrimaryKeyName", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "d3951ae2-e8bf-4cf5-bf7e-9f6ee6180d8b", + "kind": "attribute", + "name": "Is Generated", + "public_id": "IsGenerated", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "4d372792-06ab-4d30-a38e-4147435aea99", + "kind": "attribute", + "name": "Refresh Conflict", + "public_id": "RefreshConflict", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "ee1663b4-7752-43d6-a02c-9508641de0e7", + "kind": "attribute", + "name": "Personally Identifiable Information", + "public_id": "PersonallyIdentifiableInformation", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "3d9048a7-2c54-4a28-9d2e-748f6129d5a4", + "kind": "attribute", + "name": "Security Classification", + "public_id": "SecurityClassification", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "1d598c4e-d333-49c2-8b0c-63b3a2a2f8df", + "kind": "attribute", + "name": "Row Count", + "public_id": "RowCount", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "38fb31ac-43ae-4d20-8df8-e86266e46053", + "kind": "attribute", + "name": "Mean", + "public_id": "Mean", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "22efe009-18cd-4e9a-a18c-b96151a5d06d", + "kind": "attribute", + "name": "Empty Values Count", + "public_id": "EmptyValuesCount", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "199b974c-d7ee-4046-9769-92d33ac5d362", + "kind": "attribute", + "name": "Variance", + "public_id": "Variance", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "4914156d-63f4-4ed9-a0c8-a28cdb298616", + "kind": "attribute", + "name": "Standard Deviation", + "public_id": "StandardDeviation", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "490780ec-3fc0-4119-bd3e-6f93fcb81b4e", + "kind": "attribute", + "name": "Minimum Value", + "public_id": "MinimumValue", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "8f243778-154b-491a-a8cf-8e2a4cb961e0", + "kind": "attribute", + "name": "Maximum Value", + "public_id": "MaximumValue", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "362f399b-9e6f-47f5-bf98-2f811e8704e5", + "kind": "attribute", + "name": "Minimum Text Length", + "public_id": "MinimumTextLength", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "cfc8fd61-b160-4da5-8d05-89bc98e28349", + "kind": "attribute", + "name": "Maximum Text Length", + "public_id": "MaximumTextLength", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "d4dac874-3f6d-498b-84ea-42a3133025a7", + "kind": "attribute", + "name": "Date and/or Time Pattern", + "public_id": "DateAndOrTimePattern", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "51540b96-e50c-452f-91ee-546ce5ea9322", + "kind": "attribute", + "name": "Categorical Data", + "public_id": "CategoricalData", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "bc29b9eb-f3fe-48ef-b409-e4760e5ca627", + "kind": "attribute", + "name": "Category", + "public_id": "Category", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "d1f8d562-5a71-4cc3-b6f0-4aa4347e77d5", + "kind": "attribute", + "name": "Number of distinct values", + "public_id": "NumberOfDistinctValues", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "a0fd2c63-ed5c-4ca5-b5eb-eafbf06c3ecc", + "kind": "attribute", + "name": "Mode", + "public_id": "Mode", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "843e8754-e3a9-4a4f-9298-e2083531c84f", + "kind": "attribute", + "name": "1st Percentile", + "public_id": "FirstPercentile", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0c0b15a1-a294-40ef-8e79-cdd66143e6b9", + "kind": "attribute", + "name": "5th Percentile", + "public_id": "FifthPercentile", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "f3566c40-50da-4cda-8817-0c8e5ee80d27", + "kind": "attribute", + "name": "1st Decile", + "public_id": "FirstDecile", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "082657f4-b473-49d8-962f-c35b083d6525", + "kind": "attribute", + "name": "1st Quartile", + "public_id": "FirstQuartile", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "50d45c16-2b66-4f76-9241-4465cb85190f", + "kind": "attribute", + "name": "Median", + "public_id": "Median", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "8b660c6f-7f61-4d8e-a5f4-924f15db295c", + "kind": "attribute", + "name": "3rd Quartile", + "public_id": "ThirdQuantile", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "a2147811-72ed-4e7a-b87c-b73dcf127bec", + "kind": "attribute", + "name": "9th Decile", + "public_id": "LastDecile", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "2079af0e-8751-4c16-b5f4-325200213248", + "kind": "attribute", + "name": "95th Percentile", + "public_id": "NinetyFifthPercentile", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "53b3bf27-d68b-48d8-b857-f45c3956e04b", + "kind": "attribute", + "name": "99th Percentile", + "public_id": "LastPercentile", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "28493f57-81f3-45e2-a4fd-d0511e83a07e", + "kind": "attribute", + "name": "Empty values definition override", + "public_id": "EmptyValuesDefinitionOverride", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-bc21-7161-a0ca-4063777d28f9", + "kind": "attribute", + "name": "Source Tags", + "public_id": "SourceTags", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "01922077-da49-710b-a775-3e919a83046c", + "kind": "attribute", + "name": "Profiled Row Count", + "public_id": "ProfiledRowCount", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0196bf61-681e-7f19-98b5-a1064a3a0bde", + "kind": "attribute", + "name": "Popularity Score", + "public_id": "PopularityScore", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "aa45dc5a-98eb-4e64-a0eb-9242ae943c03", + "kind": "relation", + "name": "is part of", + "public_id": "ColumnIsPartOfTable", + "cardinality": { + "min": 0, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "Column", + "target_asset_type": "Table" + } + }, + { + "id": "650f2e37-229e-4495-b687-7bcada9fc2fb", + "kind": "relation", + "name": "allowed value", + "public_id": "DataElementAllowedValueCodeValue", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Element", + "target_asset_type": "Code Value" + } + }, + { + "id": "7d585576-bca2-4f37-bceb-e92c7d68914d", + "kind": "relation", + "name": "allowed value set", + "public_id": "DataElementAllowedValueSetCodeSet", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Element", + "target_asset_type": "Code Set" + } + }, + { + "id": "cf290de7-c0e5-4c1b-b387-da4e0f784409", + "kind": "relation", + "name": "represents", + "public_id": "BusinessAssetRepresentsDataAsset", + "cardinality": { + "min": 1, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Asset", + "target_asset_type": "Data Asset" + } + }, + { + "id": "ae74f544-48b5-40d0-83d8-9754b28f293d", + "kind": "relation", + "name": "implemented in", + "public_id": "DataAssetImplementedInTechnologyAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Asset", + "target_asset_type": "Technology Asset" + } + }, + { + "id": "dd16ca0d-c984-4f38-bbed-47e4ff1066e4", + "kind": "relation", + "name": "contains", + "public_id": "DataSetContainsDataElement", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Set", + "target_asset_type": "Data Element" + } + }, + { + "id": "e0041614-f370-4fe6-9016-7e9fc2fc7593", + "kind": "relation", + "name": "impacts", + "public_id": "IssueImpactsAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Issue", + "target_asset_type": "Asset" + } + }, + { + "id": "a7d83fb0-477f-462c-954b-293d9729a4c8", + "kind": "relation", + "name": "is source for", + "public_id": "ColumnIsSourceForDataAttribute", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Column", + "target_asset_type": "Data Attribute" + } + }, + { + "id": "f283145b-1af3-41d4-9a0c-c0085437c2df", + "kind": "relation", + "name": "represents", + "public_id": "DataAttributeRepresentsColumn", + "cardinality": { + "min": 0, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "Data Attribute", + "target_asset_type": "Column" + } + }, + { + "id": "5879e3fc-5bf6-4d8d-90a9-fdbca87f2bb0", + "kind": "relation", + "name": "targets", + "public_id": "DataElementTargetsDataElement", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Element", + "target_asset_type": "Data Element" + } + }, + { + "id": "6b0544bc-3524-48c5-895f-99f24c027afe", + "kind": "relation", + "name": "targets", + "public_id": "DataElementTargetsDataElement", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Element", + "target_asset_type": "Data Element" + } + }, + { + "id": "e2f79ec8-cddc-4e03-8954-5d799e4cca15", + "kind": "relation", + "name": "qualifies", + "public_id": "BusinessQualifierQualifiesAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Qualifier", + "target_asset_type": "Asset" + } + }, + { + "id": "01922077-cfbb-72a6-b44b-a1575a9a5127", + "kind": "relation", + "name": "governs", + "public_id": "DataQualityRuleGovernsColumn", + "cardinality": { + "min": 1, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Quality Rule", + "target_asset_type": "Column" + } + }, + { + "id": "01922077-e4ea-7845-9bd7-cf4b28d84430", + "kind": "relation", + "name": "governed by", + "public_id": "AssetGovernedByGovernanceAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Asset", + "target_asset_type": "Governance Asset" + } + }, + { + "id": "01922077-f1c0-7369-8142-b69a937c04af", + "kind": "relation", + "name": "categorizes", + "public_id": "DataCategoryCategorizesDataAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Category", + "target_asset_type": "Data Asset" + } + } + ] + }, + { + "id": "c0e00000-0000-0000-0000-000000039040", + "kind": "asset_type", + "name": "Control", + "public_id": "Control", + "parent_name": "Governance Asset", + "attributes": [ + { + "id": "01922077-f7fb-79f8-ba0f-69a8b1fae0d2", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "01922077-f7fb-79f8-ba0f-69a8b1fae0d7", + "kind": "attribute", + "name": "Note", + "public_id": "Note", + "cardinality": { + "min": 0, + "max": null + } + } + ], + "relations": [ + { + "id": "01922077-f7fb-79f8-ba0f-69a8b1fae0d3", + "kind": "relation", + "name": "groups", + "public_id": "GovernanceAssetGroupsGovernanceAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Governance Asset", + "target_asset_type": "Governance Asset" + } + }, + { + "id": "01922077-f7fb-79f8-ba0f-69a8b1fae0d4", + "kind": "relation", + "name": "groups", + "public_id": "GovernanceAssetGroupsGovernanceAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Governance Asset", + "target_asset_type": "Governance Asset" + } + }, + { + "id": "01922077-f7fb-79f8-ba0f-69a8b1fae0d5", + "kind": "relation", + "name": "complies to", + "public_id": "AssetCompliesToGovernanceAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Asset", + "target_asset_type": "Governance Asset" + } + }, + { + "id": "01922077-f7fb-79f8-ba0f-69a8b1fae0d6", + "kind": "relation", + "name": "complies to", + "public_id": "AssetCompliesToGovernanceAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Asset", + "target_asset_type": "Governance Asset" + } + }, + { + "id": "01922077-fd9b-7485-a431-0ac627134545", + "kind": "relation", + "name": "mitigates", + "public_id": "ControlMitigatesRisk", + "cardinality": { + "min": 1, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Control", + "target_asset_type": "Risk" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-000000011007", + "kind": "asset_type", + "name": "Critical Data Element", + "public_id": "CriticalDataElement", + "parent_name": "Business Term", + "attributes": [ + { + "id": "019ccde7-be08-77b6-8846-74f885d66aae", + "kind": "attribute", + "name": "Definition", + "public_id": "Definition", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "019ccde7-be08-77b6-8846-74f885d66aaf", + "kind": "attribute", + "name": "Descriptive Example", + "public_id": "DescriptiveExample", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "019ccde7-be08-77b6-8846-74f885d66ab0", + "kind": "attribute", + "name": "Criticality Tier ", + "public_id": "CriticalityTier", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "019ccde7-be08-77b6-8846-74f885d66ab1", + "kind": "attribute", + "name": "Note", + "public_id": "Note", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "019ccde7-be08-77b6-8846-74f885d66ab2", + "kind": "attribute", + "name": "Calculation Rule", + "public_id": "CalculationRule", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "019ccde7-be08-77b6-8846-74f885d66ab3", + "kind": "attribute", + "name": "Last Review Date", + "public_id": "LastReviewDate", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "019ccde7-be08-77b6-8846-74f885d66ab4", + "kind": "attribute", + "name": "Effective Start Date", + "public_id": "EffectiveStartDate", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "019ccde7-be08-77b6-8846-74f885d66ab5", + "kind": "attribute", + "name": "Effective End Date", + "public_id": "EffectiveEndDate", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "019ccde7-c264-7620-9226-6fe1b048a671", + "kind": "relation", + "name": "is calculated using", + "public_id": "MeasureIsCalculatedUsingCriticalDataElement", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Measure", + "target_asset_type": "Critical Data Element" + } + }, + { + "id": "019ccde7-c264-7620-9226-6fe1b048a672", + "kind": "relation", + "name": "contains", + "public_id": "ReportContainsCriticalDataElement", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Critical Data Element" + } + }, + { + "id": "019ccde7-dd6c-778b-a4b6-ccf2546438ef", + "kind": "relation", + "name": "associates", + "public_id": "LineOfBusinessAssociatesBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Line of Business", + "target_asset_type": "Business Asset" + } + }, + { + "id": "019ccde7-dd6c-778b-a4b6-ccf2546438f0", + "kind": "relation", + "name": "produces", + "public_id": "BusinessProcessProducesBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Process", + "target_asset_type": "Business Asset" + } + }, + { + "id": "019ccde7-dd6c-778b-a4b6-ccf2546438f1", + "kind": "relation", + "name": "consumes", + "public_id": "BusinessProcessConsumesBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Process", + "target_asset_type": "Business Asset" + } + }, + { + "id": "019ccde7-dd6c-778b-a4b6-ccf2546438f2", + "kind": "relation", + "name": "impacts", + "public_id": "IssueImpactsAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Issue", + "target_asset_type": "Asset" + } + }, + { + "id": "019ccde7-dd6c-778b-a4b6-ccf2546438f3", + "kind": "relation", + "name": "represents", + "public_id": "BusinessAssetRepresentsDataAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Asset", + "target_asset_type": "Data Asset" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-000000031031", + "kind": "asset_type", + "name": "Crosswalk", + "public_id": "Crosswalk", + "parent_name": "Data Asset", + "attributes": [ + { + "id": "c0dba16f-23b3-43ff-ab26-a2e89537fb48", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "ab4327e7-16ad-4cec-88d6-d45033318d12", + "kind": "attribute", + "name": "Scope", + "public_id": "Scope", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "fe597f0d-b5c0-4825-b424-9589e18fd103", + "kind": "attribute", + "name": "IT Requirements", + "public_id": "ITRequirements", + "cardinality": { + "min": 1, + "max": null + } + } + ], + "relations": [ + { + "id": "c81b4616-5fe4-419c-8cd7-9d5253465c6a", + "kind": "relation", + "name": "source of", + "public_id": "CodeSetSourceOfCrosswalk", + "cardinality": { + "min": 1, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Code Set", + "target_asset_type": "Crosswalk" + } + }, + { + "id": "1b198f6f-27da-42c2-b1c8-cd1652fb3e90", + "kind": "relation", + "name": "target of", + "public_id": "CodeSetTargetOfCrosswalk", + "cardinality": { + "min": 1, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Code Set", + "target_asset_type": "Crosswalk" + } + }, + { + "id": "a5697f76-6ee1-4887-afaf-046568e10228", + "kind": "relation", + "name": "impacts", + "public_id": "IssueImpactsAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Issue", + "target_asset_type": "Asset" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-000000031002", + "kind": "asset_type", + "name": "Data Asset", + "public_id": "DataAsset", + "parent_name": "Asset", + "attributes": [ + { + "id": "146001d4-43fd-465c-9439-0db5962948a7", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "6f3773f0-640c-493a-a30c-70e80f08bd05", + "kind": "attribute", + "name": "Descriptive Example", + "public_id": "DescriptiveExample", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "aff0e65f-b3d7-48ca-8b3e-029d3ab4b969", + "kind": "attribute", + "name": "Location", + "public_id": "Location", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "c58df810-a804-4c5e-809f-bde87fe0d4bd", + "kind": "attribute", + "name": "Note", + "public_id": "Note", + "cardinality": { + "min": 0, + "max": null + } + } + ], + "relations": [ + { + "id": "c00c6c1a-98c9-41ed-ac15-aa54a5084b7e", + "kind": "relation", + "name": "represents", + "public_id": "BusinessAssetRepresentsDataAsset", + "cardinality": { + "min": 1, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Asset", + "target_asset_type": "Data Asset" + } + }, + { + "id": "7fe92f76-3c48-40dc-8347-ab34d3b824a3", + "kind": "relation", + "name": "implemented in", + "public_id": "DataAssetImplementedInTechnologyAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Asset", + "target_asset_type": "Technology Asset" + } + }, + { + "id": "dacab236-690c-4dc7-86dc-5fb2ac872f02", + "kind": "relation", + "name": "impacts", + "public_id": "IssueImpactsAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Issue", + "target_asset_type": "Asset" + } + }, + { + "id": "01922077-cf7a-7970-b08f-1fb72edfbc2c", + "kind": "relation", + "name": "represents", + "public_id": "DataAssetRepresentsTable", + "cardinality": { + "min": 1, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Asset", + "target_asset_type": "Table" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-000000031005", + "kind": "asset_type", + "name": "Data Attribute", + "public_id": "DataAttribute", + "parent_name": "Data Element", + "attributes": [ + { + "id": "2ab1a609-23b4-4e6c-8c2a-57819ff29e9e", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "09d844f3-c398-4179-9d3a-28ac48ef9c63", + "kind": "attribute", + "name": "Technical Data Type", + "public_id": "TechnicalDataType", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "d79bf77f-f54d-4b70-8fde-520cfa3e76fc", + "kind": "attribute", + "name": "Data Type Precision", + "public_id": "DataTypePrecision", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "ea2e597f-28c5-4e90-89da-a33ced55e4c0", + "kind": "attribute", + "name": "Is Mandatory", + "public_id": "IsMandatory", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "937df862-0613-4b48-a0b4-bb42db6b0fba", + "kind": "attribute", + "name": "Is Unique", + "public_id": "IsUnique", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "d760b2ba-6586-4fcd-9b7a-4cd34d2fdda1", + "kind": "attribute", + "name": "Sequence Number", + "public_id": "SequenceNumber", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "b434c3f6-7d58-4260-8159-d59517bf89eb", + "kind": "attribute", + "name": "Descriptive Example", + "public_id": "DescriptiveExample", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "39dbf3b4-70f8-487c-8c90-f4a4f0cfeb12", + "kind": "attribute", + "name": "Location", + "public_id": "Location", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "c74427ea-74d4-4d0e-9976-58f4a9d475dd", + "kind": "attribute", + "name": "Note", + "public_id": "Note", + "cardinality": { + "min": 0, + "max": null + } + } + ], + "relations": [ + { + "id": "4d3e96d0-2a23-437a-9c7c-9216cb7d762d", + "kind": "relation", + "name": "allowed value", + "public_id": "DataElementAllowedValueCodeValue", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Element", + "target_asset_type": "Code Value" + } + }, + { + "id": "84dc9c2d-ceff-4a41-854c-d15ceb4fb616", + "kind": "relation", + "name": "allowed value set", + "public_id": "DataElementAllowedValueSetCodeSet", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Element", + "target_asset_type": "Code Set" + } + }, + { + "id": "e214b24f-c3cb-47ad-9d55-f3654086cab6", + "kind": "relation", + "name": "represents", + "public_id": "BusinessAssetRepresentsDataAsset", + "cardinality": { + "min": 1, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Asset", + "target_asset_type": "Data Asset" + } + }, + { + "id": "71651a91-147c-45b9-9ff9-7efc13165783", + "kind": "relation", + "name": "contains", + "public_id": "DataEntityContainsDataAttribute", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Entity", + "target_asset_type": "Data Attribute" + } + }, + { + "id": "39a916ed-9a2f-4cf9-a468-d44e69976b2c", + "kind": "relation", + "name": "implemented in", + "public_id": "DataAssetImplementedInTechnologyAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Asset", + "target_asset_type": "Technology Asset" + } + }, + { + "id": "903baf13-1643-4097-bd67-c8177700ffae", + "kind": "relation", + "name": "impacts", + "public_id": "IssueImpactsAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Issue", + "target_asset_type": "Asset" + } + }, + { + "id": "46888807-2322-496c-b68c-78fed43eb383", + "kind": "relation", + "name": "represents", + "public_id": "DataAttributeRepresentsColumn", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Attribute", + "target_asset_type": "Column" + } + }, + { + "id": "039ab26b-6044-4d0a-b7eb-a1a3cc7662da", + "kind": "relation", + "name": "classifies", + "public_id": "BusinessDimensionClassifiesAsset", + "cardinality": { + "min": 0, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "Business Dimension", + "target_asset_type": "Asset" + } + }, + { + "id": "01922077-dccc-7305-831c-4b1ab64c9a3b", + "kind": "relation", + "name": "categorizes", + "public_id": "DataCategoryCategorizesDataAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Category", + "target_asset_type": "Data Asset" + } + }, + { + "id": "019a44c9-d2d0-79d9-a54c-2812e87afc25", + "kind": "relation", + "name": "is calculated using", + "public_id": "MeasureIsCalculatedUsingDataElement", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Measure", + "target_asset_type": "Data Element" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-000000031109", + "kind": "asset_type", + "name": "Data Category", + "public_id": "DataCategory", + "parent_name": "Business Dimension", + "attributes": [ + { + "id": "9e981ce3-ac9e-46e4-b1c4-b443c0bb7383", + "kind": "attribute", + "name": "Definition", + "public_id": "Definition", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "582ce021-a9af-49da-ae18-541205afce5c", + "kind": "attribute", + "name": "Descriptive Example", + "public_id": "DescriptiveExample", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "d35b4f88-2181-48a6-b790-4a04bf8075f6", + "kind": "attribute", + "name": "Note", + "public_id": "Note", + "cardinality": { + "min": 0, + "max": null + } + } + ], + "relations": [ + { + "id": "2b6f1ebf-b9de-4d33-a184-efb158673cd2", + "kind": "relation", + "name": "groups", + "public_id": "BusinessAssetGroupsBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Asset", + "target_asset_type": "Business Asset" + } + }, + { + "id": "abc5d2b9-7d1d-4d5c-b6de-45fcddfc9b56", + "kind": "relation", + "name": "groups", + "public_id": "BusinessAssetGroupsBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Asset", + "target_asset_type": "Business Asset" + } + }, + { + "id": "16a8042c-5eec-40e7-8365-0b69acf028b7", + "kind": "relation", + "name": "represents", + "public_id": "BusinessAssetRepresentsDataAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Asset", + "target_asset_type": "Data Asset" + } + }, + { + "id": "4ebb6331-1ce5-465d-a862-897cd8d4af84", + "kind": "relation", + "name": "classifies", + "public_id": "BusinessDimensionClassifiesAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Dimension", + "target_asset_type": "Asset" + } + }, + { + "id": "8ea1ab02-ea8a-420d-94ae-6d875d03fb50", + "kind": "relation", + "name": "classifies", + "public_id": "BusinessDimensionClassifiesAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Dimension", + "target_asset_type": "Asset" + } + }, + { + "id": "e5a717c6-3ee6-4ec1-865f-5efc9aa71c51", + "kind": "relation", + "name": "has acronym", + "public_id": "BusinessAssetHasAcronymAcronym", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Asset", + "target_asset_type": "Acronym" + } + }, + { + "id": "9b3706bd-dcb5-48db-8919-294ba17af123", + "kind": "relation", + "name": "associates", + "public_id": "LineOfBusinessAssociatesBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Line of Business", + "target_asset_type": "Business Asset" + } + }, + { + "id": "a9fd5fb7-660a-4126-a1d1-42021b8a9feb", + "kind": "relation", + "name": "produces", + "public_id": "BusinessProcessProducesBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Process", + "target_asset_type": "Business Asset" + } + }, + { + "id": "3944441d-2980-4329-883a-3bc827662df8", + "kind": "relation", + "name": "complies to", + "public_id": "AssetCompliesToGovernanceAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Asset", + "target_asset_type": "Governance Asset" + } + }, + { + "id": "8912056e-060e-4e7a-b4e7-e97877d3edd6", + "kind": "relation", + "name": "consumes", + "public_id": "BusinessProcessConsumesBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Process", + "target_asset_type": "Business Asset" + } + }, + { + "id": "8a6e1ea6-1526-49a1-b604-8b682da77dc1", + "kind": "relation", + "name": "related to", + "public_id": "DataSetRelatedToBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Set", + "target_asset_type": "Business Asset" + } + }, + { + "id": "ff122614-050a-447a-a135-1c35b5c67017", + "kind": "relation", + "name": "impacts", + "public_id": "IssueImpactsAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Issue", + "target_asset_type": "Asset" + } + }, + { + "id": "01922077-dce8-7485-a2e2-4aa7dd43f665", + "kind": "relation", + "name": "categorizes", + "public_id": "DataCategoryCategorizesDataAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Category", + "target_asset_type": "Data Asset" + } + }, + { + "id": "01957b35-c3a3-7f6e-b8ce-f0b43416dcd9", + "kind": "relation", + "name": "exposes", + "public_id": "DataProductExposesDataCategory", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Product", + "target_asset_type": "Data Category" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-000000031113", + "kind": "asset_type", + "name": "Data Concept", + "public_id": "DataConcept", + "parent_name": "Business Dimension", + "attributes": [ + { + "id": "fbaa1a22-ed68-4af2-b38e-c3d7b1463589", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "cec0d8ec-1808-4127-ad30-26ff39138e72", + "kind": "attribute", + "name": "Descriptive Example", + "public_id": "DescriptiveExample", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "7a9a4c26-1fea-4513-9085-9224ff711f0f", + "kind": "attribute", + "name": "Note", + "public_id": "Note", + "cardinality": { + "min": 0, + "max": null + } + } + ], + "relations": [ + { + "id": "e5a00f9a-c934-47e8-8b05-28914d33e853", + "kind": "relation", + "name": "groups", + "public_id": "BusinessAssetGroupsBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Asset", + "target_asset_type": "Business Asset" + } + }, + { + "id": "e0cb2998-4ebe-4e66-835c-e207adfea193", + "kind": "relation", + "name": "groups", + "public_id": "BusinessAssetGroupsBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Asset", + "target_asset_type": "Business Asset" + } + }, + { + "id": "f8ec929f-3ecf-4566-9b02-5d51a6843dfa", + "kind": "relation", + "name": "classifies", + "public_id": "BusinessDimensionClassifiesAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Dimension", + "target_asset_type": "Asset" + } + }, + { + "id": "37b90f5d-bf5d-4dd4-bf20-e6b13d4d1541", + "kind": "relation", + "name": "classifies", + "public_id": "BusinessDimensionClassifiesAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Dimension", + "target_asset_type": "Asset" + } + }, + { + "id": "d5d138f1-2ce1-4f5b-8792-65a2387ec777", + "kind": "relation", + "name": "impacts", + "public_id": "IssueImpactsAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Issue", + "target_asset_type": "Asset" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-000000050003", + "kind": "asset_type", + "name": "Data Contract", + "public_id": "DataContract", + "parent_name": "Governance Asset", + "attributes": [ + { + "id": "019261eb-5f84-7673-9b59-81032eed9b89", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019261eb-5f84-7673-9b59-81032eed9b8a", + "kind": "attribute", + "name": "Uptime Percentage", + "public_id": "UptimePercentage", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019261eb-5f84-7673-9b59-81032eed9b8b", + "kind": "attribute", + "name": "Unlimited Retention", + "public_id": "IsRetentionUnlimited", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019261eb-5f84-7673-9b59-81032eed9b8c", + "kind": "attribute", + "name": "Retention Period", + "public_id": "RetentionPeriod", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019261eb-5f84-7673-9b59-81032eed9b8d", + "kind": "attribute", + "name": "Latency", + "public_id": "Latency", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019261eb-5f84-7673-9b59-81032eed9b8e", + "kind": "attribute", + "name": "Recency", + "public_id": "Recency", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019261eb-5f84-7673-9b59-81032eed9b8f", + "kind": "attribute", + "name": "Most Recent Record Date", + "public_id": "MostRecentRecordDate", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019261eb-5f84-7673-9b59-81032eed9b90", + "kind": "attribute", + "name": "Processing Method", + "public_id": "ProcessingMethod", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019261eb-5f84-7673-9b59-81032eed9b91", + "kind": "attribute", + "name": "Processing Frequency", + "public_id": "ProcessingFrequency", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019261eb-5f84-7673-9b59-81032eed9b92", + "kind": "attribute", + "name": "Support Availability", + "public_id": "SupportAvailability", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019261eb-5f84-7673-9b59-81032eed9b93", + "kind": "attribute", + "name": "Response Time", + "public_id": "ResponseTime", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019261eb-5f84-7673-9b59-81032eed9b94", + "kind": "attribute", + "name": "Backup Frequency", + "public_id": "BackupFrequency", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019261eb-5f84-7673-9b59-81032eed9b95", + "kind": "attribute", + "name": "Recovery Time", + "public_id": "RecoveryTime", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019261eb-5f84-7673-9b59-81032eed9b96", + "kind": "attribute", + "name": "Recovery Point", + "public_id": "RecoveryPoint", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01992462-1f7f-7729-b2fb-71840c92c350", + "kind": "attribute", + "name": "Version", + "public_id": "Version", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01992462-1f7f-7729-b2fb-71840c92c351", + "kind": "attribute", + "name": "Manifest ID", + "public_id": "ManifestId", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "019261eb-61af-7e76-b962-409bc4e328aa", + "kind": "relation", + "name": "governs functioning of", + "public_id": "DataContractGovernsFunctioningOfOutputPort", + "cardinality": { + "min": 0, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "Data Contract", + "target_asset_type": "Data Product Port" + } + }, + { + "id": "019261eb-61af-7e76-b962-409bc4e328ab", + "kind": "relation", + "name": "information to be provided", + "public_id": "DataContractPrescribesProvisioningOfDataAttribute", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Contract", + "target_asset_type": "Data Attribute" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-000000031114", + "kind": "asset_type", + "name": "Data Domain", + "public_id": "DataDomain", + "parent_name": "Business Dimension", + "attributes": [ + { + "id": "c94629cd-8f2e-499a-8097-fc0568c95e70", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "55007964-ff28-49b0-befd-12ed98557fdc", + "kind": "attribute", + "name": "Descriptive Example", + "public_id": "DescriptiveExample", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "989ff471-5ad3-43d7-bb66-75bdb512b55d", + "kind": "attribute", + "name": "Note", + "public_id": "Note", + "cardinality": { + "min": 0, + "max": null + } + } + ], + "relations": [ + { + "id": "31f09b23-7004-40e0-b6b7-8ffa3b1f4b9c", + "kind": "relation", + "name": "groups", + "public_id": "BusinessAssetGroupsBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Asset", + "target_asset_type": "Business Asset" + } + }, + { + "id": "5058dc82-564b-4f20-a4ec-2c527e15f3d2", + "kind": "relation", + "name": "groups", + "public_id": "BusinessAssetGroupsBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Asset", + "target_asset_type": "Business Asset" + } + }, + { + "id": "7953bfea-5bfb-4db4-a185-87cc56d7b3b4", + "kind": "relation", + "name": "classifies", + "public_id": "BusinessDimensionClassifiesAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Dimension", + "target_asset_type": "Asset" + } + }, + { + "id": "a1096d76-3bdd-4dbd-a97b-7127edc903fd", + "kind": "relation", + "name": "classifies", + "public_id": "BusinessDimensionClassifiesAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Dimension", + "target_asset_type": "Asset" + } + }, + { + "id": "05baefa0-ccee-4ccf-83a9-1b6eacb641cf", + "kind": "relation", + "name": "has subtype", + "public_id": "DataDomainHasSubtypeDataDomain", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Domain", + "target_asset_type": "Data Domain" + } + }, + { + "id": "49dcab1e-fcc9-4607-a899-759b76754d93", + "kind": "relation", + "name": "has subtype", + "public_id": "DataDomainHasSubtypeDataDomain", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Domain", + "target_asset_type": "Data Domain" + } + }, + { + "id": "ba58c25a-314e-492d-b049-bcbf9e7a76e3", + "kind": "relation", + "name": "impacts", + "public_id": "IssueImpactsAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Issue", + "target_asset_type": "Asset" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-000000031026", + "kind": "asset_type", + "name": "Data Element", + "public_id": "DataElement", + "parent_name": "Data Asset", + "attributes": [ + { + "id": "99b56766-4226-4289-9d51-995edd71d6d8", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "28ce2896-3c96-4ea7-a77b-7314c75e01b2", + "kind": "attribute", + "name": "Technical Data Type", + "public_id": "TechnicalDataType", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "c76e01b7-45bb-4c1a-ba9b-0deed06ba63a", + "kind": "attribute", + "name": "Data Type Precision", + "public_id": "DataTypePrecision", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "c4b37546-2f46-4ff5-9ade-760850d3c9c7", + "kind": "attribute", + "name": "Descriptive Example", + "public_id": "DescriptiveExample", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "df7b9e63-a962-4968-bd9d-656a8cf3aeaa", + "kind": "attribute", + "name": "Location", + "public_id": "Location", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "f2b51f31-2a0f-406a-8174-4384dfe0b4e8", + "kind": "attribute", + "name": "Note", + "public_id": "Note", + "cardinality": { + "min": 0, + "max": null + } + } + ], + "relations": [ + { + "id": "4d133dcd-5f9f-4e52-96e6-4b04cec63c51", + "kind": "relation", + "name": "allowed value", + "public_id": "DataElementAllowedValueCodeValue", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Element", + "target_asset_type": "Code Value" + } + }, + { + "id": "42155dd5-0624-4474-b7fb-f96ee9a2cea4", + "kind": "relation", + "name": "allowed value set", + "public_id": "DataElementAllowedValueSetCodeSet", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Element", + "target_asset_type": "Code Set" + } + }, + { + "id": "81cb4032-8c8c-434d-bb2d-25315745417a", + "kind": "relation", + "name": "is part of", + "public_id": "DataElementIsPartOfDataStructure", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Element", + "target_asset_type": "Data Structure" + } + }, + { + "id": "53aecff7-e956-482e-86a5-e49af7553048", + "kind": "relation", + "name": "represents", + "public_id": "BusinessAssetRepresentsDataAsset", + "cardinality": { + "min": 1, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Asset", + "target_asset_type": "Data Asset" + } + }, + { + "id": "f7664eae-6d48-443c-886d-807a577da230", + "kind": "relation", + "name": "implemented in", + "public_id": "DataAssetImplementedInTechnologyAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Asset", + "target_asset_type": "Technology Asset" + } + }, + { + "id": "554085ac-5246-4dc4-a2fd-b49a9cf148c1", + "kind": "relation", + "name": "contains", + "public_id": "DataSetContainsDataElement", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Set", + "target_asset_type": "Data Element" + } + }, + { + "id": "119daffd-0268-453f-b80c-d352851f1427", + "kind": "relation", + "name": "governed by", + "public_id": "AssetGovernedByGovernanceAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Asset", + "target_asset_type": "Governance Asset" + } + }, + { + "id": "f66bced1-011e-426f-bf9e-6317f7ea0f59", + "kind": "relation", + "name": "impacts", + "public_id": "IssueImpactsAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Issue", + "target_asset_type": "Asset" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-000000031004", + "kind": "asset_type", + "name": "Data Entity", + "public_id": "DataEntity", + "parent_name": "Data Structure", + "attributes": [ + { + "id": "3b90fe3c-4a52-4fb4-b68e-faa40a5957fe", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "106c77dc-b253-4bfd-951a-cf8be004826b", + "kind": "attribute", + "name": "Descriptive Example", + "public_id": "DescriptiveExample", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "25dce516-3dbc-4cd8-a6c3-9b36d664e5b8", + "kind": "attribute", + "name": "Location", + "public_id": "Location", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "405dc750-df1a-457f-825a-c1271f3584b8", + "kind": "attribute", + "name": "Note", + "public_id": "Note", + "cardinality": { + "min": 0, + "max": null + } + } + ], + "relations": [ + { + "id": "965a96dc-70b4-4fe0-9048-b107c9177ef0", + "kind": "relation", + "name": "contains", + "public_id": "DataEntityContainsDataAttribute", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Entity", + "target_asset_type": "Data Attribute" + } + }, + { + "id": "a91f0f97-8955-41af-905b-04b4861fe72b", + "kind": "relation", + "name": "represents", + "public_id": "BusinessAssetRepresentsDataAsset", + "cardinality": { + "min": 1, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Asset", + "target_asset_type": "Data Asset" + } + }, + { + "id": "34b6e8e7-68fa-4064-9072-5284a041733a", + "kind": "relation", + "name": "implemented in", + "public_id": "DataAssetImplementedInTechnologyAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Asset", + "target_asset_type": "Technology Asset" + } + }, + { + "id": "8be2fe7e-c02d-4a76-9c1d-83a9e82acf97", + "kind": "relation", + "name": "governed by", + "public_id": "AssetGovernedByGovernanceAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Asset", + "target_asset_type": "Governance Asset" + } + }, + { + "id": "0bd93489-392f-41c1-ab80-6ee5ce9f7f16", + "kind": "relation", + "name": "impacts", + "public_id": "IssueImpactsAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Issue", + "target_asset_type": "Asset" + } + }, + { + "id": "3578d2cc-57e4-4521-bcc9-4fa57941f856", + "kind": "relation", + "name": "source of", + "public_id": "DataStructureSourceOfMappingSpecification", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Structure", + "target_asset_type": "Mapping Specification" + } + }, + { + "id": "4d810abb-f350-450d-8e51-f83a05e1858b", + "kind": "relation", + "name": "target of", + "public_id": "DataStructureTargetOfMappingSpecification", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Structure", + "target_asset_type": "Mapping Specification" + } + }, + { + "id": "ee230057-0e99-407c-8afa-5a31097fb551", + "kind": "relation", + "name": "is part of", + "public_id": "DataEntityIsPartOfDataModel", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Entity", + "target_asset_type": "Data Model" + } + }, + { + "id": "ce5dac85-e69b-47cf-91c4-aab623830135", + "kind": "relation", + "name": "classifies", + "public_id": "BusinessDimensionClassifiesAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Dimension", + "target_asset_type": "Asset" + } + }, + { + "id": "01922077-dc9f-78ce-91d5-92b4468ea5ec", + "kind": "relation", + "name": "represents", + "public_id": "DataAssetRepresentsTable", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Asset", + "target_asset_type": "Table" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-000000031001", + "kind": "asset_type", + "name": "Data Issue", + "public_id": "DataIssue", + "parent_name": "Issue", + "attributes": [], + "relations": [] + }, + { + "id": "00000000-0000-0000-0000-000000031003", + "kind": "asset_type", + "name": "Data Model", + "public_id": "DataModel", + "parent_name": "Model", + "attributes": [ + { + "id": "b9aed1d4-effc-4dbf-82ad-12ebe501a5f9", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "86013acc-f94e-43d5-88e4-c21f668f82d9", + "kind": "attribute", + "name": "Descriptive Example", + "public_id": "DescriptiveExample", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "3d4ed12d-2d28-4747-9ad3-a5d0f6edcf17", + "kind": "attribute", + "name": "Location", + "public_id": "Location", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "1b8345dc-5f82-4619-be22-6e06217e9039", + "kind": "attribute", + "name": "Note", + "public_id": "Note", + "cardinality": { + "min": 0, + "max": null + } + } + ], + "relations": [ + { + "id": "e31ae4ef-14e5-453d-a09a-27bee3f73547", + "kind": "relation", + "name": "represents", + "public_id": "BusinessAssetRepresentsDataAsset", + "cardinality": { + "min": 1, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Asset", + "target_asset_type": "Data Asset" + } + }, + { + "id": "9ed57267-c951-47a7-83be-40a3c678dfba", + "kind": "relation", + "name": "implemented in", + "public_id": "DataAssetImplementedInTechnologyAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Asset", + "target_asset_type": "Technology Asset" + } + }, + { + "id": "94e6db2e-6c8f-4617-aa37-d97c6d8cccb4", + "kind": "relation", + "name": "is part of", + "public_id": "DataEntityIsPartOfDataModel", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Entity", + "target_asset_type": "Data Model" + } + }, + { + "id": "7b5e579a-cace-4b4a-aae1-8c15249bc56f", + "kind": "relation", + "name": "impacts", + "public_id": "IssueImpactsAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Issue", + "target_asset_type": "Asset" + } + }, + { + "id": "991b0a97-edef-48b9-a849-fbc3a6e3c08e", + "kind": "relation", + "name": "source of", + "public_id": "DataStructureSourceOfMappingSpecification", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Structure", + "target_asset_type": "Mapping Specification" + } + }, + { + "id": "67ddd89d-79d2-4df2-bcb9-156367dc2066", + "kind": "relation", + "name": "target of", + "public_id": "DataStructureTargetOfMappingSpecification", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Structure", + "target_asset_type": "Mapping Specification" + } + }, + { + "id": "f6071d3b-d0f7-45af-b1c8-a92cca8f102e", + "kind": "relation", + "name": "implements", + "public_id": "SystemImplementsDataModel", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "System", + "target_asset_type": "Data Model" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-000000031116", + "kind": "asset_type", + "name": "Data Notebook", + "public_id": "DataNotebook", + "parent_name": "Report", + "attributes": [ + { + "id": "01922077-f3d7-7290-bdcf-b3190c13ab18", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-f3d7-7290-bdcf-b3190c13ab19", + "kind": "attribute", + "name": "Document creation date", + "public_id": "DocumentCreationDate", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "01922077-f3d7-7290-bdcf-b3190c13ab1a", + "kind": "attribute", + "name": "Document modification date", + "public_id": "DocumentModificationDate", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "01922077-f3d7-7290-bdcf-b3190c13ab1b", + "kind": "attribute", + "name": "Version", + "public_id": "Version", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "019261eb-5b7b-7199-b5b6-01e1267a7e5f", + "kind": "relation", + "name": "is queried by", + "public_id": "DataQueriedInNotebook", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Database", + "target_asset_type": "Data Notebook" + } + }, + { + "id": "01974f91-b065-7579-8852-154efe0ec31b", + "kind": "relation", + "name": "is explained in", + "public_id": "DataProductIsExplainedInDataNotebook", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Product", + "target_asset_type": "Data Notebook" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-000000050000", + "kind": "asset_type", + "name": "Data Product", + "public_id": "DataProduct", + "parent_name": "Business Asset", + "attributes": [ + { + "id": "019261eb-5e05-7903-a7dd-cfce4806fda4", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019261eb-5e05-7903-a7dd-cfce4806fda5", + "kind": "attribute", + "name": "Business Case", + "public_id": "BusinessCase", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019261eb-5e05-7903-a7dd-cfce4806fda6", + "kind": "attribute", + "name": "Business Value", + "public_id": "BusinessValue", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019261eb-5e05-7903-a7dd-cfce4806fda7", + "kind": "attribute", + "name": "Data Product Category", + "public_id": "DataProductCategory", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019261eb-5e05-7903-a7dd-cfce4806fda8", + "kind": "attribute", + "name": "Target Delivery Date", + "public_id": "TargetDeliveryDate", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "019261eb-6107-7dd5-aa60-4180977b2c85", + "kind": "relation", + "name": "exposes data as", + "public_id": "DataProductHasOutputPort", + "cardinality": { + "min": 1, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Product", + "target_asset_type": "Data Product Port" + } + }, + { + "id": "019261eb-6107-7dd5-aa60-4180977b2c86", + "kind": "relation", + "name": "is input port for", + "public_id": "InputPortForDataProduct", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Product Port", + "target_asset_type": "Data Product" + } + }, + { + "id": "0194c707-2a66-76da-951f-540fb6ba01dd", + "kind": "relation", + "name": "provides", + "public_id": "ProviderOfDataProduct", + "cardinality": { + "min": 0, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "Vendor", + "target_asset_type": "Data Product" + } + }, + { + "id": "01974f91-ac0e-7b0e-aac7-cd35d3ffd165", + "kind": "relation", + "name": "relates to", + "public_id": "DataProductRelatesToMeasure", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Product", + "target_asset_type": "Measure" + } + }, + { + "id": "01974f91-aca7-79e3-b480-455f5c8f2dcb", + "kind": "relation", + "name": "relates to", + "public_id": "DataProductRelatesToBusinessTerm", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Product", + "target_asset_type": "Business Term" + } + }, + { + "id": "01974f91-b042-72ee-9a9a-dd06d08a7105", + "kind": "relation", + "name": "is explained in", + "public_id": "DataProductIsExplainedInDataNotebook", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Product", + "target_asset_type": "Data Notebook" + } + }, + { + "id": "01974f91-b0af-7292-9e68-a1701b96c627", + "kind": "relation", + "name": "relates to", + "public_id": "DataProductRelatesToDataDomain", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Product", + "target_asset_type": "Data Domain" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-000000050001", + "kind": "asset_type", + "name": "Data Product Input Port", + "public_id": "DataProductInputPort", + "parent_name": "Data Product Port", + "attributes": [ + { + "id": "0199b495-f629-7ded-8fce-310e98b09a30", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "019261eb-6137-7b14-a81b-37351bf2210e", + "kind": "relation", + "name": "is input port for", + "public_id": "InputPortForDataProduct", + "cardinality": { + "min": 1, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Product Port", + "target_asset_type": "Data Product" + } + }, + { + "id": "019261eb-6138-7ea0-bc26-974bcddb241f", + "kind": "relation", + "name": "implements", + "public_id": "AssetImplementsInputPort", + "cardinality": { + "min": 1, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Product Input", + "target_asset_type": "Data Product Input Port" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-000000050002", + "kind": "asset_type", + "name": "Data Product Output Port", + "public_id": "DataProductOutputPort", + "parent_name": "Data Product Port", + "attributes": [ + { + "id": "019261eb-5f18-7869-a45f-6f78ece8f2ea", + "kind": "attribute", + "name": "Access Method", + "public_id": "AccessMethod", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019261eb-5f18-7869-a45f-6f78ece8f2eb", + "kind": "attribute", + "name": "Access Instructions", + "public_id": "AccessInstructions", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01957b35-c3ca-75f9-823c-21bda89f8ae4", + "kind": "attribute", + "name": "Pricing", + "public_id": "Pricing", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01957b35-c3ca-75f9-823c-21bda89f8ae5", + "kind": "attribute", + "name": "Area", + "public_id": "Area", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "0199b495-f641-7ae6-9327-aee130742964", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "019261eb-6167-7a03-a879-2eea1f496c43", + "kind": "relation", + "name": "exposes data as", + "public_id": "DataProductHasOutputPort", + "cardinality": { + "min": 1, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Product", + "target_asset_type": "Data Product Port" + } + }, + { + "id": "019261eb-6168-7409-aac4-89005c35e09e", + "kind": "relation", + "name": "is implemented as", + "public_id": "OutputPortImplementedByAsset", + "cardinality": { + "min": 1, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Product Port", + "target_asset_type": "Data Product Port Asset" + } + }, + { + "id": "019261eb-6168-7409-aac4-89005c35e09f", + "kind": "relation", + "name": "governs functioning of", + "public_id": "DataContractGovernsFunctioningOfOutputPort", + "cardinality": { + "min": 0, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "Data Contract", + "target_asset_type": "Data Product Port" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-000000050004", + "kind": "asset_type", + "name": "Data Product Port", + "public_id": "DataProductPort", + "parent_name": "Data Asset", + "attributes": [ + { + "id": "01974f91-ad06-7268-b01c-72384d7f7d4b", + "kind": "attribute", + "name": "Access Method", + "public_id": "AccessMethod", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01974f91-ad06-7268-b01c-72384d7f7d4c", + "kind": "attribute", + "name": "Access Instructions", + "public_id": "AccessInstructions", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01974f91-ad06-7268-b01c-72384d7f7d4d", + "kind": "attribute", + "name": "Pricing", + "public_id": "Pricing", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01974f91-ad06-7268-b01c-72384d7f7d4e", + "kind": "attribute", + "name": "Area", + "public_id": "Area", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01974f91-ad06-7268-b01c-72384d7f7d4f", + "kind": "attribute", + "name": "Target Delivery Date", + "public_id": "TargetDeliveryDate", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0199b495-f60c-7ca3-ad11-7844d353294d", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "01974f91-aebd-7386-ab09-ab04d8462a0d", + "kind": "relation", + "name": "is input port for", + "public_id": "InputPortForDataProduct", + "cardinality": { + "min": 1, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Product Port", + "target_asset_type": "Data Product" + } + }, + { + "id": "01974f91-aebd-7386-ab09-ab04d8462a0e", + "kind": "relation", + "name": "exposes data as", + "public_id": "DataProductHasOutputPort", + "cardinality": { + "min": 1, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Product", + "target_asset_type": "Data Product Port" + } + }, + { + "id": "01974f91-aebd-7386-ab09-ab04d8462a0f", + "kind": "relation", + "name": "is implemented as", + "public_id": "OutputPortImplementedByAsset", + "cardinality": { + "min": 1, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Product Port", + "target_asset_type": "Data Product Port Asset" + } + }, + { + "id": "01974f91-aebd-7386-ab09-ab04d8462a10", + "kind": "relation", + "name": "governs functioning of", + "public_id": "DataContractGovernsFunctioningOfOutputPort", + "cardinality": { + "min": 0, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "Data Contract", + "target_asset_type": "Data Product Port" + } + }, + { + "id": "01974f91-afe7-7a4c-88f0-306ca4a99049", + "kind": "relation", + "name": "is implemented by", + "public_id": "DataProductPortIsImplementedBySystem", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Product Port", + "target_asset_type": "System" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-000000031108", + "kind": "asset_type", + "name": "Data Quality Dimension", + "public_id": "DataQualityDimension", + "parent_name": "Governance Asset", + "attributes": [ + { + "id": "525fe7d4-1627-43af-87a7-092a5dd2f41d", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 1, + "max": 1 + } + } + ], + "relations": [ + { + "id": "d12bb41b-7f80-4985-8026-54617901f983", + "kind": "relation", + "name": "impacts", + "public_id": "IssueImpactsAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Issue", + "target_asset_type": "Asset" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-090000010012", + "kind": "asset_type", + "name": "Data Quality Job", + "public_id": "DataQualityJob", + "parent_name": "Data Asset", + "attributes": [ + { + "id": "01922077-c657-78ca-a037-e1a6c7fb6e75", + "kind": "attribute", + "name": "Job Filter", + "public_id": "JobFilter", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "01922077-c657-78ca-a037-e1a6c7fb6e76", + "kind": "attribute", + "name": "Job Row Filter", + "public_id": "JobRowFilter", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "01922077-c657-78ca-a037-e1a6c7fb6e77", + "kind": "attribute", + "name": "Last Job Run", + "public_id": "LastJobRun", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "01922077-c657-78ca-a037-e1a6c7fb6e78", + "kind": "attribute", + "name": "Last Successful Job Run", + "public_id": "LastSuccessfulJobRun", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "01922077-c657-78ca-a037-e1a6c7fb6e79", + "kind": "attribute", + "name": "Last Run Status", + "public_id": "LastRunStatus", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "01922077-c657-78ca-a037-e1a6c7fb6e7b", + "kind": "attribute", + "name": "Predicate", + "public_id": "Predicate", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "01922077-d0b7-7cd6-8f9f-3074dcb9f6d2", + "kind": "attribute", + "name": "Global Score", + "public_id": "GlobalScore", + "cardinality": { + "min": 1, + "max": 1 + } + } + ], + "relations": [ + { + "id": "01922077-d9d2-779b-a5ff-03f27f61f0d5", + "kind": "relation", + "name": "contains", + "public_id": "DataAssetContainsColumn", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Asset", + "target_asset_type": "Column" + } + }, + { + "id": "01922077-d9d2-779b-a5ff-03f27f61f0d6", + "kind": "relation", + "name": "governs", + "public_id": "DataQualityRuleGovernsDataQualityJob", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Quality Rule", + "target_asset_type": "Data Quality Job" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-000000031107", + "kind": "asset_type", + "name": "Data Quality Metric", + "public_id": "DataQualityMetric", + "parent_name": "Rule", + "attributes": [ + { + "id": "4cf8616a-b2bb-4e31-9d06-7b19db33e24e", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "c7eb8e19-6885-48f6-bfbf-8ba7e7ef8319", + "kind": "attribute", + "name": "Descriptive Example", + "public_id": "DescriptiveExample", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "4d6ec15e-ab05-4e9b-97d4-ccb1ace6e728", + "kind": "attribute", + "name": "Exception Scenario", + "public_id": "ExceptionScenario", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "fb2ccf82-be8d-4863-be35-a4f79b3cd869", + "kind": "attribute", + "name": "Threshold", + "public_id": "Threshold", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "28db096f-9f84-4689-a614-0129bd7f9e51", + "kind": "attribute", + "name": "Loaded Rows", + "public_id": "LoadedRows", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "23f8e5b5-82f8-4a69-a0f4-7b2ac9e1b74f", + "kind": "attribute", + "name": "Rows Passed", + "public_id": "RowsPassed", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "d6add7c3-589e-4cbf-a436-c033ce27ad69", + "kind": "attribute", + "name": "Rows Failed", + "public_id": "RowsFailed", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "f87a13e0-6f29-4d8c-a4a3-e4a993285396", + "kind": "attribute", + "name": "Result", + "public_id": "Result", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "4fbfff27-3faf-41e6-90d3-ee0cbb9985ca", + "kind": "attribute", + "name": "Passing Fraction", + "public_id": "PassingFraction", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "e1f098d7-5088-4c51-8fd2-87a2c4a88644", + "kind": "attribute", + "name": "Entity Load Date", + "public_id": "EntityLoadDate", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "8baa4cd3-9536-4df7-ba48-1a1c4812f158", + "kind": "attribute", + "name": "Inclusion Scenario", + "public_id": "InclusionScenario", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "ad77c8c0-c295-4e06-a6d5-265a8c1f63b4", + "kind": "attribute", + "name": "Conformity Score", + "public_id": "ConformityScore", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "bb76f9cc-1a10-492f-be8e-2b9a0fa8f118", + "kind": "attribute", + "name": "Non Conformity Score", + "public_id": "NonConformityScore", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "304b56bc-fe64-4ad6-95fc-81651b77cc8a", + "kind": "attribute", + "name": "Effective Start Date", + "public_id": "EffectiveStartDate", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "7ef50741-433c-40c2-8a91-2ac8c736d569", + "kind": "attribute", + "name": "Effective End Date", + "public_id": "EffectiveEndDate", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "5d995578-f901-490d-987a-47008feef8e8", + "kind": "attribute", + "name": "Last Sync Date", + "public_id": "LastSyncDate", + "cardinality": { + "min": 1, + "max": null + } + } + ], + "relations": [ + { + "id": "8831a9af-3dd3-4c29-88e7-50f92c60594c", + "kind": "relation", + "name": "complies to", + "public_id": "AssetCompliesToGovernanceAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Asset", + "target_asset_type": "Governance Asset" + } + }, + { + "id": "3c7d5b2c-b338-407d-be2a-514a678db38e", + "kind": "relation", + "name": "complies to", + "public_id": "AssetCompliesToGovernanceAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Asset", + "target_asset_type": "Governance Asset" + } + }, + { + "id": "209ecc20-032e-411b-ad3f-942c17f4bf1d", + "kind": "relation", + "name": "executed by", + "public_id": "DataQualityRuleExecutedByDataQualityMetric", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Quality Rule", + "target_asset_type": "Data Quality Metric" + } + }, + { + "id": "7d76d2d0-32a4-4d3b-8a01-91e0f3801a12", + "kind": "relation", + "name": "violated by", + "public_id": "GovernanceAssetViolatedByIssue", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Governance Asset", + "target_asset_type": "Issue" + } + }, + { + "id": "2f6caff9-603a-49cc-bcde-49180d381b79", + "kind": "relation", + "name": "impacts", + "public_id": "IssueImpactsAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Issue", + "target_asset_type": "Asset" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-000000031205", + "kind": "asset_type", + "name": "Data Quality Rule", + "public_id": "DataQualityRule", + "parent_name": "Rule", + "attributes": [ + { + "id": "ba5c81f5-8297-4af7-b78e-125fbbfe08ab", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "a7f6dd35-26e0-47fe-98b4-689c2e6a77f3", + "kind": "attribute", + "name": "Predicate", + "public_id": "Predicate", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "c9c5453b-a26c-45db-8535-13e584e1974a", + "kind": "attribute", + "name": "Exception Scenario", + "public_id": "ExceptionScenario", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "236da74f-5604-462b-9ee4-bdd53e9fbfcc", + "kind": "attribute", + "name": "Measurement", + "public_id": "Measurement", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "2a242b19-8b8f-45d7-8c7b-e93ecf1059a6", + "kind": "attribute", + "name": "Descriptive Example", + "public_id": "DescriptiveExample", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "6b7f9baa-79b3-4d19-aed7-481fec8ba990", + "kind": "attribute", + "name": "Note", + "public_id": "Note", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "dd832d70-002f-4be6-992f-d4be67e0ae5d", + "kind": "attribute", + "name": "Inclusion Scenario", + "public_id": "InclusionScenario", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "57bbd2f4-e9c6-4687-92b2-1e17d220f23a", + "kind": "attribute", + "name": "Effective Start Date", + "public_id": "EffectiveStartDate", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "d47200ca-4aa6-461f-8509-96cd4d8bcee6", + "kind": "attribute", + "name": "Effective End Date", + "public_id": "EffectiveEndDate", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "01922077-ce4f-7f13-b1f2-a85ec760a8c0", + "kind": "attribute", + "name": "Rule Type", + "public_id": "RuleType", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "01922077-ce4f-7f13-b1f2-a85ec760a8c1", + "kind": "attribute", + "name": "Link to Data Quality Result Page", + "public_id": "LinkToDataQualityResultPage", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "01922077-ce4f-7f13-b1f2-a85ec760a8c2", + "kind": "attribute", + "name": "Rule Status", + "public_id": "RuleStatus", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "01922077-e1cc-7954-aa1f-d3e47651e552", + "kind": "attribute", + "name": "Loaded Rows", + "public_id": "LoadedRows", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "01922077-e1cc-7954-aa1f-d3e47651e553", + "kind": "attribute", + "name": "Finding Type", + "public_id": "FindingType", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-e1cc-7954-aa1f-d3e47651e554", + "kind": "attribute", + "name": "Score Status", + "public_id": "ScoreStatus", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-e1cc-7954-aa1f-d3e47651e555", + "kind": "attribute", + "name": "Score Details", + "public_id": "ScoreDetails", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "01922077-e1cc-7954-aa1f-d3e47651e556", + "kind": "attribute", + "name": "Data Quality Score", + "public_id": "DataQualityScore", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019261eb-5a99-71d2-a820-763a842098d0", + "kind": "attribute", + "name": "Rows Failed", + "public_id": "RowsFailed", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019261eb-5a99-71d2-a820-763a842098d1", + "kind": "attribute", + "name": "Rows Passed", + "public_id": "RowsPassed", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "a36646df-918d-4955-af2c-94d7ad417a3b", + "kind": "relation", + "name": "is enforced by", + "public_id": "PolicyIsEnforcedByRule", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Policy", + "target_asset_type": "Rule" + } + }, + { + "id": "90125c04-6ccd-4430-b24f-965594b5e26c", + "kind": "relation", + "name": "is implemented by", + "public_id": "RuleIsImplementedByBusinessRule", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Rule", + "target_asset_type": "Business Rule" + } + }, + { + "id": "4562ddfc-c2b6-4ab0-ba78-61e1985f86d7", + "kind": "relation", + "name": "allowed value set", + "public_id": "DataQualityRuleAllowedValueSetCodeSet", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Quality Rule", + "target_asset_type": "Code Set" + } + }, + { + "id": "6b63b232-6509-46c6-b5f0-b69f816ae65c", + "kind": "relation", + "name": "allowed value", + "public_id": "DataQualityRuleAllowedValueCodeValue", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Quality Rule", + "target_asset_type": "Code Value" + } + }, + { + "id": "f53dd8a5-5eba-4002-9e4c-8b470442942d", + "kind": "relation", + "name": "executed by", + "public_id": "DataQualityRuleExecutedByDataQualityMetric", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Quality Rule", + "target_asset_type": "Data Quality Metric" + } + }, + { + "id": "af7ca249-88c9-40fc-950a-f2f7c752a228", + "kind": "relation", + "name": "classified by", + "public_id": "DataQualityRuleClassifiedByDataQualityDimension", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Quality Rule", + "target_asset_type": "Data Quality Dimension" + } + }, + { + "id": "11cc6d43-4867-411a-ad9c-43e07a767b1e", + "kind": "relation", + "name": "complies to", + "public_id": "AssetCompliesToGovernanceAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Asset", + "target_asset_type": "Governance Asset" + } + }, + { + "id": "bf9d2ff6-f215-4277-8da1-ba9784110908", + "kind": "relation", + "name": "complies to", + "public_id": "AssetCompliesToGovernanceAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Asset", + "target_asset_type": "Governance Asset" + } + }, + { + "id": "817e0f49-e97d-45b3-b08d-7b8a17f932bf", + "kind": "relation", + "name": "governed by", + "public_id": "AssetGovernedByGovernanceAsset", + "cardinality": { + "min": 1, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Asset", + "target_asset_type": "Governance Asset" + } + }, + { + "id": "394da835-416d-4540-aab7-041e94eef757", + "kind": "relation", + "name": "governed by", + "public_id": "AssetGovernedByGovernanceAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Asset", + "target_asset_type": "Governance Asset" + } + }, + { + "id": "2fc9e6f9-182e-40e9-b19e-b63908bb4b83", + "kind": "relation", + "name": "resolves", + "public_id": "GovernanceAssetResolvesIssue", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Governance Asset", + "target_asset_type": "Issue" + } + }, + { + "id": "be0ea315-7460-4a8b-9626-d54f32e0858a", + "kind": "relation", + "name": "impacts", + "public_id": "IssueImpactsAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Issue", + "target_asset_type": "Asset" + } + }, + { + "id": "01922077-ce4f-7f13-b1f2-a85ec760a8c3", + "kind": "relation", + "name": "governs", + "public_id": "DataQualityRuleGovernsDataQualityJob", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Quality Rule", + "target_asset_type": "Data Quality Job" + } + }, + { + "id": "01922077-cfa6-7a5c-be87-85c5de00f831", + "kind": "relation", + "name": "governs", + "public_id": "DataQualityRuleGovernsColumn", + "cardinality": { + "min": 1, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Quality Rule", + "target_asset_type": "Column" + } + } + ] + }, + { + "id": "00000000-0000-0000-0001-000400000001", + "kind": "asset_type", + "name": "Data Set", + "public_id": "DataSet", + "parent_name": "Data Asset", + "attributes": [ + { + "id": "ef53b6a1-2224-470c-9d84-9643f98278ba", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "d52b9f20-3a9c-4013-b72c-ae890b8f4880", + "kind": "attribute", + "name": "Certified", + "public_id": "Certified", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "bbbf2c13-8606-41c3-bbc4-abc39c4154e7", + "kind": "attribute", + "name": "License", + "public_id": "License", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "ccd220f5-cb51-4910-83b8-05a5368c1d37", + "kind": "relation", + "name": "contains", + "public_id": "DataSetContainsDataElement", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Set", + "target_asset_type": "Data Element" + } + }, + { + "id": "d4540cc1-d5c4-4b5e-813b-a7d200b0bf70", + "kind": "relation", + "name": "related to", + "public_id": "DataSetRelatedToBusinessAsset", + "cardinality": { + "min": 1, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Set", + "target_asset_type": "Business Asset" + } + }, + { + "id": "9676aa1f-4d13-4887-9863-c4d19ce28f54", + "kind": "relation", + "name": "impacts", + "public_id": "IssueImpactsAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Issue", + "target_asset_type": "Asset" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-000000031231", + "kind": "asset_type", + "name": "Data Sharing Agreement", + "public_id": "DataSharingAgreement", + "parent_name": "Governance Asset", + "attributes": [ + { + "id": "768c5d0f-5158-4b2c-8edd-6d226eb37dd1", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "31023e17-95e8-422c-a97b-0ff7f85b6a29", + "kind": "attribute", + "name": "Purpose", + "public_id": "Purpose", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "eb5182b1-3afd-4998-81b7-9353dca39e49", + "kind": "attribute", + "name": "Exception Scenario", + "public_id": "ExceptionScenario", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "34480bc2-96ee-43ab-8960-0d1decaedf4b", + "kind": "attribute", + "name": "State Changed Date", + "public_id": "StateChangedDate", + "cardinality": { + "min": 0, + "max": null + } + } + ], + "relations": [ + { + "id": "5ca3c3ea-a5e1-4d1e-ac70-dcfab089960c", + "kind": "relation", + "name": "is requested by", + "public_id": "DataSharingAgreementIsRequestedByBusinessDimension", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Sharing Agreement", + "target_asset_type": "Business Dimension" + } + }, + { + "id": "787c1cd0-8a7e-40cf-97a3-aec5758349ac", + "kind": "relation", + "name": "is required by", + "public_id": "DataUsageIsRequiredByDataSharingAgreement", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Usage", + "target_asset_type": "Data Sharing Agreement" + } + }, + { + "id": "691926a0-3d94-411d-a38c-b38cf8fcbfad", + "kind": "relation", + "name": "impacts", + "public_id": "IssueImpactsAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Issue", + "target_asset_type": "Asset" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-000000031025", + "kind": "asset_type", + "name": "Data Structure", + "public_id": "DataStructure", + "parent_name": "Data Asset", + "attributes": [ + { + "id": "37d5bd2c-668e-4e4e-b538-8b7bca09c25e", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "93320346-b7bd-46c0-a4fd-3e0f4cbe32e7", + "kind": "attribute", + "name": "Descriptive Example", + "public_id": "DescriptiveExample", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "2bbdf02f-1472-446f-b9c2-920bca2d77b0", + "kind": "attribute", + "name": "Location", + "public_id": "Location", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "6200db5b-deb1-4b54-9bf3-9a8a88d191a4", + "kind": "attribute", + "name": "Note", + "public_id": "Note", + "cardinality": { + "min": 0, + "max": null + } + } + ], + "relations": [ + { + "id": "08b28559-d3d1-4fe2-9c34-60fda6315f30", + "kind": "relation", + "name": "represents", + "public_id": "BusinessAssetRepresentsDataAsset", + "cardinality": { + "min": 1, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Asset", + "target_asset_type": "Data Asset" + } + }, + { + "id": "29323b2a-c6e0-4c8b-805f-ad82b65f4fbe", + "kind": "relation", + "name": "implemented in", + "public_id": "DataAssetImplementedInTechnologyAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Asset", + "target_asset_type": "Technology Asset" + } + }, + { + "id": "cd50d10d-90ec-40ef-a17b-eb7545e5d6eb", + "kind": "relation", + "name": "impacts", + "public_id": "IssueImpactsAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Issue", + "target_asset_type": "Asset" + } + } + ] + }, + { + "id": "c0e00000-0000-0000-0000-000000039031", + "kind": "asset_type", + "name": "Data Subject Category", + "public_id": "DataSubjectCategory", + "parent_name": "Business Dimension", + "attributes": [ + { + "id": "01922077-f87c-7d88-9c11-c35f00e9d37f", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "01922077-f87c-7d88-9c11-c35f00e9d385", + "kind": "attribute", + "name": "Note", + "public_id": "Note", + "cardinality": { + "min": 0, + "max": null + } + } + ], + "relations": [ + { + "id": "01922077-f87c-7d88-9c11-c35f00e9d380", + "kind": "relation", + "name": "groups", + "public_id": "BusinessAssetGroupsBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Asset", + "target_asset_type": "Business Asset" + } + }, + { + "id": "01922077-f87c-7d88-9c11-c35f00e9d381", + "kind": "relation", + "name": "groups", + "public_id": "BusinessAssetGroupsBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Asset", + "target_asset_type": "Business Asset" + } + }, + { + "id": "01922077-f87c-7d88-9c11-c35f00e9d382", + "kind": "relation", + "name": "classifies", + "public_id": "BusinessDimensionClassifiesAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Dimension", + "target_asset_type": "Asset" + } + }, + { + "id": "01922077-f87c-7d88-9c11-c35f00e9d383", + "kind": "relation", + "name": "classifies", + "public_id": "BusinessDimensionClassifiesAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Dimension", + "target_asset_type": "Asset" + } + }, + { + "id": "01922077-f87c-7d88-9c11-c35f00e9d384", + "kind": "relation", + "name": "complies to", + "public_id": "AssetCompliesToGovernanceAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Asset", + "target_asset_type": "Governance Asset" + } + }, + { + "id": "01922077-fd1e-7679-993b-0e9a66841a81", + "kind": "relation", + "name": "has information in", + "public_id": "DataSubjectCategoryHasInformationInDataSet", + "cardinality": { + "min": 1, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Subject Category", + "target_asset_type": "Data Set" + } + }, + { + "id": "01922077-fd1e-7679-993b-0e9a66841a82", + "kind": "relation", + "name": "processes information about", + "public_id": "BusinessProcessProcessesInformationAboutDataSubjectCategory", + "cardinality": { + "min": 1, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Process", + "target_asset_type": "Data Subject Category" + } + }, + { + "id": "01922077-fd1e-7679-993b-0e9a66841a83", + "kind": "relation", + "name": "allows processing for", + "public_id": "DataSharingAgreementAllowsProcessingForDataSubjectCategory", + "cardinality": { + "min": 1, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Sharing Agreement", + "target_asset_type": "Data Subject Category" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-000000031131", + "kind": "asset_type", + "name": "Data Usage", + "public_id": "DataUsage", + "parent_name": "Data Asset", + "attributes": [ + { + "id": "b7ddfb62-41c0-42cf-a80c-173ad90e5a5f", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "ba6f7e49-9433-4327-86cf-384f224ce2e0", + "kind": "attribute", + "name": "Purpose", + "public_id": "Purpose", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "a1b80b4d-f6c5-4872-898d-0bf187850820", + "kind": "attribute", + "name": "Scope", + "public_id": "Scope", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "571a2622-7e3d-421f-9ef1-acc14da85e5d", + "kind": "attribute", + "name": "Last Review Date", + "public_id": "LastReviewDate", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "87551357-3a19-4b1f-bd18-24d4873a7e07", + "kind": "attribute", + "name": "Materiality", + "public_id": "Materiality", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "a1fcd198-b1e5-44eb-b850-0e81ae650964", + "kind": "attribute", + "name": "Security Classification", + "public_id": "SecurityClassification", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "2370f83c-abbc-4926-bae2-f1b41cca1f9e", + "kind": "attribute", + "name": "Effective Start Date", + "public_id": "EffectiveStartDate", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "8533a374-047c-4338-9fe1-6e86000333cf", + "kind": "attribute", + "name": "Effective End Date", + "public_id": "EffectiveEndDate", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "1612d8a5-ff71-4ad3-9d2e-880745de2a30", + "kind": "attribute", + "name": "Inclusion Scenario", + "public_id": "InclusionScenario", + "cardinality": { + "min": 0, + "max": null + } + } + ], + "relations": [ + { + "id": "ee9d3898-ae4a-4899-ad28-d8998655fb21", + "kind": "relation", + "name": "implemented in", + "public_id": "DataAssetImplementedInTechnologyAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Asset", + "target_asset_type": "Technology Asset" + } + }, + { + "id": "4606630c-e690-4290-b8c8-e1e481abdd74", + "kind": "relation", + "name": "is required by", + "public_id": "DataUsageIsRequiredByDataSharingAgreement", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Usage", + "target_asset_type": "Data Sharing Agreement" + } + }, + { + "id": "a65d6f5a-8807-445d-b961-7bd3e3883bf4", + "kind": "relation", + "name": "is essential for", + "public_id": "AssetIsEssentialForDataUsage", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Asset", + "target_asset_type": "Data Usage" + } + }, + { + "id": "19489353-93c1-4e70-aa6f-8b3a1e35a8d5", + "kind": "relation", + "name": "is essential for", + "public_id": "AssetIsEssentialForDataUsage", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Asset", + "target_asset_type": "Data Usage" + } + }, + { + "id": "a67a2a25-b172-46f5-ac7f-45420522689c", + "kind": "relation", + "name": "impacts", + "public_id": "IssueImpactsAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Issue", + "target_asset_type": "Asset" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-000000031006", + "kind": "asset_type", + "name": "Database", + "public_id": "Database", + "parent_name": "Technology Asset", + "attributes": [ + { + "id": "e46cbb51-e819-4b2d-aaac-dcbc8d93af3f", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "d74178a7-fb48-4afa-826d-baf36b3e7643", + "kind": "attribute", + "name": "Scope", + "public_id": "Scope", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "313a3096-58cc-4de4-8490-3c3f7fbc6042", + "kind": "attribute", + "name": "Location", + "public_id": "Location", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "c9897603-e60f-419a-aaf7-eb4d3cac7258", + "kind": "attribute", + "name": "Last Sync Date", + "public_id": "LastSyncDate", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "911c3b93-c3d1-4b15-a77a-1ef6a1d2c235", + "kind": "attribute", + "name": "Note", + "public_id": "Note", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "01330d32-496e-40aa-85f3-a769b866a136", + "kind": "attribute", + "name": "Data Source Type", + "public_id": "DataSourceType", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-dadc-7fad-b807-79fea1d3779f", + "kind": "attribute", + "name": "Description from source system", + "public_id": "DescriptionFromSourceSystem", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-ef6b-77da-a737-8df06a4428f4", + "kind": "attribute", + "name": "Owner in Source", + "public_id": "OwnerInSource", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-efc3-79ac-82c3-873a6210c258", + "kind": "attribute", + "name": "Source Tags", + "public_id": "SourceTags", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "01922078-0d2b-7da9-b43b-4ca4c6ed39b8", + "kind": "attribute", + "name": "URL", + "public_id": "Url", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "1e93c109-f2a5-4a4b-9861-46ae0a60de59", + "kind": "relation", + "name": "has", + "public_id": "TechnologyAssetHasSchema", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Technology Asset", + "target_asset_type": "Schema" + } + }, + { + "id": "89021e55-dfa3-415e-8fad-8b354541d12a", + "kind": "relation", + "name": "implemented in", + "public_id": "DataAssetImplementedInTechnologyAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Asset", + "target_asset_type": "Technology Asset" + } + }, + { + "id": "9db94b32-086f-4d9c-8d7b-365c5d3e9d45", + "kind": "relation", + "name": "groups", + "public_id": "TechnologyAssetGroupsTechnologyAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Technology Asset", + "target_asset_type": "Technology Asset" + } + }, + { + "id": "7aec7e81-46b0-48e1-a6de-76766a554f0b", + "kind": "relation", + "name": "groups", + "public_id": "TechnologyAssetGroupsTechnologyAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Technology Asset", + "target_asset_type": "Technology Asset" + } + }, + { + "id": "509bc81f-9d68-432f-97c5-3afcfef1e122", + "kind": "relation", + "name": "is part of", + "public_id": "TableIsPartOfDatabase", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Table", + "target_asset_type": "Database" + } + }, + { + "id": "ec80519c-8425-4af5-9d96-5ac71037ca51", + "kind": "relation", + "name": "impacts", + "public_id": "IssueImpactsAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Issue", + "target_asset_type": "Asset" + } + }, + { + "id": "63ab6632-9b8a-4c87-9f69-1d78bc672448", + "kind": "relation", + "name": "source system for", + "public_id": "TechnologyAssetSourceSystemForDataAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Technology Asset", + "target_asset_type": "Data Asset" + } + }, + { + "id": "01922077-e545-7c7b-adbb-f8d414df0df0", + "kind": "relation", + "name": "governed by", + "public_id": "AssetGovernedByGovernanceAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Asset", + "target_asset_type": "Governance Asset" + } + } + ] + }, + { + "id": "00000000-0000-0000-0001-000400000009", + "kind": "asset_type", + "name": "Database View", + "public_id": "DatabaseView", + "parent_name": "Table", + "attributes": [ + { + "id": "2b9853f8-24e8-45f1-ace6-2b58eff32366", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "f5492349-6b2e-427a-9f92-d1c3740903e8", + "kind": "attribute", + "name": "Description from source system", + "public_id": "DescriptionFromSourceSystem", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019c195a-984a-7769-98e2-fbd6e253d9b8", + "kind": "attribute", + "name": "Business Name", + "public_id": "BusinessName", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "ac3a453b-b71a-41d0-a249-81f415680e3d", + "kind": "attribute", + "name": "Table Type", + "public_id": "TableType", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "99f04493-2cdf-40cd-a6cf-18e3cfcbe5a3", + "kind": "attribute", + "name": "Empty values definition override", + "public_id": "EmptyValuesDefinitionOverride", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "a5424bea-4189-4e13-b084-65281d2fcf1d", + "kind": "attribute", + "name": "Refresh Conflict", + "public_id": "RefreshConflict", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "e3244467-00cc-42e5-bf2d-a7c20dd27bf2", + "kind": "attribute", + "name": "Profiling Information", + "public_id": "ProfilingInformation", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "40ad1d04-e266-483f-ae88-99bc9b8219b4", + "kind": "attribute", + "name": "Glue database name", + "public_id": "GlueDatabaseName", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "3f8f26c2-494b-4a87-ae9a-ec2c6ea61f6e", + "kind": "attribute", + "name": "Glue table name", + "public_id": "GlueTableName", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "fafc608b-0218-4894-a6df-e363c4c085d8", + "kind": "attribute", + "name": "Source Tags", + "public_id": "SourceTags", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "01922077-efa7-756c-bbf8-a10bf4982295", + "kind": "attribute", + "name": "Owner in Source", + "public_id": "OwnerInSource", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-f4a3-7775-a40d-270c935f88a5", + "kind": "attribute", + "name": "URL", + "public_id": "Url", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0196bf61-6803-7375-b41e-bd42fc3a7801", + "kind": "attribute", + "name": "Popularity Score", + "public_id": "PopularityScore", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "28de9b7e-bd05-4cdd-8505-ed184dbbe26c", + "kind": "relation", + "name": "is part of", + "public_id": "ColumnIsPartOfTable", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Column", + "target_asset_type": "Table" + } + }, + { + "id": "a60f7584-1c0e-46fb-bfa1-2314fc9f1de2", + "kind": "relation", + "name": "contains", + "public_id": "SchemaContainsTable", + "cardinality": { + "min": 0, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "Schema", + "target_asset_type": "Table" + } + }, + { + "id": "86731459-d25a-4664-bca2-f7fbd6631561", + "kind": "relation", + "name": "represents", + "public_id": "BusinessAssetRepresentsDataAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Asset", + "target_asset_type": "Data Asset" + } + }, + { + "id": "b59760b7-95cb-42fe-a95c-c574366898e8", + "kind": "relation", + "name": "implemented in", + "public_id": "DataAssetImplementedInTechnologyAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Asset", + "target_asset_type": "Technology Asset" + } + }, + { + "id": "69497db7-1176-4720-85fd-96aa93e20610", + "kind": "relation", + "name": "impacts", + "public_id": "IssueImpactsAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Issue", + "target_asset_type": "Asset" + } + }, + { + "id": "b4bfcf4b-08d4-41d6-a26a-2727ad66a60f", + "kind": "relation", + "name": "source of", + "public_id": "DataStructureSourceOfMappingSpecification", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Structure", + "target_asset_type": "Mapping Specification" + } + }, + { + "id": "c9747541-4bfc-426a-9f45-e29d38c5ba0e", + "kind": "relation", + "name": "target of", + "public_id": "DataStructureTargetOfMappingSpecification", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Structure", + "target_asset_type": "Mapping Specification" + } + }, + { + "id": "55724b33-1665-4bbe-95b4-1b2edc998daa", + "kind": "relation", + "name": "contains", + "public_id": "FileContainsTable", + "cardinality": { + "min": 0, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "File", + "target_asset_type": "Table" + } + }, + { + "id": "a3ae6e90-8e44-4050-bc2a-8f1a0f6d7876", + "kind": "relation", + "name": "contains", + "public_id": "FileGroupContainsTable", + "cardinality": { + "min": 0, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "File Group", + "target_asset_type": "Table" + } + }, + { + "id": "01922078-0ac6-75e2-93be-df9691d7d54f", + "kind": "relation", + "name": "represents", + "public_id": "DataAssetRepresentsTable", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Asset", + "target_asset_type": "Table" + } + }, + { + "id": "01922078-127a-7226-ab4f-d044a9916dda", + "kind": "relation", + "name": "is target of", + "public_id": "DataModelContainsTable", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Model", + "target_asset_type": "Table" + } + }, + { + "id": "01922078-127a-7226-ab4f-d044a9916ddb", + "kind": "relation", + "name": "is source for", + "public_id": "TableIsSourceForDatabaseView", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Table", + "target_asset_type": "Database View" + } + }, + { + "id": "01922078-127a-7226-ab4f-d044a9916ddc", + "kind": "relation", + "name": "is source for", + "public_id": "DataAssetIsSourceForBIReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Asset", + "target_asset_type": "BI Report" + } + }, + { + "id": "01922078-142c-7d9a-8f65-cf032b151482", + "kind": "relation", + "name": "contains", + "public_id": "SapDatasphereSpaceContainsDataAsset", + "cardinality": { + "min": 0, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "SAP Datasphere Space", + "target_asset_type": "Data Asset" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-000000031405", + "kind": "asset_type", + "name": "Databricks AI Model Version", + "public_id": "DatabricksAIModel", + "parent_name": "AI Model Version", + "attributes": [ + { + "id": "01922078-0664-7f89-992b-9f0a561b42a2", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922078-0664-7f89-992b-9f0a561b42a3", + "kind": "attribute", + "name": "Model Accuracy", + "public_id": "ModelAccuracy", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922078-0664-7f89-992b-9f0a561b42a4", + "kind": "attribute", + "name": "Model Precision", + "public_id": "ModelPrecision", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922078-0664-7f89-992b-9f0a561b42a5", + "kind": "attribute", + "name": "Mean Squared Error", + "public_id": "MeanSquaredError", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922078-0664-7f89-992b-9f0a561b42a6", + "kind": "attribute", + "name": "Mean Absolute Error", + "public_id": "MeanAbsoluteError", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922078-0664-7f89-992b-9f0a561b42a7", + "kind": "attribute", + "name": "Model Type", + "public_id": "ModelType", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922078-0664-7f89-992b-9f0a561b42a9", + "kind": "attribute", + "name": "Feature Importance", + "public_id": "FeatureImportance", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922078-0664-7f89-992b-9f0a561b42ab", + "kind": "attribute", + "name": "Version", + "public_id": "Version", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922078-0664-7f89-992b-9f0a561b42ac", + "kind": "attribute", + "name": "Description from source system", + "public_id": "DescriptionFromSourceSystem", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922078-0664-7f89-992b-9f0a561b42ad", + "kind": "attribute", + "name": "Repository", + "public_id": "Repository", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0199b495-e75b-787d-b9f1-77706382e757", + "kind": "attribute", + "name": "Required Content Filtering", + "public_id": "ContentFilter", + "cardinality": { + "min": 0, + "max": null + } + } + ], + "relations": [ + { + "id": "01922078-0664-7f89-992b-9f0a561b42aa", + "kind": "relation", + "name": "uses", + "public_id": "AIUseCaseUsesAIModel", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "AI Use Case", + "target_asset_type": "AI Model Version" + } + }, + { + "id": "01922078-0664-7f89-992b-9f0a561b42ae", + "kind": "relation", + "name": "trained by", + "public_id": "AIModelTrainedByAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "AI Model Version", + "target_asset_type": "Asset" + } + }, + { + "id": "01922078-0664-7f89-992b-9f0a561b42b1", + "kind": "relation", + "name": "is provided by", + "public_id": "AIModelProvidedByVendor", + "cardinality": { + "min": 0, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "AI Model Version", + "target_asset_type": "Vendor" + } + }, + { + "id": "01922078-0664-7f89-992b-9f0a561b42b2", + "kind": "relation", + "name": "uses", + "public_id": "AIModelUsesAIModel", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "AI Model Version", + "target_asset_type": "AI Model Version" + } + }, + { + "id": "01922078-0664-7f89-992b-9f0a561b42b3", + "kind": "relation", + "name": "uses", + "public_id": "AIModelUsesAIModel", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "AI Model Version", + "target_asset_type": "AI Model Version" + } + }, + { + "id": "01922078-0cdc-722f-b9d9-c419dc361059", + "kind": "relation", + "name": "complies to", + "public_id": "AssetCompliesToGovernanceAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Asset", + "target_asset_type": "Governance Asset" + } + }, + { + "id": "01992462-0e81-7899-8f2c-3f8c9c5313f8", + "kind": "relation", + "name": "contains", + "public_id": "AIModelContainsFileContainer", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "AI Model Version", + "target_asset_type": "Storage Container" + } + }, + { + "id": "01992462-1e88-7bc6-b042-b81447c41cea", + "kind": "relation", + "name": "deploys", + "public_id": "AIProjectDeploysAIModel", + "cardinality": { + "min": 0, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "AI Project", + "target_asset_type": "AI Model Version" + } + }, + { + "id": "019ccde7-cf13-7079-8a60-67e109063ca2", + "kind": "relation", + "name": "has version", + "public_id": "ModelHasVersion", + "cardinality": { + "min": 0, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "AI Base Model", + "target_asset_type": "AI Model Version" + } + }, + { + "id": "019ccde7-cf13-7079-8a60-67e109063ca3", + "kind": "relation", + "name": "is deployed by", + "public_id": "ModelVersionIsDeployedByModelDeployment", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "AI Model Version", + "target_asset_type": "AI Model Deployment" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-000000031413", + "kind": "asset_type", + "name": "Databricks Schema", + "public_id": "DatabricksSchema", + "parent_name": "Schema", + "attributes": [ + { + "id": "0199b496-0b8e-75c4-b7fe-535c407a50c7", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0199b496-0b8e-75c4-b7fe-535c407a50c8", + "kind": "attribute", + "name": "Description from source system", + "public_id": "DescriptionFromSourceSystem", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0199b496-0b8e-75c4-b7fe-535c407a50c9", + "kind": "attribute", + "name": "File Location", + "public_id": "FileLocation", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0199b496-0b8e-75c4-b7fe-535c407a50ca", + "kind": "attribute", + "name": "URL", + "public_id": "Url", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0199b496-0b8e-75c4-b7fe-535c407a50cb", + "kind": "attribute", + "name": "Owner in Source", + "public_id": "OwnerInSource", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0199b496-0b8e-75c4-b7fe-535c407a50cc", + "kind": "attribute", + "name": "Source Tags", + "public_id": "SourceTags", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0199b496-0b8e-75c4-b7fe-535c407a50cd", + "kind": "attribute", + "name": "Empty values definition override", + "public_id": "EmptyValuesDefinitionOverride", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0199b496-0b8e-75c4-b7fe-535c407a50ce", + "kind": "attribute", + "name": "Data Source Type", + "public_id": "DataSourceType", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0199b496-0b8e-75c4-b7fe-535c407a50cf", + "kind": "attribute", + "name": "Synchronization Status", + "public_id": "SynchronizationStatus", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "0199b496-0f31-760f-9ad2-5837333f6b79", + "kind": "relation", + "name": "contains", + "public_id": "DatabricksSchemaContainsDatabricksVolume", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Databricks Schema", + "target_asset_type": "Databricks Volume" + } + }, + { + "id": "019a44c9-da8b-7840-9911-45a28e473c0d", + "kind": "relation", + "name": "contains", + "public_id": "SchemaContainsTable", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Schema", + "target_asset_type": "Table" + } + }, + { + "id": "019a44c9-da8b-7840-9911-45a28e473c0e", + "kind": "relation", + "name": "has", + "public_id": "TechnologyAssetHasSchema", + "cardinality": { + "min": 0, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "Technology Asset", + "target_asset_type": "Schema" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-000000031412", + "kind": "asset_type", + "name": "Databricks Volume", + "public_id": "DatabricksVolume", + "parent_name": "Storage Container", + "attributes": [ + { + "id": "0199b496-0d57-7cc3-90be-c899744f4854", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0199b496-0d57-7cc3-90be-c899744f4855", + "kind": "attribute", + "name": "Catalog Name", + "public_id": "CatalogName", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0199b496-0d57-7cc3-90be-c899744f4856", + "kind": "attribute", + "name": "Schema Name", + "public_id": "SchemaName", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0199b496-0d58-79f7-a0c7-3dfcc748ecac", + "kind": "attribute", + "name": "Volume Type", + "public_id": "VolumeType", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0199b496-0d58-79f7-a0c7-3dfcc748ecad", + "kind": "attribute", + "name": "Volume Id", + "public_id": "VolumeId", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0199b496-0d58-79f7-a0c7-3dfcc748ecae", + "kind": "attribute", + "name": "File Location", + "public_id": "FileLocation", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0199b496-0d58-79f7-a0c7-3dfcc748ecaf", + "kind": "attribute", + "name": "Description from source system", + "public_id": "DescriptionFromSourceSystem", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "0199b496-0d58-79f7-a0c7-3dfcc748ecb0", + "kind": "relation", + "name": "contains", + "public_id": "FileContainerContainsFileContainer", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Storage Container", + "target_asset_type": "Storage Container" + } + }, + { + "id": "0199b496-0d58-79f7-a0c7-3dfcc748ecb1", + "kind": "relation", + "name": "contains", + "public_id": "FileStorageContainsFileContainer", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "File Storage", + "target_asset_type": "Storage Container" + } + }, + { + "id": "0199b496-0f1d-7480-ac8b-20f7fc54aafd", + "kind": "relation", + "name": "contains", + "public_id": "DatabricksSchemaContainsDatabricksVolume", + "cardinality": { + "min": 0, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "Databricks Schema", + "target_asset_type": "Databricks Volume" + } + }, + { + "id": "019a44c9-dae7-7dd9-8dbd-2b10665426cc", + "kind": "relation", + "name": "contains", + "public_id": "FileContainerContainsFileContainer", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Storage Container", + "target_asset_type": "Storage Container" + } + } + ] + }, + { + "id": "00000000-0000-0000-0001-110000000401", + "kind": "asset_type", + "name": "Dataplex Lake", + "public_id": "DataplexLake", + "parent_name": "Data Asset", + "attributes": [ + { + "id": "01922077-d29a-7417-906e-826468eaff3e", + "kind": "attribute", + "name": "Labels", + "public_id": "Labels", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "01922077-d29a-7417-906e-826468eaff3f", + "kind": "attribute", + "name": "Lake Id", + "public_id": "LakeId", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-d29a-7417-906e-826468eaff40", + "kind": "attribute", + "name": "Lake Status", + "public_id": "LakeStatus", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-d454-75f3-95d8-249f4360e0bf", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-d454-75f3-95d8-249f4360e0c0", + "kind": "attribute", + "name": "Location", + "public_id": "Location", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-f056-70f9-ab91-bf2dfcc62da2", + "kind": "attribute", + "name": "Description from source system", + "public_id": "DescriptionFromSourceSystem", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922078-0d01-72d8-a295-72199c1809ae", + "kind": "attribute", + "name": "URL", + "public_id": "Url", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "01922077-da74-73b4-838b-4daf464eb251", + "kind": "relation", + "name": "groups", + "public_id": "GcpProjectGroupsDataplexLake", + "cardinality": { + "min": 0, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "GCP Project", + "target_asset_type": "Dataplex Lake" + } + }, + { + "id": "01922077-da74-73b4-838b-4daf464eb252", + "kind": "relation", + "name": "contains", + "public_id": "DataplexLakeContainsDataplexZone", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Dataplex Lake", + "target_asset_type": "Dataplex Zone" + } + } + ] + }, + { + "id": "00000000-0000-0000-0001-110000000402", + "kind": "asset_type", + "name": "Dataplex Zone", + "public_id": "DataplexZone", + "parent_name": "Data Asset", + "attributes": [ + { + "id": "01922077-d34f-72e9-ab6b-76e4ad8841d0", + "kind": "attribute", + "name": "Labels", + "public_id": "Labels", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "01922077-d34f-72e9-ab6b-76e4ad8841d1", + "kind": "attribute", + "name": "Zone Name", + "public_id": "ZoneName", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-d48d-7160-b188-f410e3228000", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-d48d-7160-b188-f410e3228001", + "kind": "attribute", + "name": "Location", + "public_id": "Location", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-f06e-7b41-bfb4-396a50cba385", + "kind": "attribute", + "name": "Description from source system", + "public_id": "DescriptionFromSourceSystem", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922078-0d17-7969-bf8f-eed7548c4b09", + "kind": "attribute", + "name": "URL", + "public_id": "Url", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "01922077-da9a-753f-af13-505ba60f6915", + "kind": "relation", + "name": "contains", + "public_id": "DataplexLakeContainsDataplexZone", + "cardinality": { + "min": 0, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "Dataplex Lake", + "target_asset_type": "Dataplex Zone" + } + }, + { + "id": "01922077-da9a-753f-af13-505ba60f6916", + "kind": "relation", + "name": "contains", + "public_id": "DataplexZoneContainsTable", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Dataplex Zone", + "target_asset_type": "Table" + } + }, + { + "id": "01922077-f019-71e8-bcf7-323872a3e86d", + "kind": "relation", + "name": "contains", + "public_id": "DataplexZoneContainsSchema", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Dataplex Zone", + "target_asset_type": "Schema" + } + }, + { + "id": "01922078-045e-7d14-8d3d-992d190b2429", + "kind": "relation", + "name": "contains", + "public_id": "DataplexZoneContainsGcsBucket", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Dataplex Zone", + "target_asset_type": "GCS Bucket" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-000000031303", + "kind": "asset_type", + "name": "Directory", + "public_id": "Directory", + "parent_name": "Storage Container", + "attributes": [ + { + "id": "95240118-9ede-4c8d-ae59-a99f5e205e5b", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "7b3e23a6-f385-40ef-9962-1b2cfb828b22", + "kind": "attribute", + "name": "Application Standards", + "public_id": "ApplicationStandards", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "36968acb-58fd-4042-a05c-88d343736186", + "kind": "attribute", + "name": "Application Regulation", + "public_id": "ApplicationRegulation", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "4db678a6-4de5-4ccf-b4d7-be7faeedbde1", + "kind": "attribute", + "name": "Scope", + "public_id": "Scope", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "c74be412-f4a7-47bc-abd3-30a057966cca", + "kind": "attribute", + "name": "Descriptive Example", + "public_id": "DescriptiveExample", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "37769714-f449-4d34-bd8f-41326e184655", + "kind": "attribute", + "name": "Location", + "public_id": "Location", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "eeb1f6d7-95b6-426a-85f5-1bc56eeb4be4", + "kind": "attribute", + "name": "Note", + "public_id": "Note", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "bb3a7ce1-0559-4341-8569-74335bd85184", + "kind": "attribute", + "name": "URL", + "public_id": "Url", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "15bce4c4-949c-452e-a912-83f7699139a0", + "kind": "relation", + "name": "contains", + "public_id": "FileContainerContainsFileContainer", + "cardinality": { + "min": 0, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "Storage Container", + "target_asset_type": "Storage Container" + } + }, + { + "id": "b01ca92b-7f57-4f2b-bf3a-e1483840b15d", + "kind": "relation", + "name": "contains", + "public_id": "FileContainerContainsFileContainer", + "cardinality": { + "min": 0, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "Storage Container", + "target_asset_type": "Storage Container" + } + }, + { + "id": "8f0d39ef-8743-4cb0-9fc0-0153b84332a8", + "kind": "relation", + "name": "contains", + "public_id": "DirectoryContainsFileGroup", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Directory", + "target_asset_type": "File Group" + } + }, + { + "id": "ab5f7ba2-f1a7-494a-8b6e-4c0c9625cb21", + "kind": "relation", + "name": "contains", + "public_id": "DirectoryContainsDirectory", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Directory", + "target_asset_type": "Directory" + } + }, + { + "id": "4be7b687-3f0a-4f9c-9ac5-e65a7405e118", + "kind": "relation", + "name": "contains", + "public_id": "DirectoryContainsDirectory", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Directory", + "target_asset_type": "Directory" + } + }, + { + "id": "dddb2352-240d-4a54-be46-71b456a4f110", + "kind": "relation", + "name": "contains", + "public_id": "FileContainerContainsFile", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Storage Container", + "target_asset_type": "File" + } + }, + { + "id": "50af48aa-f0a8-4385-88a5-54aa905b8982", + "kind": "relation", + "name": "implemented in", + "public_id": "DataAssetImplementedInTechnologyAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Asset", + "target_asset_type": "Technology Asset" + } + }, + { + "id": "7430b128-7204-493f-99e6-543d01686b62", + "kind": "relation", + "name": "system of record for", + "public_id": "TechnologyAssetSystemOfRecordForBusinessTerm", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Technology Asset", + "target_asset_type": "Business Term" + } + }, + { + "id": "458daa46-828d-4aa3-9d6a-88e2050e324f", + "kind": "relation", + "name": "system of use for", + "public_id": "TechnologyAssetSystemOfUseForBusinessTerm", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Technology Asset", + "target_asset_type": "Business Term" + } + }, + { + "id": "be953a47-2919-4a7c-9b09-9e350e88030a", + "kind": "relation", + "name": "source system for", + "public_id": "TechnologyAssetSourceSystemForBusinessTerm", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Technology Asset", + "target_asset_type": "Business Term" + } + }, + { + "id": "97ce630d-7902-41fa-80dd-510f93da6ef6", + "kind": "relation", + "name": "system of record for", + "public_id": "TechnologyAssetSystemOfRecordForDataAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Technology Asset", + "target_asset_type": "Data Asset" + } + }, + { + "id": "6bcecb74-47c6-4645-8236-893c87bba52c", + "kind": "relation", + "name": "system of use for", + "public_id": "TechnologyAssetSystemOfUseForDataAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Technology Asset", + "target_asset_type": "Data Asset" + } + }, + { + "id": "814ed6c7-e177-4197-9628-f2859eba58e8", + "kind": "relation", + "name": "source system for", + "public_id": "TechnologyAssetSourceSystemForDataAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Technology Asset", + "target_asset_type": "Data Asset" + } + }, + { + "id": "d0807a44-b016-457e-a61f-3df7b1967933", + "kind": "relation", + "name": "impacts", + "public_id": "IssueImpactsAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Issue", + "target_asset_type": "Asset" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-090000010021", + "kind": "asset_type", + "name": "Duplicate Score", + "public_id": "DuplicateScore", + "parent_name": "Data Quality Metric", + "attributes": [ + { + "id": "01922077-cd86-75f2-bf36-fc581c466f45", + "kind": "attribute", + "name": "Rows Failed", + "public_id": "RowsFailed", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "01922077-cd86-75f2-bf36-fc581c466f46", + "kind": "attribute", + "name": "Loaded Rows", + "public_id": "LoadedRows", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "01922077-cd86-75f2-bf36-fc581c466f47", + "kind": "attribute", + "name": "Measurement", + "public_id": "Measurement", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "01922077-cd86-75f2-bf36-fc581c466f48", + "kind": "attribute", + "name": "Passing Fraction", + "public_id": "PassingFraction", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "01922077-cd86-75f2-bf36-fc581c466f49", + "kind": "attribute", + "name": "Score Details", + "public_id": "ScoreDetails", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "01922077-cd86-75f2-bf36-fc581c466f4a", + "kind": "attribute", + "name": "Score Status", + "public_id": "ScoreStatus", + "cardinality": { + "min": 1, + "max": 1 + } + } + ], + "relations": [ + { + "id": "01922077-d937-7094-82dc-18ae6e9d47e6", + "kind": "relation", + "name": "executed by", + "public_id": "DataQualityRuleExecutedByDataQualityMetric", + "cardinality": { + "min": 1, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "Data Quality Rule", + "target_asset_type": "Data Quality Metric" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-110000000021", + "kind": "asset_type", + "name": "Fabric Capacity", + "public_id": "FabricCapacity", + "parent_name": "Storage Container", + "attributes": [ + { + "id": "0199b495-f0e3-7010-a114-bd714e25e6b7", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0199b495-f0e3-7010-a114-bd714e25e6b8", + "kind": "attribute", + "name": "Description from source system", + "public_id": "DescriptionFromSourceSystem", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "0199b495-f4f3-7ebc-bfd5-8241a05c6bf5", + "kind": "relation", + "name": "groups", + "public_id": "TechnologyAssetGroupsTechnologyAsset", + "cardinality": { + "min": 1, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "Technology Asset", + "target_asset_type": "Technology Asset" + } + }, + { + "id": "0199b495-f4f3-7ebc-bfd5-8241a05c6bf6", + "kind": "relation", + "name": "groups", + "public_id": "TechnologyAssetGroupsTechnologyAsset", + "cardinality": { + "min": 1, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Technology Asset", + "target_asset_type": "Technology Asset" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-110000000023", + "kind": "asset_type", + "name": "Fabric Lakehouse", + "public_id": "FabricLakehouse", + "parent_name": "Storage Container", + "attributes": [ + { + "id": "0199b495-f274-7caa-81da-6e7003d7defc", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0199b495-f274-7caa-81da-6e7003d7defd", + "kind": "attribute", + "name": "Description from source system", + "public_id": "DescriptionFromSourceSystem", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "0199b495-f57f-7ad2-8fbd-4d8dbbceefcc", + "kind": "relation", + "name": "contains", + "public_id": "FileContainerContainsFileContainer", + "cardinality": { + "min": 1, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "Storage Container", + "target_asset_type": "Storage Container" + } + }, + { + "id": "0199b495-f57f-7ad2-8fbd-4d8dbbceefcd", + "kind": "relation", + "name": "contains", + "public_id": "StorageContainerContainsStorageElement", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Storage Container", + "target_asset_type": "Storage Element" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-110000000024", + "kind": "asset_type", + "name": "Fabric Warehouse", + "public_id": "FabricWarehouse", + "parent_name": "Technology Asset", + "attributes": [ + { + "id": "0199b495-f332-7f42-8a78-ef84f7a65bae", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0199b495-f332-7f42-8a78-ef84f7a65baf", + "kind": "attribute", + "name": "Description from source system", + "public_id": "DescriptionFromSourceSystem", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "0199b495-f5b5-73c6-bc40-3b8f484b79c8", + "kind": "relation", + "name": "groups", + "public_id": "TechnologyAssetGroupsTechnologyAsset", + "cardinality": { + "min": 1, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "Technology Asset", + "target_asset_type": "Technology Asset" + } + }, + { + "id": "0199b495-f5b5-73c6-bc40-3b8f484b79c9", + "kind": "relation", + "name": "has", + "public_id": "TechnologyAssetHasSchema", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Technology Asset", + "target_asset_type": "Schema" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-110000000022", + "kind": "asset_type", + "name": "Fabric Workspace", + "public_id": "FabricWorkspace", + "parent_name": "Storage Container", + "attributes": [ + { + "id": "0199b495-f1ac-7ba4-9aff-b17cbe12aede", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0199b495-f1ac-7ba4-9aff-b17cbe12aedf", + "kind": "attribute", + "name": "Description from source system", + "public_id": "DescriptionFromSourceSystem", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "0199b495-f52d-70ae-81e9-f0d5cc5054be", + "kind": "relation", + "name": "groups", + "public_id": "TechnologyAssetGroupsTechnologyAsset", + "cardinality": { + "min": 1, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "Technology Asset", + "target_asset_type": "Technology Asset" + } + }, + { + "id": "0199b495-f52e-75c5-b5c4-f7d2cedc8a32", + "kind": "relation", + "name": "contains", + "public_id": "FileContainerContainsFileContainer", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Storage Container", + "target_asset_type": "Storage Container" + } + }, + { + "id": "0199b495-f52e-75c5-b5c4-f7d2cedc8a33", + "kind": "relation", + "name": "groups", + "public_id": "TechnologyAssetGroupsTechnologyAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Technology Asset", + "target_asset_type": "Technology Asset" + } + } + ] + }, + { + "id": "00000000-0000-0000-0001-000400000008", + "kind": "asset_type", + "name": "Field", + "public_id": "Field", + "parent_name": "Data Element", + "attributes": [], + "relations": [ + { + "id": "032d99f7-b411-4377-94df-0f8e3960c9e2", + "kind": "relation", + "name": "contains", + "public_id": "FileContainsField", + "cardinality": { + "min": 0, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "File", + "target_asset_type": "Field" + } + }, + { + "id": "143e2e32-8ea3-4589-9b2f-872b511a8192", + "kind": "relation", + "name": "impacts", + "public_id": "IssueImpactsAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Issue", + "target_asset_type": "Asset" + } + }, + { + "id": "f94cac42-e076-4110-b02f-433bcf906244", + "kind": "relation", + "name": "qualifies", + "public_id": "BusinessQualifierQualifiesAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Qualifier", + "target_asset_type": "Asset" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-000000031304", + "kind": "asset_type", + "name": "File", + "public_id": "File", + "parent_name": "Technology Asset", + "attributes": [ + { + "id": "d1be5103-af6e-4b01-8edf-2e11e5e26864", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "6921c4bd-d641-41f3-ba15-2e8879256a2c", + "kind": "attribute", + "name": "File Location", + "public_id": "FileLocation", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "eba27a3c-4c9d-4ea5-aa0c-6956f58b2124", + "kind": "attribute", + "name": "Purpose", + "public_id": "Purpose", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "bd206602-af12-4641-a0f2-272601366138", + "kind": "attribute", + "name": "Last Sync Date", + "public_id": "LastSyncDate", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "e4fa8990-3a9e-4574-9071-7bb6adda312c", + "kind": "attribute", + "name": "Note", + "public_id": "Note", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "52d730de-473e-47bb-825c-68b29b7359c7", + "kind": "attribute", + "name": "URL", + "public_id": "Url", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "1cfda05f-ebb5-4123-9a0e-755a7e042fbf", + "kind": "attribute", + "name": "Document size", + "public_id": "DocumentSize", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "f4dbab16-054c-42bb-a945-3a2bef95879e", + "kind": "attribute", + "name": "File Type", + "public_id": "FileType", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-9fca-7faf-af71-7947955a4b69", + "kind": "attribute", + "name": "External System Label", + "public_id": "ExternalSystemLabel", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "01922077-e933-714b-9dc1-0643e3864f4d", + "kind": "attribute", + "name": "Document creation date", + "public_id": "DocumentCreationDate", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-e933-714b-9dc1-0643e3864f4e", + "kind": "attribute", + "name": "Document modification date", + "public_id": "DocumentModificationDate", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-e933-714b-9dc1-0643e3864f4f", + "kind": "attribute", + "name": "Access Type", + "public_id": "AccessType", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "58e8367a-9e3c-41f6-8a37-26242b6a409f", + "kind": "relation", + "name": "contains", + "public_id": "FileContainsField", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "File", + "target_asset_type": "Field" + } + }, + { + "id": "43ded42b-26ab-4f7e-985a-734d2d780560", + "kind": "relation", + "name": "contains", + "public_id": "FileContainerContainsFile", + "cardinality": { + "min": 0, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "Storage Container", + "target_asset_type": "File" + } + }, + { + "id": "6c232ac5-5d00-428a-b17a-0a7057a0661f", + "kind": "relation", + "name": "implemented in", + "public_id": "DataAssetImplementedInTechnologyAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Asset", + "target_asset_type": "Technology Asset" + } + }, + { + "id": "35fa47a8-4c5e-4d1f-a2ba-99c291fe6adf", + "kind": "relation", + "name": "impacts", + "public_id": "IssueImpactsAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Issue", + "target_asset_type": "Asset" + } + }, + { + "id": "98ebe0c0-dd62-430f-995a-58b8d434b270", + "kind": "relation", + "name": "contains", + "public_id": "FileContainsTable", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "File", + "target_asset_type": "Table" + } + } + ] + }, + { + "id": "00000000-0000-0000-0001-002400000002", + "kind": "asset_type", + "name": "File Group", + "public_id": "FileGroup", + "parent_name": "Technology Asset", + "attributes": [ + { + "id": "3f5f4f4f-20d1-4242-888f-4472437deda0", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "20c69995-12db-497e-a897-4738813e2b89", + "kind": "attribute", + "name": "URL", + "public_id": "Url", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "f5f51f08-85eb-4f6c-9cc9-527b1582a101", + "kind": "attribute", + "name": "Document size", + "public_id": "DocumentSize", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "06a00e7e-a52b-44c3-93ce-5f15c5575bd1", + "kind": "attribute", + "name": "Number of Files", + "public_id": "NumberOfFiles", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "457f3b8f-5386-44ad-8c6e-96f3ebbd0705", + "kind": "attribute", + "name": "File Type", + "public_id": "FileType", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "bd37d088-5b64-4ca2-8fb2-749f7bf03641", + "kind": "relation", + "name": "contains", + "public_id": "FileGroupContainsTable", + "cardinality": { + "min": 0, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "File Group", + "target_asset_type": "Table" + } + }, + { + "id": "fca9442a-0c93-4073-8cfb-a0730aa5f213", + "kind": "relation", + "name": "contains", + "public_id": "DirectoryContainsFileGroup", + "cardinality": { + "min": 0, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "Directory", + "target_asset_type": "File Group" + } + } + ] + }, + { + "id": "00000000-0000-0000-0001-002900000001", + "kind": "asset_type", + "name": "File Storage", + "public_id": "FileStorage", + "parent_name": "System", + "attributes": [ + { + "id": "01922077-9aa4-7d4b-8876-7a72796b12b4", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": null + } + } + ], + "relations": [ + { + "id": "01922077-9aa4-7d4b-8876-7a72796b12b5", + "kind": "relation", + "name": "contains", + "public_id": "FileStorageContainsFileContainer", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "File Storage", + "target_asset_type": "Storage Container" + } + } + ] + }, + { + "id": "00000000-0000-0000-0001-000400000003", + "kind": "asset_type", + "name": "Foreign Key", + "public_id": "ForeignKey", + "parent_name": "Data Asset", + "attributes": [ + { + "id": "00e88b11-2fab-4e5c-ae4f-05a333dd3364", + "kind": "attribute", + "name": "Foreign Key Update Rule", + "public_id": "ForeignKeyUpdateRule", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "0c118c52-6a7a-4fb3-acc6-8ac06b848dcc", + "kind": "attribute", + "name": "Foreign Key Delete Rule", + "public_id": "ForeignKeyDeleteRule", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "0c491774-3cf0-4611-9e66-1280fb6d9def", + "kind": "attribute", + "name": "Foreign Key Evaluation Deferrability", + "public_id": "ForeignKeyEvaluationDeferrability", + "cardinality": { + "min": 1, + "max": 1 + } + } + ], + "relations": [ + { + "id": "8d658354-ab18-4448-8440-56c0509eb082", + "kind": "relation", + "name": "impacts", + "public_id": "IssueImpactsAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Issue", + "target_asset_type": "Asset" + } + } + ] + }, + { + "id": "00000000-0000-0000-0001-110000000400", + "kind": "asset_type", + "name": "GCP Project", + "public_id": "GcpProject", + "parent_name": "Technology Asset", + "attributes": [ + { + "id": "01922077-d1ea-7d32-a9c5-efbcd27b9b7a", + "kind": "attribute", + "name": "Project Id", + "public_id": "ProjectId", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-d1ea-7d32-a9c5-efbcd27b9b7b", + "kind": "attribute", + "name": "Project Number", + "public_id": "ProjectNumber", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "01922077-d401-7669-8b10-fe42f7645495", + "kind": "relation", + "name": "groups", + "public_id": "GcpProjectGroupsDataplexLake", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "GCP Project", + "target_asset_type": "Dataplex Lake" + } + } + ] + }, + { + "id": "00000000-0000-0000-0001-002700000002", + "kind": "asset_type", + "name": "GCS Bucket", + "public_id": "GcsBucket", + "parent_name": "Storage Container", + "attributes": [ + { + "id": "01922077-9e70-7ded-a225-33cb21e9c469", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "01922077-9e70-7ded-a225-33cb21e9c46a", + "kind": "attribute", + "name": "URL", + "public_id": "Url", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-9e70-7ded-a225-33cb21e9c46b", + "kind": "attribute", + "name": "Location", + "public_id": "Location", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-9e70-7ded-a225-33cb21e9c46c", + "kind": "attribute", + "name": "External System Label", + "public_id": "ExternalSystemLabel", + "cardinality": { + "min": 0, + "max": null + } + } + ], + "relations": [ + { + "id": "01922077-9e70-7ded-a225-33cb21e9c46d", + "kind": "relation", + "name": "contains", + "public_id": "FileStorageContainsFileContainer", + "cardinality": { + "min": 0, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "File Storage", + "target_asset_type": "Storage Container" + } + }, + { + "id": "01922077-9e70-7ded-a225-33cb21e9c46e", + "kind": "relation", + "name": "contains", + "public_id": "FileContainerContainsFileContainer", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Storage Container", + "target_asset_type": "Storage Container" + } + }, + { + "id": "27100c9c-2da4-4ae4-86b2-e97d5ab0c3bf", + "kind": "relation", + "name": "contains", + "public_id": "FileContainerContainsFileContainer", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Storage Container", + "target_asset_type": "Storage Container" + } + }, + { + "id": "01922077-9e70-7ded-a225-33cb21e9c46f", + "kind": "relation", + "name": "contains", + "public_id": "FileContainerContainsFile", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Storage Container", + "target_asset_type": "File" + } + }, + { + "id": "01922078-0470-7599-afaa-b4f56ca1e773", + "kind": "relation", + "name": "contains", + "public_id": "DataplexZoneContainsGcsBucket", + "cardinality": { + "min": 0, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "Dataplex Zone", + "target_asset_type": "GCS Bucket" + } + }, + { + "id": "01922078-0470-7599-afaa-b4f56ca1e774", + "kind": "relation", + "name": "contains", + "public_id": "GcsBucketContainsTable", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "GCS Bucket", + "target_asset_type": "Table" + } + } + ] + }, + { + "id": "00000000-0000-0000-0001-002700000001", + "kind": "asset_type", + "name": "GCS File System", + "public_id": "GcsFileSystem", + "parent_name": "File Storage", + "attributes": [ + { + "id": "01922077-9dac-7ec1-a47b-02b6042b6cb8", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": null + } + } + ], + "relations": [ + { + "id": "01922077-9dac-7ec1-a47b-02b6042b6cb9", + "kind": "relation", + "name": "contains", + "public_id": "FileStorageContainsFileContainer", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "File Storage", + "target_asset_type": "Storage Container" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-000000031201", + "kind": "asset_type", + "name": "Governance Asset", + "public_id": "GovernanceAsset", + "parent_name": "Asset", + "attributes": [ + { + "id": "45de4270-b8b2-4ea1-aebf-a87ffc11d675", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "ec44ad99-3023-484a-a604-ea6c783e2831", + "kind": "attribute", + "name": "Purpose", + "public_id": "Purpose", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "dbef0ce0-94ff-4f07-82ae-7d17d78c6854", + "kind": "attribute", + "name": "Exception Scenario", + "public_id": "ExceptionScenario", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "422c839c-c27e-49a4-99c0-c575062df35e", + "kind": "attribute", + "name": "Measurement", + "public_id": "Measurement", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "8d442f8b-f68d-4d6c-92af-ee5080ac2007", + "kind": "attribute", + "name": "Descriptive Example", + "public_id": "DescriptiveExample", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "1138a1f9-25d0-4066-bb9a-2f3bbec2b7d2", + "kind": "attribute", + "name": "Inclusion Scenario", + "public_id": "InclusionScenario", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "d6deaaba-f977-4c2c-ac14-34c01fce34b8", + "kind": "attribute", + "name": "Effective Start Date", + "public_id": "EffectiveStartDate", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "0c2c1b35-0edf-4ce7-a917-deb8731dd78d", + "kind": "attribute", + "name": "Effective End Date", + "public_id": "EffectiveEndDate", + "cardinality": { + "min": 0, + "max": null + } + } + ], + "relations": [ + { + "id": "25312d85-275b-4c14-9987-38be13217c5e", + "kind": "relation", + "name": "complies to", + "public_id": "AssetCompliesToGovernanceAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Asset", + "target_asset_type": "Governance Asset" + } + }, + { + "id": "9c978101-173e-490b-80ff-b40c1f66f1ac", + "kind": "relation", + "name": "complies to", + "public_id": "AssetCompliesToGovernanceAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Asset", + "target_asset_type": "Governance Asset" + } + }, + { + "id": "17fbe3c1-4cb5-49ee-bb0e-bbd9baaa125d", + "kind": "relation", + "name": "groups", + "public_id": "GovernanceAssetGroupsGovernanceAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Governance Asset", + "target_asset_type": "Governance Asset" + } + }, + { + "id": "21164771-6df4-4513-b0ab-d55b0c32bac8", + "kind": "relation", + "name": "groups", + "public_id": "GovernanceAssetGroupsGovernanceAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Governance Asset", + "target_asset_type": "Governance Asset" + } + }, + { + "id": "966b6344-605a-41c7-b111-b1b30e660d62", + "kind": "relation", + "name": "violated by", + "public_id": "GovernanceAssetViolatedByIssue", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Governance Asset", + "target_asset_type": "Issue" + } + }, + { + "id": "4772c465-a033-4ab0-adfd-0c91cc70b200", + "kind": "relation", + "name": "resolves", + "public_id": "GovernanceAssetResolvesIssue", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Governance Asset", + "target_asset_type": "Issue" + } + }, + { + "id": "77386696-0f26-4723-87ea-3668d6202d27", + "kind": "relation", + "name": "impacts", + "public_id": "IssueImpactsAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Issue", + "target_asset_type": "Asset" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-000000031111", + "kind": "asset_type", + "name": "Issue", + "public_id": "Issue", + "parent_name": "Asset", + "attributes": [ + { + "id": "8fd75647-93b6-4358-92a5-204f3a269ca8", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "10e4b030-0b77-4343-a697-721650284db1", + "kind": "attribute", + "name": "Analysis", + "public_id": "Analysis", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "3243d21c-2297-4c3c-9c02-a1954abd6c8b", + "kind": "attribute", + "name": "Priority", + "public_id": "Priority", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "a935c15b-7271-4d87-a94e-8704c07493cb", + "kind": "attribute", + "name": "Resolution", + "public_id": "Resolution", + "cardinality": { + "min": 1, + "max": 1 + } + } + ], + "relations": [ + { + "id": "d160421b-b01d-488b-8bde-84ba7181ffb6", + "kind": "relation", + "name": "violated by", + "public_id": "GovernanceAssetViolatedByIssue", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Governance Asset", + "target_asset_type": "Issue" + } + }, + { + "id": "0096b1a3-4304-4d0a-bb07-605e5cbd319b", + "kind": "relation", + "name": "resolves", + "public_id": "GovernanceAssetResolvesIssue", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Governance Asset", + "target_asset_type": "Issue" + } + }, + { + "id": "3e0ee07b-9d4c-493a-bff6-2583ef3bf95d", + "kind": "relation", + "name": "categorized by", + "public_id": "IssueCategorizedByIssueCategory", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Issue", + "target_asset_type": "Issue Category" + } + }, + { + "id": "35e9cfde-9279-42d2-9642-c64fb4ed73a0", + "kind": "relation", + "name": "classifies", + "public_id": "BusinessDimensionClassifiesAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Dimension", + "target_asset_type": "Asset" + } + }, + { + "id": "657bffc0-dd52-4488-b4a5-b248815f3097", + "kind": "relation", + "name": "related to", + "public_id": "AssetRelatedToAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Asset", + "target_asset_type": "Asset" + } + }, + { + "id": "3c739253-3840-492e-ad3f-d3e5695efafe", + "kind": "relation", + "name": "related to", + "public_id": "AssetRelatedToAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Asset", + "target_asset_type": "Asset" + } + }, + { + "id": "9ea257e4-c124-4bc5-ae56-e2db95ae4b85", + "kind": "relation", + "name": "impacts", + "public_id": "IssueImpactsAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Issue", + "target_asset_type": "Asset" + } + }, + { + "id": "dd5c47fd-7b4c-47db-b74d-3f7dbc114fbc", + "kind": "relation", + "name": "impacts", + "public_id": "IssueImpactsAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Issue", + "target_asset_type": "Asset" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-000000031112", + "kind": "asset_type", + "name": "Issue Category", + "public_id": "IssueCategory", + "parent_name": "Governance Asset", + "attributes": [ + { + "id": "d873ccd9-923a-432f-9016-a353c4abb654", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "24a716bd-d1c8-41d8-819b-2c8afd2e6544", + "kind": "attribute", + "name": "Purpose", + "public_id": "Purpose", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "fda32412-6653-41f2-a565-e2ed06a1d18e", + "kind": "attribute", + "name": "Exception Scenario", + "public_id": "ExceptionScenario", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "546703a5-28d1-4839-8eb3-03dc5d152102", + "kind": "attribute", + "name": "Measurement", + "public_id": "Measurement", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "2dae3ace-d1c4-48fe-af83-300f2ab2bd6c", + "kind": "attribute", + "name": "Descriptive Example", + "public_id": "DescriptiveExample", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "59969ded-cd41-48c7-a823-0e98e86962bf", + "kind": "attribute", + "name": "Inclusion Scenario", + "public_id": "InclusionScenario", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "6b4f0845-75c2-418a-9823-c50a61d7b05e", + "kind": "attribute", + "name": "Effective Start Date", + "public_id": "EffectiveStartDate", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "e4872578-e88d-4c50-b489-af79bbb5459b", + "kind": "attribute", + "name": "Effective End Date", + "public_id": "EffectiveEndDate", + "cardinality": { + "min": 0, + "max": null + } + } + ], + "relations": [ + { + "id": "086c2e8b-f88a-403f-917c-59e12debd26e", + "kind": "relation", + "name": "complies to", + "public_id": "AssetCompliesToGovernanceAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Asset", + "target_asset_type": "Governance Asset" + } + }, + { + "id": "4c35c5b3-fd55-4337-b8e0-6926f9dbbc4c", + "kind": "relation", + "name": "complies to", + "public_id": "AssetCompliesToGovernanceAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Asset", + "target_asset_type": "Governance Asset" + } + }, + { + "id": "a2d30047-e956-4dd3-b863-ef2bf908e2ea", + "kind": "relation", + "name": "groups", + "public_id": "GovernanceAssetGroupsGovernanceAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Governance Asset", + "target_asset_type": "Governance Asset" + } + }, + { + "id": "cced91eb-efc7-42bf-90ac-c688d40e09dd", + "kind": "relation", + "name": "groups", + "public_id": "GovernanceAssetGroupsGovernanceAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Governance Asset", + "target_asset_type": "Governance Asset" + } + }, + { + "id": "d702b27c-8d3c-4985-9dc7-e33ecb8b2339", + "kind": "relation", + "name": "violated by", + "public_id": "GovernanceAssetViolatedByIssue", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Governance Asset", + "target_asset_type": "Issue" + } + }, + { + "id": "0c614e6d-ae12-4a99-83f6-44a69ddd2f14", + "kind": "relation", + "name": "resolves", + "public_id": "GovernanceAssetResolvesIssue", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Governance Asset", + "target_asset_type": "Issue" + } + }, + { + "id": "6f05efd2-77ed-4905-ae60-57abbfc6d308", + "kind": "relation", + "name": "impacts", + "public_id": "IssueImpactsAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Issue", + "target_asset_type": "Asset" + } + } + ] + }, + { + "id": "c0e00000-0000-0000-0000-000000039008", + "kind": "asset_type", + "name": "Jurisdiction", + "public_id": "Jurisdiction", + "parent_name": "Business Dimension", + "attributes": [ + { + "id": "01922077-f91f-7987-900d-ea9aab946f7f", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "01922077-f91f-7987-900d-ea9aab946f82", + "kind": "attribute", + "name": "Note", + "public_id": "Note", + "cardinality": { + "min": 0, + "max": null + } + } + ], + "relations": [ + { + "id": "01922077-f91f-7987-900d-ea9aab946f80", + "kind": "relation", + "name": "groups", + "public_id": "BusinessAssetGroupsBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Asset", + "target_asset_type": "Business Asset" + } + }, + { + "id": "01922077-f91f-7987-900d-ea9aab946f81", + "kind": "relation", + "name": "groups", + "public_id": "BusinessAssetGroupsBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Asset", + "target_asset_type": "Business Asset" + } + }, + { + "id": "01922077-fd59-718d-814a-da50141042d9", + "kind": "relation", + "name": "is located in", + "public_id": "BusinessDimensionIsLocatedInJurisdiction", + "cardinality": { + "min": 1, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Dimension", + "target_asset_type": "Jurisdiction" + } + }, + { + "id": "01922077-fd59-718d-814a-da50141042da", + "kind": "relation", + "name": "is located in", + "public_id": "BusinessDimensionIsLocatedInJurisdiction", + "cardinality": { + "min": 1, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Dimension", + "target_asset_type": "Jurisdiction" + } + }, + { + "id": "01922077-fd59-718d-814a-da50141042db", + "kind": "relation", + "name": "location of processing", + "public_id": "DataSharingAgreementLocationOfProcessingJurisdiction", + "cardinality": { + "min": 1, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Sharing Agreement", + "target_asset_type": "Jurisdiction" + } + }, + { + "id": "01922077-fd59-718d-814a-da50141042dc", + "kind": "relation", + "name": "is hosted in", + "public_id": "TechnologyAssetIsHostedInJurisdiction", + "cardinality": { + "min": 1, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Technology Asset", + "target_asset_type": "Jurisdiction" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-000000011002", + "kind": "asset_type", + "name": "KPI", + "public_id": "Kpi", + "parent_name": "Measure", + "attributes": [ + { + "id": "aa98f52c-543b-466e-a73e-2aae6633c27f", + "kind": "attribute", + "name": "Definition", + "public_id": "Definition", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "5d60ded5-d036-4e1f-b9b2-18baec703f0f", + "kind": "attribute", + "name": "Calculation Rule", + "public_id": "CalculationRule", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "c77dac63-3d25-4009-a617-9b6ea3f4a93f", + "kind": "attribute", + "name": "Descriptive Example", + "public_id": "DescriptiveExample", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "f245f364-bec1-46a5-9c65-f8ed166a7207", + "kind": "attribute", + "name": "Note", + "public_id": "Note", + "cardinality": { + "min": 0, + "max": null + } + } + ], + "relations": [ + { + "id": "353dc91d-c353-4f76-868f-9b5d6c970e89", + "kind": "relation", + "name": "has acronym", + "public_id": "BusinessAssetHasAcronymAcronym", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Asset", + "target_asset_type": "Acronym" + } + }, + { + "id": "5ba4e76c-0714-4d0f-803f-7e5df87d57b3", + "kind": "relation", + "name": "groups", + "public_id": "BusinessAssetGroupsBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Asset", + "target_asset_type": "Business Asset" + } + }, + { + "id": "4a61d5db-d5c0-43b6-876d-03b7ea11e35e", + "kind": "relation", + "name": "groups", + "public_id": "BusinessAssetGroupsBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Asset", + "target_asset_type": "Business Asset" + } + }, + { + "id": "baa576db-1b79-4371-bddf-88dbdfcd942e", + "kind": "relation", + "name": "represents", + "public_id": "BusinessAssetRepresentsDataAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Asset", + "target_asset_type": "Data Asset" + } + }, + { + "id": "0277d7ad-1270-49cb-b2ce-9183da537d87", + "kind": "relation", + "name": "impacts", + "public_id": "IssueImpactsAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Issue", + "target_asset_type": "Asset" + } + }, + { + "id": "01922077-e594-7d0c-925f-38d87af41299", + "kind": "relation", + "name": "governed by", + "public_id": "AssetGovernedByGovernanceAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Asset", + "target_asset_type": "Governance Asset" + } + } + ] + }, + { + "id": "c0e00000-0000-0000-0000-000000039042", + "kind": "asset_type", + "name": "Legal Basis", + "public_id": "LegalBasis", + "parent_name": "Governance Asset", + "attributes": [ + { + "id": "01922077-fc25-7709-940f-c944b0be7d0a", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "01922077-fc25-7709-940f-c944b0be7d0d", + "kind": "attribute", + "name": "Note", + "public_id": "Note", + "cardinality": { + "min": 0, + "max": null + } + } + ], + "relations": [ + { + "id": "01922077-fc25-7709-940f-c944b0be7d0b", + "kind": "relation", + "name": "complies to", + "public_id": "AssetCompliesToGovernanceAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Asset", + "target_asset_type": "Governance Asset" + } + }, + { + "id": "01922077-fc25-7709-940f-c944b0be7d0c", + "kind": "relation", + "name": "complies to", + "public_id": "AssetCompliesToGovernanceAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Asset", + "target_asset_type": "Governance Asset" + } + }, + { + "id": "01922077-fde7-7711-bdbe-67081ea013f1", + "kind": "relation", + "name": "determines lawfulness of", + "public_id": "LegalBasisDeterminesLawfulnessOfBusinessProcess", + "cardinality": { + "min": 1, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Legal Basis", + "target_asset_type": "Business Process" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-000000031110", + "kind": "asset_type", + "name": "Line of Business", + "public_id": "LineOfBusiness", + "parent_name": "Business Dimension", + "attributes": [ + { + "id": "3fa75a8d-9925-44a0-859f-3832a2fa4576", + "kind": "attribute", + "name": "Definition", + "public_id": "Definition", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "3fdc4d5d-1e50-4187-8d9c-acc59149469b", + "kind": "attribute", + "name": "Descriptive Example", + "public_id": "DescriptiveExample", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "90d5fd7a-d39d-4244-ad76-9b73c4227562", + "kind": "attribute", + "name": "Note", + "public_id": "Note", + "cardinality": { + "min": 0, + "max": null + } + } + ], + "relations": [ + { + "id": "6308edb2-44c1-4d97-be92-1fdb9cfd8f91", + "kind": "relation", + "name": "groups", + "public_id": "BusinessAssetGroupsBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Asset", + "target_asset_type": "Business Asset" + } + }, + { + "id": "ca2ad84c-aee7-4b9a-86e7-ff899f2a0407", + "kind": "relation", + "name": "groups", + "public_id": "BusinessAssetGroupsBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Asset", + "target_asset_type": "Business Asset" + } + }, + { + "id": "a27d3567-223d-4326-a8ee-74ff38b81300", + "kind": "relation", + "name": "represents", + "public_id": "BusinessAssetRepresentsDataAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Asset", + "target_asset_type": "Data Asset" + } + }, + { + "id": "240ba7fb-cab7-4f2d-8590-4b39de3f1462", + "kind": "relation", + "name": "classifies", + "public_id": "BusinessDimensionClassifiesAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Dimension", + "target_asset_type": "Asset" + } + }, + { + "id": "e2c3b3b2-89de-40b7-b74e-6e26e829f98f", + "kind": "relation", + "name": "classifies", + "public_id": "BusinessDimensionClassifiesAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Dimension", + "target_asset_type": "Asset" + } + }, + { + "id": "a243a199-5ec2-464a-9e1c-be24b3567daf", + "kind": "relation", + "name": "has acronym", + "public_id": "BusinessAssetHasAcronymAcronym", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Asset", + "target_asset_type": "Acronym" + } + }, + { + "id": "f8017bdc-5eea-48b6-97a9-bd3a41fa9925", + "kind": "relation", + "name": "associates", + "public_id": "LineOfBusinessAssociatesBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Line of Business", + "target_asset_type": "Business Asset" + } + }, + { + "id": "e5c5d86b-b781-4b6e-82fe-7a8451e2d63a", + "kind": "relation", + "name": "associates", + "public_id": "LineOfBusinessAssociatesBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Line of Business", + "target_asset_type": "Business Asset" + } + }, + { + "id": "a5320fa1-6d4e-4615-bd20-2ff28d231efa", + "kind": "relation", + "name": "produces", + "public_id": "BusinessProcessProducesBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Process", + "target_asset_type": "Business Asset" + } + }, + { + "id": "2ed5d422-982c-488c-8d83-b39cafd565a2", + "kind": "relation", + "name": "complies to", + "public_id": "AssetCompliesToGovernanceAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Asset", + "target_asset_type": "Governance Asset" + } + }, + { + "id": "4fbfd086-6c22-471b-8030-75f66787b480", + "kind": "relation", + "name": "consumes", + "public_id": "BusinessProcessConsumesBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Process", + "target_asset_type": "Business Asset" + } + }, + { + "id": "61711e9d-1451-4567-a604-89a339d96e68", + "kind": "relation", + "name": "related to", + "public_id": "DataSetRelatedToBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Set", + "target_asset_type": "Business Asset" + } + }, + { + "id": "93af20fe-8121-43d6-8fd0-14615110d161", + "kind": "relation", + "name": "impacts", + "public_id": "IssueImpactsAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Issue", + "target_asset_type": "Asset" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-100000000013", + "kind": "asset_type", + "name": "Looker Dashboard", + "public_id": "LookerDashboard", + "parent_name": "BI Report", + "attributes": [ + { + "id": "48e64d7d-1d14-46ad-b87b-d01c9591c8c6", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "a1da3f93-fd0f-4103-9511-156586f0e16c", + "kind": "attribute", + "name": "Certified", + "public_id": "Certified", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "1f1c69a7-92cb-4a93-b649-daf7924cc3a7", + "kind": "attribute", + "name": "Visits count", + "public_id": "VisitsCount", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "4021cb09-2275-4a99-bf2a-dddc74fc3343", + "kind": "attribute", + "name": "Favorites count", + "public_id": "FavoritesCount", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0626ff75-aba0-435f-858e-2b7e6c490b8c", + "kind": "attribute", + "name": "Document creation date", + "public_id": "DocumentCreationDate", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "36b6eb9a-1369-4b21-9cd3-b89e00dac79e", + "kind": "attribute", + "name": "Document last view date", + "public_id": "DocumentLastViewDate", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "55644da6-51e8-4db7-964f-4839303151b5", + "kind": "attribute", + "name": "Document last accessed date", + "public_id": "DocumentLastAccessedDate", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-ab68-7a38-917b-d5d354e3ae80", + "kind": "attribute", + "name": "Owner in Source", + "public_id": "OwnerInSource", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "e7139a90-c8b0-4747-8361-9a64c20db279", + "kind": "relation", + "name": "uses", + "public_id": "ReportUsesReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Report" + } + }, + { + "id": "aad567bd-0cc9-4cf1-8005-3526bd699bbb", + "kind": "relation", + "name": "uses", + "public_id": "ReportUsesReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Report" + } + }, + { + "id": "b92e818d-2aaa-48c9-a3c5-c7ab18471e16", + "kind": "relation", + "name": "groups", + "public_id": "BusinessDimensionGroupsReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Dimension", + "target_asset_type": "Report" + } + }, + { + "id": "2952c865-1c58-40a5-8766-a7b67da7d7a7", + "kind": "relation", + "name": "groups", + "public_id": "ReportGroupsReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Report" + } + }, + { + "id": "d4a6ba17-f0f7-42f5-8c75-6e8612962b8d", + "kind": "relation", + "name": "groups", + "public_id": "ReportGroupsReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Report" + } + }, + { + "id": "f99b3606-3ceb-4b18-a92a-cd48239bd8d9", + "kind": "relation", + "name": "related to", + "public_id": "ReportRelatedToBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Business Asset" + } + }, + { + "id": "7201441c-21c0-493e-b6e6-80198aa7212f", + "kind": "relation", + "name": "related to", + "public_id": "ReportRelatedToBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Business Asset" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-100000000017", + "kind": "asset_type", + "name": "Looker Data Set", + "public_id": "LookerDataSet", + "parent_name": "BI Data Set", + "attributes": [ + { + "id": "797f55bb-109f-46ae-93ec-6f9a49a8e2cd", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "49c78823-46b8-47f6-b7ca-af47511bd47e", + "kind": "attribute", + "name": "Certified", + "public_id": "Certified", + "cardinality": { + "min": 1, + "max": 1 + } + } + ], + "relations": [ + { + "id": "fb6c53af-f845-48c4-bc60-caef6c406b2b", + "kind": "relation", + "name": "source system for", + "public_id": "TechnologyAssetSourceSystemForDataAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Technology Asset", + "target_asset_type": "Data Asset" + } + }, + { + "id": "207d5eff-f213-485c-afb9-3f37866ced23", + "kind": "relation", + "name": "contains", + "public_id": "DataSetContainsDataElement", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Set", + "target_asset_type": "Data Element" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-100000000018", + "kind": "asset_type", + "name": "Looker Data Set Column", + "public_id": "LookerDataSetColumn", + "parent_name": "BI Data Attribute", + "attributes": [ + { + "id": "d30a53de-c31f-4326-8f66-617c08028fe7", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": null + } + } + ], + "relations": [ + { + "id": "8c55d0ab-2197-4a12-8e2a-6f6f4058c95f", + "kind": "relation", + "name": "contains", + "public_id": "DataSetContainsDataElement", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Set", + "target_asset_type": "Data Element" + } + }, + { + "id": "8b8bc277-c951-4607-95b1-fc80ea6b36b2", + "kind": "relation", + "name": "is source for", + "public_id": "ColumnIsSourceForDataAttribute", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Column", + "target_asset_type": "Data Attribute" + } + }, + { + "id": "d4ada3e3-30cd-433b-ac2f-0364efcb21f9", + "kind": "relation", + "name": "targets", + "public_id": "DataElementTargetsDataElement", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Element", + "target_asset_type": "Data Element" + } + }, + { + "id": "a9d9fae3-77f4-4031-a69a-c2ab00cda7a3", + "kind": "relation", + "name": "targets", + "public_id": "DataElementTargetsDataElement", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Element", + "target_asset_type": "Data Element" + } + }, + { + "id": "a85c6d2e-6144-4e63-bd90-84913fa0a8b6", + "kind": "relation", + "name": "sourced from", + "public_id": "ReportAttributeSourcedFromDataAttribute", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report Attribute", + "target_asset_type": "Data Attribute" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-100000000012", + "kind": "asset_type", + "name": "Looker Folder", + "public_id": "LookerFolder", + "parent_name": "BI Folder", + "attributes": [ + { + "id": "80bc43cc-b190-48ee-bd22-333246dde661", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "f9ffe115-2814-427f-96a8-e138cf0bfab1", + "kind": "attribute", + "name": "Document creation date", + "public_id": "DocumentCreationDate", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-ab8c-716b-8ac1-3faf00d7f1dc", + "kind": "attribute", + "name": "Owner in Source", + "public_id": "OwnerInSource", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "5fbb9583-926a-4a86-a13b-d5cf8366843d", + "kind": "relation", + "name": "hosts", + "public_id": "ServerHostsBusinessDimension", + "cardinality": { + "min": 0, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "Server", + "target_asset_type": "Business Dimension" + } + }, + { + "id": "31ff824d-ec7b-4096-bf9c-7c026d5f1a11", + "kind": "relation", + "name": "assembles", + "public_id": "BIFolderAssemblesBIFolder", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "BI Folder", + "target_asset_type": "BI Folder" + } + }, + { + "id": "9b51b147-f68e-4d54-ac85-b2fe3d016d21", + "kind": "relation", + "name": "assembles", + "public_id": "BIFolderAssemblesBIFolder", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "BI Folder", + "target_asset_type": "BI Folder" + } + }, + { + "id": "26dd678d-46d0-4eb4-a969-78cb374505f6", + "kind": "relation", + "name": "groups", + "public_id": "BusinessDimensionGroupsReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Dimension", + "target_asset_type": "Report" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-100000000014", + "kind": "asset_type", + "name": "Looker Look", + "public_id": "LookerLook", + "parent_name": "BI Report", + "attributes": [ + { + "id": "0277988b-fd5a-43d0-9cc8-8733fb13780e", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "3179db72-2ca0-4927-aef8-afec202d0bb5", + "kind": "attribute", + "name": "URL", + "public_id": "Url", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "862ad95d-d979-417e-9516-8a7d0ef8dbed", + "kind": "attribute", + "name": "Certified", + "public_id": "Certified", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "8ceb616c-248b-47a2-9368-f73b7a4437df", + "kind": "attribute", + "name": "Visits count", + "public_id": "VisitsCount", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "fbb698e3-b5d3-4af4-a2f4-dc7906f82be9", + "kind": "attribute", + "name": "Favorites count", + "public_id": "FavoritesCount", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "ff48a103-2032-4c35-a473-38a87afa3763", + "kind": "attribute", + "name": "Document creation date", + "public_id": "DocumentCreationDate", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "639f3784-2486-419d-977f-2d17ca31a127", + "kind": "attribute", + "name": "Document modification date", + "public_id": "DocumentModificationDate", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "2f4aad90-3728-45d5-834d-41296cd0cbf1", + "kind": "attribute", + "name": "Document last view date", + "public_id": "DocumentLastViewDate", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "77c88f16-9cd0-4276-b492-287a851576c6", + "kind": "attribute", + "name": "Document last accessed date", + "public_id": "DocumentLastAccessedDate", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "50ba27be-5462-470b-b883-22fc8a8fe299", + "kind": "attribute", + "name": "Report Image", + "public_id": "ReportImage", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-ab7b-7724-8f2f-2a4039e4e71c", + "kind": "attribute", + "name": "Owner in Source", + "public_id": "OwnerInSource", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "262395a8-b16f-459b-a518-2572dc4fc104", + "kind": "relation", + "name": "uses", + "public_id": "ReportUsesReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Report" + } + }, + { + "id": "3378d185-28b7-4dea-9707-19e92d3a224d", + "kind": "relation", + "name": "uses", + "public_id": "ReportUsesReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Report" + } + }, + { + "id": "6b90efa0-79db-4485-b887-917b93ff779b", + "kind": "relation", + "name": "groups", + "public_id": "BusinessDimensionGroupsReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Dimension", + "target_asset_type": "Report" + } + }, + { + "id": "ed62d8a9-2787-4d62-ad31-381ba267788f", + "kind": "relation", + "name": "groups", + "public_id": "ReportGroupsReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Report" + } + }, + { + "id": "4a094072-c334-4794-88af-2b194e649cb2", + "kind": "relation", + "name": "groups", + "public_id": "ReportGroupsReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Report" + } + }, + { + "id": "c8654f57-87b6-4825-8be1-a980332096f8", + "kind": "relation", + "name": "related to", + "public_id": "ReportRelatedToBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Business Asset" + } + }, + { + "id": "38da845f-ac81-46cd-8187-37ea942c189f", + "kind": "relation", + "name": "related to", + "public_id": "ReportRelatedToBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Business Asset" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-100000000016", + "kind": "asset_type", + "name": "Looker Query", + "public_id": "LookerQuery", + "parent_name": "BI Report", + "attributes": [ + { + "id": "f847d6a9-6cf6-4e42-a28c-06b8f8794b80", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "b4366d84-1f74-4412-b255-714c0f8986b4", + "kind": "attribute", + "name": "Certified", + "public_id": "Certified", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "314deef6-463d-4850-bc14-54f21e19b430", + "kind": "attribute", + "name": "URL", + "public_id": "Url", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "1e5d45eb-1d61-4bfa-8fee-ee904082fdc3", + "kind": "relation", + "name": "uses", + "public_id": "ReportUsesReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Report" + } + }, + { + "id": "838ee03b-243d-4b5e-99d0-5a520c592297", + "kind": "relation", + "name": "uses", + "public_id": "ReportUsesReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Report" + } + }, + { + "id": "1357dba5-0aaf-4802-bf3d-587eafd7fa8f", + "kind": "relation", + "name": "contained in", + "public_id": "ReportAttributeContainedInReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report Attribute", + "target_asset_type": "Report" + } + }, + { + "id": "64d7cfc0-6a11-4e7e-b8c5-dc747d7d33f8", + "kind": "relation", + "name": "groups", + "public_id": "ReportGroupsReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Report" + } + }, + { + "id": "ff628974-61ac-4757-9ba8-1076ed1defd2", + "kind": "relation", + "name": "groups", + "public_id": "ReportGroupsReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Report" + } + }, + { + "id": "f0bbbdd9-2951-4207-b80b-ce04cbc6b36f", + "kind": "relation", + "name": "related to", + "public_id": "ReportRelatedToBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Business Asset" + } + }, + { + "id": "8dc9bfd2-ae1b-4dec-88dd-afc87c87e403", + "kind": "relation", + "name": "related to", + "public_id": "ReportRelatedToBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Business Asset" + } + }, + { + "id": "73ecbeac-46f3-4d34-919b-44472ef9d8b9", + "kind": "relation", + "name": "groups", + "public_id": "BusinessDimensionGroupsReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Dimension", + "target_asset_type": "Report" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-100000000019", + "kind": "asset_type", + "name": "Looker Report Attribute", + "public_id": "LookerReportAttribute", + "parent_name": "BI Report Attribute", + "attributes": [ + { + "id": "c880fa99-c569-4df5-b8d7-831c22197537", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": null + } + } + ], + "relations": [ + { + "id": "72d5d40c-ab3e-4862-a6ca-b79786c1489a", + "kind": "relation", + "name": "contained in", + "public_id": "ReportAttributeContainedInReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report Attribute", + "target_asset_type": "Report" + } + }, + { + "id": "2909f2f4-6603-456a-9053-e68a574392f6", + "kind": "relation", + "name": "is source for", + "public_id": "ReportAttributeIsSourceForReportAttribute", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report Attribute", + "target_asset_type": "Report Attribute" + } + }, + { + "id": "681a6c68-1046-4df3-a07f-616b5ae9cea2", + "kind": "relation", + "name": "is source for", + "public_id": "ReportAttributeIsSourceForReportAttribute", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report Attribute", + "target_asset_type": "Report Attribute" + } + }, + { + "id": "3518068e-a421-4589-b609-e895f5e3464e", + "kind": "relation", + "name": "sourced from", + "public_id": "ReportAttributeSourcedFromDataAttribute", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report Attribute", + "target_asset_type": "Data Attribute" + } + }, + { + "id": "d4130875-cf3a-4c16-be27-1280682db0ee", + "kind": "relation", + "name": "qualifies", + "public_id": "BusinessQualifierQualifiesAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Qualifier", + "target_asset_type": "Asset" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-100000000011", + "kind": "asset_type", + "name": "Looker Tenant", + "public_id": "LookerTenant", + "parent_name": "BI Server", + "attributes": [ + { + "id": "0a1800e3-b888-4527-93be-d769dfa96daf", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": null + } + } + ], + "relations": [ + { + "id": "54d8ce2d-9869-4130-8a84-d6e53f9331a3", + "kind": "relation", + "name": "hosts", + "public_id": "ServerHostsBusinessDimension", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Server", + "target_asset_type": "Business Dimension" + } + }, + { + "id": "2a4fb4ff-c37e-4b0d-be65-58ce22f20c57", + "kind": "relation", + "name": "source system for", + "public_id": "TechnologyAssetSourceSystemForDataAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Technology Asset", + "target_asset_type": "Data Asset" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-100000000015", + "kind": "asset_type", + "name": "Looker Tile", + "public_id": "LookerTile", + "parent_name": "BI Report", + "attributes": [ + { + "id": "d0258f7f-c2ee-4048-b3b9-b5340b4dbced", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "d88afa85-9fdd-4fdc-9958-aeea538a4e30", + "kind": "attribute", + "name": "Certified", + "public_id": "Certified", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "f61a26b5-cecb-4453-8cd5-efd38da56795", + "kind": "relation", + "name": "uses", + "public_id": "ReportUsesReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Report" + } + }, + { + "id": "1aa7b1a9-9f60-4f0b-a37b-a1b0181fc3aa", + "kind": "relation", + "name": "uses", + "public_id": "ReportUsesReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Report" + } + }, + { + "id": "97a402fd-4202-4ee3-af0d-a118019007cf", + "kind": "relation", + "name": "related to", + "public_id": "ReportRelatedToBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Business Asset" + } + }, + { + "id": "998732ff-f741-4cc7-ae57-5b3e7e4fb0dd", + "kind": "relation", + "name": "related to", + "public_id": "ReportRelatedToBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Business Asset" + } + }, + { + "id": "446df235-76bb-4b76-99d5-eb47e79b7e64", + "kind": "relation", + "name": "groups", + "public_id": "BusinessDimensionGroupsReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Dimension", + "target_asset_type": "Report" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-000000031410", + "kind": "asset_type", + "name": "MLflow AI Model Version", + "public_id": "MlflowAIModel", + "parent_name": "AI Model Version", + "attributes": [ + { + "id": "0194c707-2ad6-766b-b993-e0907baad21c", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0194c707-2ad7-7b7f-a38a-4fa5d37674aa", + "kind": "attribute", + "name": "Model Accuracy", + "public_id": "ModelAccuracy", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0194c707-2ad7-7b7f-a38a-4fa5d37674ab", + "kind": "attribute", + "name": "Model Precision", + "public_id": "ModelPrecision", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0194c707-2ad7-7b7f-a38a-4fa5d37674ac", + "kind": "attribute", + "name": "Mean Squared Error", + "public_id": "MeanSquaredError", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0194c707-2ad7-7b7f-a38a-4fa5d37674ad", + "kind": "attribute", + "name": "Mean Absolute Error", + "public_id": "MeanAbsoluteError", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0194c707-2ad7-7b7f-a38a-4fa5d37674ae", + "kind": "attribute", + "name": "Model Type", + "public_id": "ModelType", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0194c707-2ad7-7b7f-a38a-4fa5d37674b0", + "kind": "attribute", + "name": "Feature Importance", + "public_id": "FeatureImportance", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0194c707-2ad7-7b7f-a38a-4fa5d37674b2", + "kind": "attribute", + "name": "Version", + "public_id": "Version", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0194c707-2ad7-7b7f-a38a-4fa5d37674b3", + "kind": "attribute", + "name": "Repository", + "public_id": "Repository", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0199b495-e77a-782d-9690-c36d20f91328", + "kind": "attribute", + "name": "Required Content Filtering", + "public_id": "ContentFilter", + "cardinality": { + "min": 0, + "max": null + } + } + ], + "relations": [ + { + "id": "0194c707-2ad7-7b7f-a38a-4fa5d37674b1", + "kind": "relation", + "name": "uses", + "public_id": "AIUseCaseUsesAIModel", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "AI Use Case", + "target_asset_type": "AI Model Version" + } + }, + { + "id": "0194c707-2ad7-7b7f-a38a-4fa5d37674b4", + "kind": "relation", + "name": "trained by", + "public_id": "AIModelTrainedByAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "AI Model Version", + "target_asset_type": "Asset" + } + }, + { + "id": "0194c707-2ad7-7b7f-a38a-4fa5d37674b7", + "kind": "relation", + "name": "is provided by", + "public_id": "AIModelProvidedByVendor", + "cardinality": { + "min": 0, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "AI Model Version", + "target_asset_type": "Vendor" + } + }, + { + "id": "0194c707-2ad7-7b7f-a38a-4fa5d37674b8", + "kind": "relation", + "name": "uses", + "public_id": "AIModelUsesAIModel", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "AI Model Version", + "target_asset_type": "AI Model Version" + } + }, + { + "id": "0194c707-2ad7-7b7f-a38a-4fa5d37674b9", + "kind": "relation", + "name": "uses", + "public_id": "AIModelUsesAIModel", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "AI Model Version", + "target_asset_type": "AI Model Version" + } + }, + { + "id": "01957b35-cf81-7212-b32f-d2f8962501d0", + "kind": "relation", + "name": "complies to", + "public_id": "AssetCompliesToGovernanceAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Asset", + "target_asset_type": "Governance Asset" + } + }, + { + "id": "01992462-0eb2-7146-96f1-e45384baeb0d", + "kind": "relation", + "name": "contains", + "public_id": "AIModelContainsFileContainer", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "AI Model Version", + "target_asset_type": "Storage Container" + } + }, + { + "id": "01992462-1e6f-764f-b5f1-0628c3da66d0", + "kind": "relation", + "name": "deploys", + "public_id": "AIProjectDeploysAIModel", + "cardinality": { + "min": 0, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "AI Project", + "target_asset_type": "AI Model Version" + } + }, + { + "id": "019ccde7-ce7a-7530-9c68-687b4bef89c5", + "kind": "relation", + "name": "has version", + "public_id": "ModelHasVersion", + "cardinality": { + "min": 0, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "AI Base Model", + "target_asset_type": "AI Model Version" + } + }, + { + "id": "019ccde7-ce7a-7530-9c68-687b4bef89c6", + "kind": "relation", + "name": "is deployed by", + "public_id": "ModelVersionIsDeployedByModelDeployment", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "AI Model Version", + "target_asset_type": "AI Model Deployment" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-000000039045", + "kind": "asset_type", + "name": "Managed Control", + "public_id": "ManagedControl", + "parent_name": "Governance Asset", + "attributes": [ + { + "id": "01992462-0619-7902-aaaa-fe8d2c5459c4", + "kind": "attribute", + "name": "Severity", + "public_id": "Severity", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01992462-0619-7902-aaaa-fe8d2c5459c5", + "kind": "attribute", + "name": "Control Type", + "public_id": "ControlType", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01992462-0619-7902-aaaa-fe8d2c5459c6", + "kind": "attribute", + "name": "Resolution", + "public_id": "Resolution", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01992462-0619-7902-aaaa-fe8d2c5459c7", + "kind": "attribute", + "name": "Enabled", + "public_id": "Enabled", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01992462-0619-7902-aaaa-fe8d2c5459c8", + "kind": "attribute", + "name": "Control Status", + "public_id": "ControlStatus", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01992462-0619-7902-aaaa-fe8d2c5459c9", + "kind": "attribute", + "name": "Failed Asset Count", + "public_id": "FailedAssetCount", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01992462-0619-7902-aaaa-fe8d2c5459ca", + "kind": "attribute", + "name": "Failed Since", + "public_id": "FailedSince", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01992462-0619-7902-aaaa-fe8d2c5459cb", + "kind": "attribute", + "name": "Invalid Query", + "public_id": "InvalidQuery", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01992462-1dbe-7ffd-bafe-3da375af18bd", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "01992462-07ee-76ed-87f5-41aeab315bb3", + "kind": "relation", + "name": "enforces", + "public_id": "ManagedControlEnforcesPolicy", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Managed Control", + "target_asset_type": "Policy" + } + }, + { + "id": "019ccde7-c2b6-7133-9d5d-5a3f025760af", + "kind": "relation", + "name": "mitigates", + "public_id": "ManagedControlMitigatesRisk", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Managed Control", + "target_asset_type": "Risk" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-000000031030", + "kind": "asset_type", + "name": "Mapping Specification", + "public_id": "MappingSpecification", + "parent_name": "Data Asset", + "attributes": [ + { + "id": "5f8973e2-291c-4df1-b50e-99c3e681af68", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "848cc13b-2cf6-4917-aae3-202e48bfced6", + "kind": "attribute", + "name": "Scope", + "public_id": "Scope", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "fc59341a-e88f-45fe-8974-f4100d7ab4af", + "kind": "attribute", + "name": "IT Requirements", + "public_id": "ITRequirements", + "cardinality": { + "min": 1, + "max": null + } + } + ], + "relations": [ + { + "id": "8b10e30a-dda4-4777-af32-856ccb2e40ce", + "kind": "relation", + "name": "source of", + "public_id": "DataStructureSourceOfMappingSpecification", + "cardinality": { + "min": 1, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Structure", + "target_asset_type": "Mapping Specification" + } + }, + { + "id": "82a9fd48-d107-43f2-9535-dbf7179147dd", + "kind": "relation", + "name": "target of", + "public_id": "DataStructureTargetOfMappingSpecification", + "cardinality": { + "min": 1, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Structure", + "target_asset_type": "Mapping Specification" + } + }, + { + "id": "8dcb25ad-5c7a-4045-b936-ac9a67fb5db3", + "kind": "relation", + "name": "impacts", + "public_id": "IssueImpactsAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Issue", + "target_asset_type": "Asset" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-000000031104", + "kind": "asset_type", + "name": "Measure", + "public_id": "Measure", + "parent_name": "Business Asset", + "attributes": [ + { + "id": "f7651ee4-9840-489b-a138-9bc3423e7cf7", + "kind": "attribute", + "name": "Definition", + "public_id": "Definition", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "eadf7ced-901a-417c-8741-1c6911c83dbd", + "kind": "attribute", + "name": "Descriptive Example", + "public_id": "DescriptiveExample", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "2790bb09-4ed5-4888-887a-a48f7615e6fb", + "kind": "attribute", + "name": "Note", + "public_id": "Note", + "cardinality": { + "min": 0, + "max": null + } + } + ], + "relations": [ + { + "id": "f4e09ef8-e66b-45df-b895-07717aa5b412", + "kind": "relation", + "name": "groups", + "public_id": "BusinessAssetGroupsBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Asset", + "target_asset_type": "Business Asset" + } + }, + { + "id": "0bbdd4b9-1b4c-4c6c-9d85-fdb1a6703c8d", + "kind": "relation", + "name": "groups", + "public_id": "BusinessAssetGroupsBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Asset", + "target_asset_type": "Business Asset" + } + }, + { + "id": "46a53372-32d5-4f38-bafb-fdc01078c2f5", + "kind": "relation", + "name": "represents", + "public_id": "BusinessAssetRepresentsDataAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Asset", + "target_asset_type": "Data Asset" + } + }, + { + "id": "c6b3a185-6386-48ec-a5ae-18640efb381f", + "kind": "relation", + "name": "classifies", + "public_id": "BusinessDimensionClassifiesAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Dimension", + "target_asset_type": "Asset" + } + }, + { + "id": "42d031de-7973-4868-b072-771581b8bfad", + "kind": "relation", + "name": "has acronym", + "public_id": "BusinessAssetHasAcronymAcronym", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Asset", + "target_asset_type": "Acronym" + } + }, + { + "id": "e1d61b8a-e5c1-4bfd-812f-99943f63cd6d", + "kind": "relation", + "name": "associates", + "public_id": "LineOfBusinessAssociatesBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Line of Business", + "target_asset_type": "Business Asset" + } + }, + { + "id": "090350e0-cb16-4b58-8212-a34b1a92cd95", + "kind": "relation", + "name": "produces", + "public_id": "BusinessProcessProducesBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Process", + "target_asset_type": "Business Asset" + } + }, + { + "id": "3a910e2d-519a-42bd-a043-09ed0d600cc0", + "kind": "relation", + "name": "complies to", + "public_id": "AssetCompliesToGovernanceAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Asset", + "target_asset_type": "Governance Asset" + } + }, + { + "id": "b91a2325-f7a3-4341-b2c6-f72c846642ae", + "kind": "relation", + "name": "consumes", + "public_id": "BusinessProcessConsumesBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Process", + "target_asset_type": "Business Asset" + } + }, + { + "id": "1d410d18-602c-449f-89d4-dc38efd7ff01", + "kind": "relation", + "name": "related to", + "public_id": "DataSetRelatedToBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Set", + "target_asset_type": "Business Asset" + } + }, + { + "id": "118ea40b-b78e-4a2d-a847-bbcb01c99000", + "kind": "relation", + "name": "impacts", + "public_id": "IssueImpactsAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Issue", + "target_asset_type": "Asset" + } + }, + { + "id": "019a44c9-d270-7797-8ccd-4859d0d75474", + "kind": "relation", + "name": "is calculated using", + "public_id": "MeasureIsCalculatedUsingDataElement", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Measure", + "target_asset_type": "Data Element" + } + }, + { + "id": "019ccde7-c201-75c3-905e-7f59d17a9260", + "kind": "relation", + "name": "is calculated using", + "public_id": "MeasureIsCalculatedUsingCriticalDataElement", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Measure", + "target_asset_type": "Critical Data Element" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-100000000047", + "kind": "asset_type", + "name": "MicroStrategy Data Attribute", + "public_id": "MicrostrategyDataAttribute", + "parent_name": "BI Data Attribute", + "attributes": [ + { + "id": "723b9ca3-397b-4f00-99c9-876e0f20c919", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "01922077-bae3-7a2e-8ab2-f6a9ecbd89aa", + "kind": "attribute", + "name": "Role in Report", + "public_id": "RoleInReport", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-bae3-7a2e-8ab2-f6a9ecbd89ab", + "kind": "attribute", + "name": "Technical Data Type", + "public_id": "TechnicalDataType", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-d751-7d4f-bed8-38e11915b60b", + "kind": "attribute", + "name": "Calculation Rule", + "public_id": "CalculationRule", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "97a7c723-4d8f-499a-96e7-394ff0534664", + "kind": "relation", + "name": "contains", + "public_id": "BIDataModelContainsBIDataAttribute", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "BI Data Model", + "target_asset_type": "BI Data Attribute" + } + }, + { + "id": "dc2e2e51-41b4-4a7f-9c02-6860c0d5ba7d", + "kind": "relation", + "name": "sourced from", + "public_id": "ReportAttributeSourcedFromDataAttribute", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report Attribute", + "target_asset_type": "Data Attribute" + } + }, + { + "id": "68afaede-73b5-406d-8656-1a9d86ad1df6", + "kind": "relation", + "name": "targets", + "public_id": "DataElementTargetsDataElement", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Element", + "target_asset_type": "Data Element" + } + }, + { + "id": "4baf894d-b084-4786-b7df-ea04d701205e", + "kind": "relation", + "name": "targets", + "public_id": "DataElementTargetsDataElement", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Element", + "target_asset_type": "Data Element" + } + }, + { + "id": "01922077-bae3-7a2e-8ab2-f6a9ecbd89ae", + "kind": "relation", + "name": "contains", + "public_id": "DataEntityContainsDataAttribute", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Entity", + "target_asset_type": "Data Attribute" + } + }, + { + "id": "01922077-bae3-7a2e-8ab2-f6a9ecbd89af", + "kind": "relation", + "name": "uses", + "public_id": "ReportUsesDataAttribute", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Data Attribute" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-100000000048", + "kind": "asset_type", + "name": "MicroStrategy Data Entity", + "public_id": "MicrostrategyDataEntity", + "parent_name": "BI Data Entity", + "attributes": [ + { + "id": "019c85f6-8cdf-7469-b5f1-de6135ea83b4", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "019c85f6-8cdf-7469-b5f1-de6135ea83b5", + "kind": "attribute", + "name": "Descriptive Example", + "public_id": "DescriptiveExample", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "019c85f6-8cdf-7469-b5f1-de6135ea83b6", + "kind": "attribute", + "name": "Location", + "public_id": "Location", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "019c85f6-8cdf-7469-b5f1-de6135ea83b7", + "kind": "attribute", + "name": "Note", + "public_id": "Note", + "cardinality": { + "min": 0, + "max": null + } + } + ], + "relations": [ + { + "id": "019c85f6-8cdf-7469-b5f1-de6135ea83b8", + "kind": "relation", + "name": "contains", + "public_id": "DataEntityContainsDataAttribute", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Entity", + "target_asset_type": "Data Attribute" + } + }, + { + "id": "019c85f6-8cdf-7469-b5f1-de6135ea83b9", + "kind": "relation", + "name": "represents", + "public_id": "BusinessAssetRepresentsDataAsset", + "cardinality": { + "min": 1, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Asset", + "target_asset_type": "Data Asset" + } + }, + { + "id": "019c85f6-8cdf-7469-b5f1-de6135ea83ba", + "kind": "relation", + "name": "implemented in", + "public_id": "DataAssetImplementedInTechnologyAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Asset", + "target_asset_type": "Technology Asset" + } + }, + { + "id": "019c85f6-8cdf-7469-b5f1-de6135ea83bb", + "kind": "relation", + "name": "governed by", + "public_id": "AssetGovernedByGovernanceAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Asset", + "target_asset_type": "Governance Asset" + } + }, + { + "id": "019c85f6-8cdf-7469-b5f1-de6135ea83bc", + "kind": "relation", + "name": "impacts", + "public_id": "IssueImpactsAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Issue", + "target_asset_type": "Asset" + } + }, + { + "id": "019c85f6-8cdf-7469-b5f1-de6135ea83bd", + "kind": "relation", + "name": "source of", + "public_id": "DataStructureSourceOfMappingSpecification", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Structure", + "target_asset_type": "Mapping Specification" + } + }, + { + "id": "019c85f6-8cdf-7469-b5f1-de6135ea83be", + "kind": "relation", + "name": "target of", + "public_id": "DataStructureTargetOfMappingSpecification", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Structure", + "target_asset_type": "Mapping Specification" + } + }, + { + "id": "019c85f6-8cdf-7469-b5f1-de6135ea83bf", + "kind": "relation", + "name": "is part of", + "public_id": "DataEntityIsPartOfDataModel", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Entity", + "target_asset_type": "Data Model" + } + }, + { + "id": "019c85f6-8cdf-7469-b5f1-de6135ea83c0", + "kind": "relation", + "name": "classifies", + "public_id": "BusinessDimensionClassifiesAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Dimension", + "target_asset_type": "Asset" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-100000000046", + "kind": "asset_type", + "name": "MicroStrategy Data Model", + "public_id": "MicrostrategyDataModel", + "parent_name": "BI Data Model", + "attributes": [ + { + "id": "2f34bd0a-5a10-4cb1-a4ae-93a437918e91", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "9ec07843-0ab8-4ec4-a186-093aba45e02b", + "kind": "attribute", + "name": "Certified", + "public_id": "Certified", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-ab56-73ed-85ed-229f901fc220", + "kind": "attribute", + "name": "Owner in Source", + "public_id": "OwnerInSource", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "ba52d584-2788-4e16-8682-3c49ff32e3c8", + "kind": "relation", + "name": "contains", + "public_id": "BIDataModelContainsBIDataAttribute", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "BI Data Model", + "target_asset_type": "BI Data Attribute" + } + }, + { + "id": "ae51a5c7-e41b-456f-9cd7-f7e7e65717f8", + "kind": "relation", + "name": "is source for", + "public_id": "DataAssetIsSourceForBIReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Asset", + "target_asset_type": "BI Report" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-100000000049", + "kind": "asset_type", + "name": "MicroStrategy Document", + "public_id": "MicrostrategyDocument", + "parent_name": "BI Report", + "attributes": [ + { + "id": "019c85f6-91ab-721a-a9c0-5c4cec910621", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "019c85f6-91ab-721a-a9c0-5c4cec910622", + "kind": "attribute", + "name": "Definition", + "public_id": "Definition", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "019c85f6-91ab-721a-a9c0-5c4cec910623", + "kind": "attribute", + "name": "Descriptive Example", + "public_id": "DescriptiveExample", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "019c85f6-91ab-721a-a9c0-5c4cec910624", + "kind": "attribute", + "name": "Location", + "public_id": "Location", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "019c85f6-91ab-721a-a9c0-5c4cec910625", + "kind": "attribute", + "name": "Abbreviation", + "public_id": "Abbreviation", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "019c85f6-91ab-721a-a9c0-5c4cec910626", + "kind": "attribute", + "name": "Inclusion Scenario", + "public_id": "InclusionScenario", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "019c85f6-91ab-721a-a9c0-5c4cec910627", + "kind": "attribute", + "name": "Scope", + "public_id": "Scope", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "019c85f6-91ab-721a-a9c0-5c4cec910628", + "kind": "attribute", + "name": "Frequency", + "public_id": "Frequency", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "019c85f6-91ab-721a-a9c0-5c4cec910629", + "kind": "attribute", + "name": "Security Classification", + "public_id": "SecurityClassification", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "019c85f6-91ab-721a-a9c0-5c4cec91062a", + "kind": "attribute", + "name": "Last Review Date", + "public_id": "LastReviewDate", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "019c85f6-91ab-721a-a9c0-5c4cec910632", + "kind": "attribute", + "name": "Certified", + "public_id": "Certified", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019c85f6-91ab-721a-a9c0-5c4cec910633", + "kind": "attribute", + "name": "Document creation date", + "public_id": "DocumentCreationDate", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019c85f6-91ab-721a-a9c0-5c4cec910634", + "kind": "attribute", + "name": "Document modification date", + "public_id": "DocumentModificationDate", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019c85f6-91ab-721a-a9c0-5c4cec910635", + "kind": "attribute", + "name": "Document size", + "public_id": "DocumentSize", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019c85f6-91ab-721a-a9c0-5c4cec910636", + "kind": "attribute", + "name": "Report Image", + "public_id": "ReportImage", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019c85f6-91ab-721a-a9c0-5c4cec910637", + "kind": "attribute", + "name": "URL", + "public_id": "Url", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019c85f6-91ab-721a-a9c0-5c4cec910638", + "kind": "attribute", + "name": "Owner in Source", + "public_id": "OwnerInSource", + "cardinality": { + "min": 0, + "max": null + } + } + ], + "relations": [ + { + "id": "019c85f6-91ab-721a-a9c0-5c4cec91062b", + "kind": "relation", + "name": "contained in", + "public_id": "ReportAttributeContainedInReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report Attribute", + "target_asset_type": "Report" + } + }, + { + "id": "019c85f6-91ab-721a-a9c0-5c4cec91062c", + "kind": "relation", + "name": "groups", + "public_id": "BusinessAssetGroupsBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Asset", + "target_asset_type": "Business Asset" + } + }, + { + "id": "019c85f6-91ab-721a-a9c0-5c4cec91062d", + "kind": "relation", + "name": "groups", + "public_id": "BusinessAssetGroupsBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Asset", + "target_asset_type": "Business Asset" + } + }, + { + "id": "019c85f6-91ab-721a-a9c0-5c4cec91062e", + "kind": "relation", + "name": "classifies", + "public_id": "BusinessDimensionClassifiesAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Dimension", + "target_asset_type": "Asset" + } + }, + { + "id": "019c85f6-91ab-721a-a9c0-5c4cec91062f", + "kind": "relation", + "name": "associates", + "public_id": "LineOfBusinessAssociatesBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Line of Business", + "target_asset_type": "Business Asset" + } + }, + { + "id": "019c85f6-91ab-721a-a9c0-5c4cec910630", + "kind": "relation", + "name": "produces", + "public_id": "BusinessProcessProducesBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Process", + "target_asset_type": "Business Asset" + } + }, + { + "id": "019c85f6-91ab-721a-a9c0-5c4cec910631", + "kind": "relation", + "name": "impacts", + "public_id": "IssueImpactsAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Issue", + "target_asset_type": "Asset" + } + }, + { + "id": "019c85f6-91ab-721a-a9c0-5c4cec910639", + "kind": "relation", + "name": "contains", + "public_id": "BIReportContainsBIDataModel", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "BI Report", + "target_asset_type": "BI Data Model" + } + }, + { + "id": "019c85f6-91ab-721a-a9c0-5c4cec91063a", + "kind": "relation", + "name": "groups", + "public_id": "BusinessDimensionGroupsReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Dimension", + "target_asset_type": "Report" + } + }, + { + "id": "019c85f6-91ab-721a-a9c0-5c4cec91063b", + "kind": "relation", + "name": "is source for", + "public_id": "DataAssetIsSourceForBIReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Asset", + "target_asset_type": "BI Report" + } + }, + { + "id": "019c85f6-91ab-721a-a9c0-5c4cec91063c", + "kind": "relation", + "name": "related to", + "public_id": "ReportRelatedToBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Business Asset" + } + }, + { + "id": "019c85f6-91ab-721a-a9c0-5c4cec91063d", + "kind": "relation", + "name": "groups", + "public_id": "ReportGroupsReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Report" + } + }, + { + "id": "019c85f6-91ab-721a-a9c0-5c4cec91063e", + "kind": "relation", + "name": "groups", + "public_id": "ReportGroupsReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Report" + } + }, + { + "id": "019c85f6-91ab-721a-a9c0-5c4cec91063f", + "kind": "relation", + "name": "uses", + "public_id": "ReportUsesDataAttribute", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Data Attribute" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-100000000043", + "kind": "asset_type", + "name": "MicroStrategy Dossier", + "public_id": "MicrostrategyDossier", + "parent_name": "BI Report", + "attributes": [ + { + "id": "eee15d87-8d7f-4c0c-8866-1532acffb53a", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "412dd90b-a35f-4c61-9752-f2f197a0eaaa", + "kind": "attribute", + "name": "Certified", + "public_id": "Certified", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-ab45-7d90-9fc2-21712c3f7a97", + "kind": "attribute", + "name": "Owner in Source", + "public_id": "OwnerInSource", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "3e522eac-2adb-40ac-aada-d6c127a09923", + "kind": "relation", + "name": "groups", + "public_id": "ReportGroupsReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Report" + } + }, + { + "id": "23c528b8-ff29-4e99-9267-4089453fb0f1", + "kind": "relation", + "name": "groups", + "public_id": "ReportGroupsReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Report" + } + }, + { + "id": "1738cf15-af13-407a-8d7d-9acb86680226", + "kind": "relation", + "name": "contained in", + "public_id": "ReportAttributeContainedInReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report Attribute", + "target_asset_type": "Report" + } + }, + { + "id": "c1fe57f0-d3e3-4615-ae4b-4da0e49e7352", + "kind": "relation", + "name": "related to", + "public_id": "ReportRelatedToBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Business Asset" + } + }, + { + "id": "d951e253-affe-4328-8dc6-16846e144830", + "kind": "relation", + "name": "related to", + "public_id": "ReportRelatedToBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Business Asset" + } + }, + { + "id": "eecde19f-88fa-4964-8699-601c2a8d5caf", + "kind": "relation", + "name": "groups", + "public_id": "BusinessDimensionGroupsReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Dimension", + "target_asset_type": "Report" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-100000000042", + "kind": "asset_type", + "name": "MicroStrategy Folder", + "public_id": "MicrostrategyFolder", + "parent_name": "BI Folder", + "attributes": [ + { + "id": "dca9b98d-dce1-4ea7-a19d-ac701ff2ef65", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": null + } + } + ], + "relations": [ + { + "id": "def09d7d-626f-49bf-b5e1-a042fb20d29b", + "kind": "relation", + "name": "assembles", + "public_id": "BIFolderAssemblesBIFolder", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "BI Folder", + "target_asset_type": "BI Folder" + } + }, + { + "id": "e53e8305-230a-4820-be7e-c4a0859e2609", + "kind": "relation", + "name": "assembles", + "public_id": "BIFolderAssemblesBIFolder", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "BI Folder", + "target_asset_type": "BI Folder" + } + }, + { + "id": "4db08bf8-c482-43a2-8580-21677dbc400c", + "kind": "relation", + "name": "groups", + "public_id": "BusinessDimensionGroupsReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Dimension", + "target_asset_type": "Report" + } + }, + { + "id": "8dd66d97-7e15-450c-9e5a-b024c7d7c08c", + "kind": "relation", + "name": "contains", + "public_id": "BIFolderContainsDataAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "BI Folder", + "target_asset_type": "Data Asset" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-100000000041", + "kind": "asset_type", + "name": "MicroStrategy Project", + "public_id": "MicrostrategyProject", + "parent_name": "BI Folder", + "attributes": [ + { + "id": "ab7617e9-e8eb-4a89-884b-61c899eebc45", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "d97d01fa-0d38-41f3-b83f-39cf26146cfd", + "kind": "attribute", + "name": "Document creation date", + "public_id": "DocumentCreationDate", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "2a44a4cd-8456-497e-ad3a-95e0a0ef535e", + "kind": "attribute", + "name": "Document modification date", + "public_id": "DocumentModificationDate", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "08336798-b7e0-4925-bc88-695bbfb9f3ac", + "kind": "relation", + "name": "assembles", + "public_id": "BIFolderAssemblesBIFolder", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "BI Folder", + "target_asset_type": "BI Folder" + } + }, + { + "id": "927fb85e-c848-4a93-ae9e-f3be58442cb5", + "kind": "relation", + "name": "assembles", + "public_id": "BIFolderAssemblesBIFolder", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "BI Folder", + "target_asset_type": "BI Folder" + } + }, + { + "id": "d7e1f04c-78ce-41a3-97a0-dae560e0528e", + "kind": "relation", + "name": "hosts", + "public_id": "ServerHostsBusinessDimension", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Server", + "target_asset_type": "Business Dimension" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-100000000044", + "kind": "asset_type", + "name": "MicroStrategy Report", + "public_id": "MicrostrategyReport", + "parent_name": "BI Report", + "attributes": [ + { + "id": "d1febb82-5a1d-4ce1-b262-dd0b97b58e65", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "e9562240-00c7-4cf8-8f3b-2c703d24d490", + "kind": "attribute", + "name": "Certified", + "public_id": "Certified", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-b97d-79ad-81b7-29af1a59f3df", + "kind": "attribute", + "name": "Document creation date", + "public_id": "DocumentCreationDate", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-b97d-79ad-81b7-29af1a59f3e0", + "kind": "attribute", + "name": "Document modification date", + "public_id": "DocumentModificationDate", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-b97d-79ad-81b7-29af1a59f3e1", + "kind": "attribute", + "name": "Document size", + "public_id": "DocumentSize", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-b97d-79ad-81b7-29af1a59f3e2", + "kind": "attribute", + "name": "Report Image", + "public_id": "ReportImage", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-b97d-79ad-81b7-29af1a59f3e3", + "kind": "attribute", + "name": "URL", + "public_id": "Url", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-b97d-79ad-81b7-29af1a59f3e4", + "kind": "attribute", + "name": "Owner in Source", + "public_id": "OwnerInSource", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "01922077-d73f-7d87-9e96-9a63e7f9a4fe", + "kind": "attribute", + "name": "Source Type", + "public_id": "SourceType", + "cardinality": { + "min": 1, + "max": 1 + } + } + ], + "relations": [ + { + "id": "5027b71b-5b10-4c00-a075-57d3b754f1a1", + "kind": "relation", + "name": "groups", + "public_id": "ReportGroupsReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Report" + } + }, + { + "id": "7f62176a-b4fc-4caf-ac3d-04d559fee122", + "kind": "relation", + "name": "groups", + "public_id": "ReportGroupsReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Report" + } + }, + { + "id": "cd3f5c09-c355-4ab9-b78c-ce90337b92d1", + "kind": "relation", + "name": "contained in", + "public_id": "ReportAttributeContainedInReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report Attribute", + "target_asset_type": "Report" + } + }, + { + "id": "956c5b08-e936-485e-a2da-5805041c36d6", + "kind": "relation", + "name": "related to", + "public_id": "ReportRelatedToBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Business Asset" + } + }, + { + "id": "8b75f206-da0b-42ff-962c-ede8e921b54e", + "kind": "relation", + "name": "related to", + "public_id": "ReportRelatedToBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Business Asset" + } + }, + { + "id": "e3b2a4d1-3ee8-4075-a660-19cf65849cb5", + "kind": "relation", + "name": "groups", + "public_id": "BusinessDimensionGroupsReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Dimension", + "target_asset_type": "Report" + } + }, + { + "id": "01922077-b97d-79ad-81b7-29af1a59f3e5", + "kind": "relation", + "name": "contains", + "public_id": "BIReportContainsBIDataModel", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "BI Report", + "target_asset_type": "BI Data Model" + } + }, + { + "id": "01922077-b97d-79ad-81b7-29af1a59f3e7", + "kind": "relation", + "name": "is source for", + "public_id": "DataAssetIsSourceForBIReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Asset", + "target_asset_type": "BI Report" + } + }, + { + "id": "01922077-b97d-79ad-81b7-29af1a59f3eb", + "kind": "relation", + "name": "uses", + "public_id": "ReportUsesDataAttribute", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Data Attribute" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-100000000045", + "kind": "asset_type", + "name": "MicroStrategy Report Attribute", + "public_id": "MicrostrategyReportAttribute", + "parent_name": "BI Report Attribute", + "attributes": [ + { + "id": "47f584a5-5f0f-437f-93c7-f3fcf3deb251", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "847c8cbb-4bdc-4b64-a785-5c22a429298a", + "kind": "attribute", + "name": "Role in Report", + "public_id": "RoleInReport", + "cardinality": { + "min": 0, + "max": null + } + } + ], + "relations": [ + { + "id": "87a424fa-53d0-4107-927a-876caf36237c", + "kind": "relation", + "name": "contained in", + "public_id": "ReportAttributeContainedInReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report Attribute", + "target_asset_type": "Report" + } + }, + { + "id": "609de3b1-9388-48e2-b582-7ff6670910e4", + "kind": "relation", + "name": "sourced from", + "public_id": "ReportAttributeSourcedFromDataAttribute", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report Attribute", + "target_asset_type": "Data Attribute" + } + }, + { + "id": "00feeb39-2596-4948-bd62-53fd056c333b", + "kind": "relation", + "name": "represents", + "public_id": "BusinessAssetRepresentsDataAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Asset", + "target_asset_type": "Data Asset" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-100000000040", + "kind": "asset_type", + "name": "MicroStrategy Server", + "public_id": "MicrostrategyServer", + "parent_name": "BI Server", + "attributes": [ + { + "id": "e524dd21-2611-49e3-9560-5dbb6a2fc431", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": null + } + } + ], + "relations": [ + { + "id": "4e2905fb-6f1e-4522-83a1-c013f9990ef7", + "kind": "relation", + "name": "hosts", + "public_id": "ServerHostsBusinessDimension", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Server", + "target_asset_type": "Business Dimension" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-100000000050", + "kind": "asset_type", + "name": "MicroStrategy Visualisation", + "public_id": "MicrostrategyVisualisation", + "parent_name": "BI Report Attribute", + "attributes": [ + { + "id": "019c85f6-97d3-73c4-b417-ba93cfae14cd", + "kind": "attribute", + "name": "Definition", + "public_id": "Definition", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "019c85f6-97d3-73c4-b417-ba93cfae14ce", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "019c85f6-97d3-73c4-b417-ba93cfae14cf", + "kind": "attribute", + "name": "Location", + "public_id": "Location", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "019c85f6-97d3-73c4-b417-ba93cfae14d0", + "kind": "attribute", + "name": "Technical Data Type", + "public_id": "TechnicalDataType", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "019c85f6-97d3-73c4-b417-ba93cfae14d1", + "kind": "attribute", + "name": "Data Type Precision", + "public_id": "DataTypePrecision", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "019c85f6-97d3-73c4-b417-ba93cfae14d2", + "kind": "attribute", + "name": "Note", + "public_id": "Note", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "019c85f6-97d3-73c4-b417-ba93cfae14d3", + "kind": "attribute", + "name": "Inclusion Scenario", + "public_id": "InclusionScenario", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "019c85f6-97d3-73c4-b417-ba93cfae14d4", + "kind": "attribute", + "name": "Scope", + "public_id": "Scope", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "019c85f6-97d3-73c4-b417-ba93cfae14d5", + "kind": "attribute", + "name": "Frequency", + "public_id": "Frequency", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "019c85f6-97d3-73c4-b417-ba93cfae14d6", + "kind": "attribute", + "name": "Security Classification", + "public_id": "SecurityClassification", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "019c85f6-97d3-73c4-b417-ba93cfae14d7", + "kind": "attribute", + "name": "Last Review Date", + "public_id": "LastReviewDate", + "cardinality": { + "min": 0, + "max": null + } + } + ], + "relations": [ + { + "id": "019c85f6-97d3-73c4-b417-ba93cfae14d8", + "kind": "relation", + "name": "contained in", + "public_id": "ReportAttributeContainedInReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report Attribute", + "target_asset_type": "Report" + } + }, + { + "id": "019c85f6-97d3-73c4-b417-ba93cfae14d9", + "kind": "relation", + "name": "classifies", + "public_id": "BusinessDimensionClassifiesAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Dimension", + "target_asset_type": "Asset" + } + }, + { + "id": "019c85f6-97d3-73c4-b417-ba93cfae14da", + "kind": "relation", + "name": "represents", + "public_id": "BusinessAssetRepresentsDataAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Asset", + "target_asset_type": "Data Asset" + } + }, + { + "id": "019c85f6-97d3-73c4-b417-ba93cfae14db", + "kind": "relation", + "name": "impacts", + "public_id": "IssueImpactsAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Issue", + "target_asset_type": "Asset" + } + }, + { + "id": "019c85f6-97d3-73c4-b417-ba93cfae14dc", + "kind": "relation", + "name": "sourced from", + "public_id": "ReportAttributeSourcedFromDataAttribute", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report Attribute", + "target_asset_type": "Data Attribute" + } + }, + { + "id": "019c85f6-97d3-73c4-b417-ba93cfae14dd", + "kind": "relation", + "name": "qualifies", + "public_id": "BusinessQualifierQualifiesAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Qualifier", + "target_asset_type": "Asset" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-110000000020", + "kind": "asset_type", + "name": "Microsoft Tenant", + "public_id": "MicrosoftTenant", + "parent_name": "Server", + "attributes": [ + { + "id": "0199b495-f022-7932-85fc-f314c01a12f8", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "0199b495-f4d2-7321-872f-a3c4cddea0ac", + "kind": "relation", + "name": "groups", + "public_id": "TechnologyAssetGroupsTechnologyAsset", + "cardinality": { + "min": 1, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Technology Asset", + "target_asset_type": "Technology Asset" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-100000000075", + "kind": "asset_type", + "name": "Model", + "public_id": "Model", + "parent_name": "Data Structure", + "attributes": [ + { + "id": "01957b35-c52e-7209-b575-f5fb5685bcd4", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [] + }, + { + "id": "00000000-0000-0000-0000-090000010015", + "kind": "asset_type", + "name": "Outlier Score", + "public_id": "OutlierScore", + "parent_name": "Data Quality Metric", + "attributes": [ + { + "id": "01922077-c8fe-7e8d-b28e-20a5b52f1e0f", + "kind": "attribute", + "name": "Rows Failed", + "public_id": "RowsFailed", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "01922077-c8fe-7e8d-b28e-20a5b52f1e10", + "kind": "attribute", + "name": "Loaded Rows", + "public_id": "LoadedRows", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "01922077-c8fe-7e8d-b28e-20a5b52f1e11", + "kind": "attribute", + "name": "Measurement", + "public_id": "Measurement", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "01922077-c8fe-7e8d-b28e-20a5b52f1e12", + "kind": "attribute", + "name": "Passing Fraction", + "public_id": "PassingFraction", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "01922077-c8fe-7e8d-b28e-20a5b52f1e13", + "kind": "attribute", + "name": "Score Details", + "public_id": "ScoreDetails", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "01922077-c8fe-7e8d-b28e-20a5b52f1e14", + "kind": "attribute", + "name": "Score Status", + "public_id": "ScoreStatus", + "cardinality": { + "min": 1, + "max": 1 + } + } + ], + "relations": [ + { + "id": "01922077-d89f-70fc-a395-b555fdab63f7", + "kind": "relation", + "name": "executed by", + "public_id": "DataQualityRuleExecutedByDataQualityMetric", + "cardinality": { + "min": 1, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "Data Quality Rule", + "target_asset_type": "Data Quality Metric" + } + } + ] + }, + { + "id": "c0e00000-0000-0000-0000-000000000261", + "kind": "asset_type", + "name": "Party", + "public_id": "Party", + "parent_name": "Business Dimension", + "attributes": [ + { + "id": "01922077-fdf9-73b1-bc1f-8d330f8e7182", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "01922077-fdf9-73b1-bc1f-8d330f8e7183", + "kind": "attribute", + "name": "Party Role Type", + "public_id": "PartyRoleType", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "01922077-fdf9-73b1-bc1f-8d330f8e7186", + "kind": "attribute", + "name": "Contact Person Name", + "public_id": "ContactPersonName", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "01922077-fdf9-73b1-bc1f-8d330f8e7187", + "kind": "attribute", + "name": "Contact Person Email", + "public_id": "ContactPersonEmail", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "01922077-fdf9-73b1-bc1f-8d330f8e7188", + "kind": "attribute", + "name": "Contact Person Telephone", + "public_id": "ContactPersonTelephone", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "01922077-fdf9-73b1-bc1f-8d330f8e7189", + "kind": "attribute", + "name": "Contact Person Address", + "public_id": "ContactPersonAddress", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "01922077-fdf9-73b1-bc1f-8d330f8e718a", + "kind": "attribute", + "name": "DPO Name", + "public_id": "DpoName", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "01922077-fdf9-73b1-bc1f-8d330f8e718b", + "kind": "attribute", + "name": "DPO Email", + "public_id": "DpoEmail", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "01922077-fdf9-73b1-bc1f-8d330f8e718c", + "kind": "attribute", + "name": "DPO Telephone", + "public_id": "DpoTelephone", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "01922077-fdf9-73b1-bc1f-8d330f8e718d", + "kind": "attribute", + "name": "DPO Address", + "public_id": "DpoAddress", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "01922077-fdf9-73b1-bc1f-8d330f8e718e", + "kind": "attribute", + "name": "Due Diligence", + "public_id": "DueDiligence", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "01922077-fdf9-73b1-bc1f-8d330f8e7190", + "kind": "attribute", + "name": "Certificates", + "public_id": "Certificates", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "01922077-fdf9-73b1-bc1f-8d330f8e7192", + "kind": "attribute", + "name": "Note", + "public_id": "Note", + "cardinality": { + "min": 0, + "max": null + } + } + ], + "relations": [ + { + "id": "01922077-fdf9-73b1-bc1f-8d330f8e7184", + "kind": "relation", + "name": "groups", + "public_id": "BusinessAssetGroupsBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Asset", + "target_asset_type": "Business Asset" + } + }, + { + "id": "01922077-fdf9-73b1-bc1f-8d330f8e7185", + "kind": "relation", + "name": "groups", + "public_id": "BusinessAssetGroupsBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Asset", + "target_asset_type": "Business Asset" + } + }, + { + "id": "01922077-fdf9-73b1-bc1f-8d330f8e718f", + "kind": "relation", + "name": "complies to", + "public_id": "AssetCompliesToGovernanceAsset", + "cardinality": { + "min": 1, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Asset", + "target_asset_type": "Governance Asset" + } + }, + { + "id": "01922077-fdf9-73b1-bc1f-8d330f8e7191", + "kind": "relation", + "name": "is requested by", + "public_id": "DataSharingAgreementIsRequestedByBusinessDimension", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Sharing Agreement", + "target_asset_type": "Business Dimension" + } + }, + { + "id": "01922077-fdf9-73b1-bc1f-8d330f8e7193", + "kind": "relation", + "name": "is located in", + "public_id": "BusinessDimensionIsLocatedInJurisdiction", + "cardinality": { + "min": 1, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Dimension", + "target_asset_type": "Jurisdiction" + } + }, + { + "id": "01922077-fdf9-73b1-bc1f-8d330f8e7194", + "kind": "relation", + "name": "receives service/product by", + "public_id": "LineOfBusinessReceivesServiceProductByParty", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Line of Business", + "target_asset_type": "Party" + } + }, + { + "id": "01922077-fdf9-73b1-bc1f-8d330f8e7195", + "kind": "relation", + "name": "is accepted by", + "public_id": "DataSharingAgreementIsAcceptedByBusinessDimension", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Sharing Agreement", + "target_asset_type": "Business Dimension" + } + }, + { + "id": "01922077-fdf9-73b1-bc1f-8d330f8e7196", + "kind": "relation", + "name": "recipient", + "public_id": "BusinessProcessRecipientParty", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Process", + "target_asset_type": "Party" + } + }, + { + "id": "01922077-fdf9-73b1-bc1f-8d330f8e7197", + "kind": "relation", + "name": "processor", + "public_id": "BusinessProcessProcessorParty", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Process", + "target_asset_type": "Party" + } + }, + { + "id": "01922077-fdf9-73b1-bc1f-8d330f8e7198", + "kind": "relation", + "name": "controller", + "public_id": "BusinessProcessControllerParty", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Process", + "target_asset_type": "Party" + } + }, + { + "id": "01922077-fdf9-73b1-bc1f-8d330f8e7199", + "kind": "relation", + "name": "joint controller", + "public_id": "BusinessProcessJointControllerParty", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Process", + "target_asset_type": "Party" + } + }, + { + "id": "01922077-fdf9-73b1-bc1f-8d330f8e719a", + "kind": "relation", + "name": "is owned by", + "public_id": "TechnologyAssetIsOwnedByParty", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Technology Asset", + "target_asset_type": "Party" + } + }, + { + "id": "01922077-fdf9-73b1-bc1f-8d330f8e719b", + "kind": "relation", + "name": "is potentially impacted by", + "public_id": "AssetIsPotentiallyImpactedByRisk", + "cardinality": { + "min": 1, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Asset", + "target_asset_type": "Risk" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-090000010016", + "kind": "asset_type", + "name": "Pattern Score", + "public_id": "PatternScore", + "parent_name": "Data Quality Metric", + "attributes": [ + { + "id": "01922077-c9bd-796d-af0b-33297cfbfe2d", + "kind": "attribute", + "name": "Rows Failed", + "public_id": "RowsFailed", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "01922077-c9bd-796d-af0b-33297cfbfe2e", + "kind": "attribute", + "name": "Loaded Rows", + "public_id": "LoadedRows", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "01922077-c9bd-796d-af0b-33297cfbfe2f", + "kind": "attribute", + "name": "Measurement", + "public_id": "Measurement", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "01922077-c9bd-796d-af0b-33297cfbfe30", + "kind": "attribute", + "name": "Passing Fraction", + "public_id": "PassingFraction", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "01922077-c9bd-796d-af0b-33297cfbfe31", + "kind": "attribute", + "name": "Score Details", + "public_id": "ScoreDetails", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "01922077-c9bd-796d-af0b-33297cfbfe32", + "kind": "attribute", + "name": "Score Status", + "public_id": "ScoreStatus", + "cardinality": { + "min": 1, + "max": 1 + } + } + ], + "relations": [ + { + "id": "01922077-d8b8-73e7-ad24-8644f7107100", + "kind": "relation", + "name": "executed by", + "public_id": "DataQualityRuleExecutedByDataQualityMetric", + "cardinality": { + "min": 1, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "Data Quality Rule", + "target_asset_type": "Data Quality Metric" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-000000031202", + "kind": "asset_type", + "name": "Policy", + "public_id": "Policy", + "parent_name": "Governance Asset", + "attributes": [ + { + "id": "f8f194a4-9061-41e0-8bf8-7b39b324f3b5", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "cbd0931c-681e-4bb9-936d-d7d25ec73d67", + "kind": "attribute", + "name": "Purpose", + "public_id": "Purpose", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "243cd56f-fef4-495a-8bcc-f764ec298c42", + "kind": "attribute", + "name": "Exception Scenario", + "public_id": "ExceptionScenario", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "e3ca5937-e6b6-42ce-8a62-1db7b27e19c2", + "kind": "attribute", + "name": "Measurement", + "public_id": "Measurement", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "491c8cf4-1d40-41ad-b92e-21a8c1bd91a4", + "kind": "attribute", + "name": "Descriptive Example", + "public_id": "DescriptiveExample", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "03619fbe-d7fa-4e36-a1fb-1a1855d25cc9", + "kind": "attribute", + "name": "Note", + "public_id": "Note", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "f02b5d88-bca8-4c49-acf5-da4c4234f22b", + "kind": "attribute", + "name": "Inclusion Scenario", + "public_id": "InclusionScenario", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "cf69f934-309a-4675-ae78-a901cba5d6b6", + "kind": "attribute", + "name": "Effective Start Date", + "public_id": "EffectiveStartDate", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "19301ee5-0564-420a-85f7-99318e70acdf", + "kind": "attribute", + "name": "Effective End Date", + "public_id": "EffectiveEndDate", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "802963f6-6f1a-40fe-a59e-71201246ac33", + "kind": "attribute", + "name": "Scope", + "public_id": "Scope", + "cardinality": { + "min": 0, + "max": null + } + } + ], + "relations": [ + { + "id": "868a722e-8a77-4d29-927f-e899ea869172", + "kind": "relation", + "name": "groups", + "public_id": "GovernanceAssetGroupsGovernanceAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Governance Asset", + "target_asset_type": "Governance Asset" + } + }, + { + "id": "0e2c1683-325b-4680-89f5-ea460f6fb96c", + "kind": "relation", + "name": "groups", + "public_id": "GovernanceAssetGroupsGovernanceAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Governance Asset", + "target_asset_type": "Governance Asset" + } + }, + { + "id": "568e3e6f-ba05-4d45-bba7-acae66351f61", + "kind": "relation", + "name": "complies to", + "public_id": "AssetCompliesToGovernanceAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Asset", + "target_asset_type": "Governance Asset" + } + }, + { + "id": "5fae26dc-65b1-4040-931a-bb7f1c09b2cf", + "kind": "relation", + "name": "complies to", + "public_id": "AssetCompliesToGovernanceAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Asset", + "target_asset_type": "Governance Asset" + } + }, + { + "id": "9225498e-1cb7-47dc-9675-893a38ff35aa", + "kind": "relation", + "name": "is included in", + "public_id": "StandardIsIncludedInPolicy", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Standard", + "target_asset_type": "Policy" + } + }, + { + "id": "568e2ed0-522a-400d-84d6-4ccf5584d196", + "kind": "relation", + "name": "is enforced by", + "public_id": "PolicyIsEnforcedByRule", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Policy", + "target_asset_type": "Rule" + } + }, + { + "id": "a08d383c-e51d-41ab-9316-28d5aedd5f84", + "kind": "relation", + "name": "impacts", + "public_id": "IssueImpactsAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Issue", + "target_asset_type": "Asset" + } + }, + { + "id": "01992462-081b-7cd6-9176-2137e7083d23", + "kind": "relation", + "name": "enforces", + "public_id": "ManagedControlEnforcesPolicy", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Managed Control", + "target_asset_type": "Policy" + } + }, + { + "id": "019ccde7-c30d-7374-a729-270e1ae19529", + "kind": "relation", + "name": "complies to", + "public_id": "ComplianceTargetCompliesToPolicy", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Compliance Target", + "target_asset_type": "Policy" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-100000000002", + "kind": "asset_type", + "name": "Power BI Capacity", + "public_id": "PowerBICapacity", + "parent_name": "BI Folder", + "attributes": [ + { + "id": "168b7b5d-e976-4b7d-b2a9-418b6a91cb30", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": null + } + } + ], + "relations": [ + { + "id": "41e14e47-5498-4822-b01b-e825a43a59b6", + "kind": "relation", + "name": "hosts", + "public_id": "ServerHostsBusinessDimension", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Server", + "target_asset_type": "Business Dimension" + } + }, + { + "id": "66bf4be5-1b64-4944-abda-07a0a0172ae6", + "kind": "relation", + "name": "assembles", + "public_id": "BIFolderAssemblesBIFolder", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "BI Folder", + "target_asset_type": "BI Folder" + } + }, + { + "id": "d71ab20f-b30a-4ce2-8ab3-607692fa7b5b", + "kind": "relation", + "name": "assembles", + "public_id": "BIFolderAssemblesBIFolder", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "BI Folder", + "target_asset_type": "BI Folder" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-100000000008", + "kind": "asset_type", + "name": "Power BI Column", + "public_id": "PowerBIColumn", + "parent_name": "BI Data Attribute", + "attributes": [ + { + "id": "49c450be-f507-4179-a1cb-7808a876a5a3", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "b2a898a5-6fb2-4ad4-8243-8eddd861577b", + "kind": "attribute", + "name": "Technical Data Type", + "public_id": "TechnicalDataType", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-d6d8-78aa-aa24-906b5c75e437", + "kind": "attribute", + "name": "Calculation Rule", + "public_id": "CalculationRule", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-d6d8-78aa-aa24-906b5c75e438", + "kind": "attribute", + "name": "Role in Report", + "public_id": "RoleInReport", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0198942b-572b-7e38-8f7c-67aeb005e8f6", + "kind": "attribute", + "name": "Visible on server", + "public_id": "VisibleOnServer", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "be4dbb76-a517-4fd7-b546-60321acf019d", + "kind": "relation", + "name": "is source for", + "public_id": "ColumnIsSourceForDataAttribute", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Column", + "target_asset_type": "Data Attribute" + } + }, + { + "id": "8e778767-3c9c-45a9-81d8-ac3c81eb1434", + "kind": "relation", + "name": "targets", + "public_id": "DataElementTargetsDataElement", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Element", + "target_asset_type": "Data Element" + } + }, + { + "id": "6e561fb8-9a1f-420c-8f54-6dab87d3b628", + "kind": "relation", + "name": "targets", + "public_id": "DataElementTargetsDataElement", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Element", + "target_asset_type": "Data Element" + } + }, + { + "id": "d6fdac92-c048-49bc-9616-1a86a557b858", + "kind": "relation", + "name": "contains", + "public_id": "BIDataModelContainsBIDataAttribute", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "BI Data Model", + "target_asset_type": "BI Data Attribute" + } + }, + { + "id": "0a895876-09d3-4b17-87f3-deabaa8023e4", + "kind": "relation", + "name": "contains", + "public_id": "DataEntityContainsDataAttribute", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Entity", + "target_asset_type": "Data Attribute" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-100000000004", + "kind": "asset_type", + "name": "Power BI Dashboard", + "public_id": "PowerBIDashboard", + "parent_name": "BI Report", + "attributes": [ + { + "id": "227a1dc1-6476-4251-bf0b-cd0fa59852c8", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "469c3c6d-ecf7-415d-862c-29a4c04bdaff", + "kind": "attribute", + "name": "Certified", + "public_id": "Certified", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "905a9998-ae17-4415-8b06-406f28db646f", + "kind": "attribute", + "name": "URL", + "public_id": "Url", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019c195a-7824-71a3-a4f3-e8bc75b507e5", + "kind": "attribute", + "name": "Description from source system", + "public_id": "DescriptionFromSourceSystem", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019c195a-7825-72da-80b6-2a01472ee683", + "kind": "attribute", + "name": "Creation Date in Source", + "public_id": "CreationDateInSource", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019c195a-7825-72da-80b6-2a01472ee684", + "kind": "attribute", + "name": "Modification Date in Source", + "public_id": "ModificationDateInSource", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "2ad9d1f7-8be6-4ec8-9f94-712fd4c051e3", + "kind": "relation", + "name": "groups", + "public_id": "BusinessDimensionGroupsReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Dimension", + "target_asset_type": "Report" + } + }, + { + "id": "ce1298d9-7f9d-4051-846a-3526b6e826ab", + "kind": "relation", + "name": "uses", + "public_id": "ReportUsesReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Report" + } + }, + { + "id": "48af53ab-8416-43d5-8d97-f7b68862c2a7", + "kind": "relation", + "name": "uses", + "public_id": "ReportUsesReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Report" + } + }, + { + "id": "f33d8ed4-5b17-4dc7-b234-c18bef0e4842", + "kind": "relation", + "name": "related to", + "public_id": "ReportRelatedToBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Business Asset" + } + }, + { + "id": "68715cf1-3342-4405-bbe7-648944d2d915", + "kind": "relation", + "name": "related to", + "public_id": "ReportRelatedToBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Business Asset" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-100000000010", + "kind": "asset_type", + "name": "Power BI Data Flow", + "public_id": "PowerBIDataFlow", + "parent_name": "BI Data Model", + "attributes": [ + { + "id": "01922077-d71f-7c4d-a157-c101b8f70846", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "019c195a-7566-70ab-b8ad-973de79a4eed", + "kind": "attribute", + "name": "Description from source system", + "public_id": "DescriptionFromSourceSystem", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019c195a-7566-70ab-b8ad-973de79a4eee", + "kind": "attribute", + "name": "Creation Date in Source", + "public_id": "CreationDateInSource", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019c195a-7566-70ab-b8ad-973de79a4eef", + "kind": "attribute", + "name": "Modification Date in Source", + "public_id": "ModificationDateInSource", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "597d0508-e540-4508-9c3a-021e7597b69f", + "kind": "relation", + "name": "contains", + "public_id": "BIFolderContainsDataAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "BI Folder", + "target_asset_type": "Data Asset" + } + }, + { + "id": "4817d60a-f4ac-4fcf-811a-5b483164e7b8", + "kind": "relation", + "name": "is part of", + "public_id": "DataEntityIsPartOfDataModel", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Entity", + "target_asset_type": "Data Model" + } + }, + { + "id": "0657fc80-8d36-442a-bf3b-5a4633ddc978", + "kind": "relation", + "name": "contains", + "public_id": "BIDataModelContainsBIDataAttribute", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "BI Data Model", + "target_asset_type": "BI Data Attribute" + } + }, + { + "id": "01922077-d71f-7c4d-a157-c101b8f70847", + "kind": "relation", + "name": "is source for", + "public_id": "BIDataModelIsSourceForBIDataModel", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "BI Data Model", + "target_asset_type": "BI Data Model" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-100000000052", + "kind": "asset_type", + "name": "Power BI Data Mart", + "public_id": "PowerBIDataMart", + "parent_name": "BI Data Model", + "attributes": [ + { + "id": "01922077-d576-744a-a490-07e1ea44172f", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-d576-744a-a490-07e1ea441730", + "kind": "attribute", + "name": "Certified", + "public_id": "Certified", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-d576-744a-a490-07e1ea441731", + "kind": "attribute", + "name": "URL", + "public_id": "Url", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-d576-744a-a490-07e1ea441732", + "kind": "attribute", + "name": "Owner in Source", + "public_id": "OwnerInSource", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-d576-744a-a490-07e1ea441733", + "kind": "attribute", + "name": "Document modification date", + "public_id": "DocumentModificationDate", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019c195a-765b-756f-9cf4-d268ec258cde", + "kind": "attribute", + "name": "Description from source system", + "public_id": "DescriptionFromSourceSystem", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019c195a-765c-74bc-bc8c-9bbbeea6e42c", + "kind": "attribute", + "name": "Creation Date in Source", + "public_id": "CreationDateInSource", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019c195a-765c-74bc-bc8c-9bbbeea6e42d", + "kind": "attribute", + "name": "Modification Date in Source", + "public_id": "ModificationDateInSource", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "01922077-d576-744a-a490-07e1ea441734", + "kind": "relation", + "name": "is source for", + "public_id": "BIDataModelIsSourceForBIDataModel", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "BI Data Model", + "target_asset_type": "BI Data Model" + } + }, + { + "id": "01922077-d576-744a-a490-07e1ea441735", + "kind": "relation", + "name": "is source for", + "public_id": "DataAssetIsSourceForBIReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Asset", + "target_asset_type": "BI Report" + } + }, + { + "id": "01922077-d98e-7569-8b80-911ea8c39403", + "kind": "relation", + "name": "is source for", + "public_id": "BIDataModelIsSourceForBIDataModel", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "BI Data Model", + "target_asset_type": "BI Data Model" + } + }, + { + "id": "01922077-d98e-7569-8b80-911ea8c39404", + "kind": "relation", + "name": "contains", + "public_id": "BIFolderContainsDataAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "BI Folder", + "target_asset_type": "Data Asset" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-100000000007", + "kind": "asset_type", + "name": "Power BI Data Model", + "public_id": "PowerBIDataModel", + "parent_name": "BI Data Model", + "attributes": [ + { + "id": "1284548d-3c1a-405e-9e87-944a13870366", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "e06685c0-4397-45d6-b461-0b3b38ca6a39", + "kind": "attribute", + "name": "Certified", + "public_id": "Certified", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "56aca739-6554-40bb-af1b-2fc06eb5760b", + "kind": "attribute", + "name": "URL", + "public_id": "Url", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "cf62ccc4-7c88-4a63-b4b9-160834ca0170", + "kind": "attribute", + "name": "Document creation date", + "public_id": "DocumentCreationDate", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "16593d73-730f-402e-882f-1d772d0b7380", + "kind": "attribute", + "name": "Document modification date", + "public_id": "DocumentModificationDate", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "63c07b89-519c-4a1c-b0e4-4f43d4772272", + "kind": "attribute", + "name": "Document size", + "public_id": "DocumentSize", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "765439a4-9c1a-4c90-b490-ed1824b2c4cf", + "kind": "attribute", + "name": "Visible on server", + "public_id": "VisibleOnServer", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "46869103-2898-4598-a274-d86ceb707e76", + "kind": "attribute", + "name": "Location", + "public_id": "Location", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-ab33-72a6-810c-20cff87ac16e", + "kind": "attribute", + "name": "Owner in Source", + "public_id": "OwnerInSource", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019c195a-76e1-7523-a8f1-503e65cab8df", + "kind": "attribute", + "name": "Description from source system", + "public_id": "DescriptionFromSourceSystem", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019c195a-76e1-7523-a8f1-503e65cab8e0", + "kind": "attribute", + "name": "Creation Date in Source", + "public_id": "CreationDateInSource", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019c195a-76e1-7523-a8f1-503e65cab8e1", + "kind": "attribute", + "name": "Modification Date in Source", + "public_id": "ModificationDateInSource", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "b4c44056-90ec-411a-b10b-8e2b5a05d810", + "kind": "relation", + "name": "is source for", + "public_id": "DataAssetIsSourceForBIReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Asset", + "target_asset_type": "BI Report" + } + }, + { + "id": "8d937e90-bd87-4d39-9cf9-63c7eb0aafcb", + "kind": "relation", + "name": "contains", + "public_id": "BIFolderContainsDataAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "BI Folder", + "target_asset_type": "Data Asset" + } + }, + { + "id": "0000b33c-c1c2-4451-bc75-3534128d618e", + "kind": "relation", + "name": "is part of", + "public_id": "DataEntityIsPartOfDataModel", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Entity", + "target_asset_type": "Data Model" + } + }, + { + "id": "2682d119-4a45-4d8f-a9a2-31ea9c22507f", + "kind": "relation", + "name": "contains", + "public_id": "BIDataModelContainsBIDataAttribute", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "BI Data Model", + "target_asset_type": "BI Data Attribute" + } + }, + { + "id": "5fe88f4d-e88f-4ce2-9f38-4149e0f26c11", + "kind": "relation", + "name": "source system for", + "public_id": "TechnologyAssetSourceSystemForDataAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Technology Asset", + "target_asset_type": "Data Asset" + } + }, + { + "id": "01922077-d970-7713-be87-0d34cda3db20", + "kind": "relation", + "name": "is source for", + "public_id": "BIDataModelIsSourceForBIDataModel", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "BI Data Model", + "target_asset_type": "BI Data Model" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-100000000020", + "kind": "asset_type", + "name": "Power BI Folder", + "public_id": "PowerBIFolder", + "parent_name": "BI Folder", + "attributes": [ + { + "id": "b562d414-c3c0-4454-9d26-6b7475086a08", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "e97a7673-8b0e-49e7-8834-4875abfbf008", + "kind": "attribute", + "name": "URL", + "public_id": "Url", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "a71989f4-3ea1-4a68-b9a9-0fc31f440be8", + "kind": "attribute", + "name": "Document creation date", + "public_id": "DocumentCreationDate", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "512c3dc9-b6fc-48c0-aaaa-c96b53eb7465", + "kind": "attribute", + "name": "Document modification date", + "public_id": "DocumentModificationDate", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "3da91c3b-41a8-4840-a9ce-b4ef06893436", + "kind": "attribute", + "name": "Visible on server", + "public_id": "VisibleOnServer", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "cf739d10-a424-43a0-aa02-fcf703e0d777", + "kind": "attribute", + "name": "Location", + "public_id": "Location", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "c8ed581f-f76a-4eab-8005-f28aa6f71299", + "kind": "relation", + "name": "assembles", + "public_id": "BIFolderAssemblesBIFolder", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "BI Folder", + "target_asset_type": "BI Folder" + } + }, + { + "id": "e312d469-8114-41c5-8920-7089f8e3b4be", + "kind": "relation", + "name": "assembles", + "public_id": "BIFolderAssemblesBIFolder", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "BI Folder", + "target_asset_type": "BI Folder" + } + }, + { + "id": "c040531a-659d-4fff-9b81-1bbdcec9b2ee", + "kind": "relation", + "name": "groups", + "public_id": "BusinessDimensionGroupsReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Dimension", + "target_asset_type": "Report" + } + }, + { + "id": "c1a4effb-8818-4583-b590-9ac793b64689", + "kind": "relation", + "name": "contains", + "public_id": "BIFolderContainsDataAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "BI Folder", + "target_asset_type": "Data Asset" + } + }, + { + "id": "324c17e7-5513-41c0-8557-05b5058a35b2", + "kind": "relation", + "name": "hosts", + "public_id": "ServerHostsBusinessDimension", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Server", + "target_asset_type": "Business Dimension" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-100000000021", + "kind": "asset_type", + "name": "Power BI KPI", + "public_id": "PowerBIKpi_C", + "parent_name": "BI Report", + "attributes": [ + { + "id": "2e656af3-b144-43f7-bd6d-89491f40f00f", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "27f96062-90f0-4e10-a964-8ea08208ddc7", + "kind": "attribute", + "name": "Certified", + "public_id": "Certified", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "cf1fd05e-232f-40bd-bb09-74008af0150e", + "kind": "attribute", + "name": "URL", + "public_id": "Url", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "9515cf93-176d-4c1d-b800-aaeb6f34e4c6", + "kind": "attribute", + "name": "Document creation date", + "public_id": "DocumentCreationDate", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "423d5794-2004-4cf0-92db-001b2ba23e39", + "kind": "attribute", + "name": "Document modification date", + "public_id": "DocumentModificationDate", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "6f53ce3f-5cbb-4546-a94a-b79f3733ff9b", + "kind": "attribute", + "name": "Document size", + "public_id": "DocumentSize", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "545cdaac-b815-4fb0-9a72-5472129672d3", + "kind": "attribute", + "name": "Visible on server", + "public_id": "VisibleOnServer", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "453456a4-b619-4e28-a808-0bc458890443", + "kind": "attribute", + "name": "Location", + "public_id": "Location", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "b1405bde-125e-448c-9b11-d4929eb018a6", + "kind": "relation", + "name": "contained in", + "public_id": "ReportAttributeContainedInReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report Attribute", + "target_asset_type": "Report" + } + }, + { + "id": "b3ad9514-a737-4815-8d14-585b0bc42d05", + "kind": "relation", + "name": "related to", + "public_id": "ReportRelatedToBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Business Asset" + } + }, + { + "id": "e8f5afb6-b6b0-4c1c-b040-2ef173567a36", + "kind": "relation", + "name": "related to", + "public_id": "ReportRelatedToBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Business Asset" + } + }, + { + "id": "3ff13ee7-ee6a-4907-b861-79a2f3f72cc3", + "kind": "relation", + "name": "is source for", + "public_id": "DataAssetIsSourceForBIReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Asset", + "target_asset_type": "BI Report" + } + }, + { + "id": "6b9cf338-1c04-4253-805b-92b36de16d9f", + "kind": "relation", + "name": "groups", + "public_id": "BusinessDimensionGroupsReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Dimension", + "target_asset_type": "Report" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-100000000022", + "kind": "asset_type", + "name": "Power BI Parameter", + "public_id": "PowerBIParameter_C", + "parent_name": "BI Report Attribute", + "attributes": [ + { + "id": "7549cc58-2ce8-4dcb-9acc-828efb609f8e", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": null + } + } + ], + "relations": [ + { + "id": "614fa964-1688-44bb-aa65-28784021745f", + "kind": "relation", + "name": "contained in", + "public_id": "ReportAttributeContainedInReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report Attribute", + "target_asset_type": "Report" + } + }, + { + "id": "fefb7453-8bfc-40b4-8446-1eec8d0369e0", + "kind": "relation", + "name": "represents", + "public_id": "BusinessAssetRepresentsDataAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Asset", + "target_asset_type": "Data Asset" + } + }, + { + "id": "71d3cd09-44b2-46e5-b679-f790dd82b72d", + "kind": "relation", + "name": "sourced from", + "public_id": "ReportAttributeSourcedFromDataAttribute", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report Attribute", + "target_asset_type": "Data Attribute" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-100000000006", + "kind": "asset_type", + "name": "Power BI Report", + "public_id": "PowerBIReport", + "parent_name": "BI Report", + "attributes": [ + { + "id": "b7f398c8-5433-40d1-9b8a-434bb2225e32", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "31b5c07c-477b-49b4-a18e-a9898da17d86", + "kind": "attribute", + "name": "Certified", + "public_id": "Certified", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "7e18c37b-8948-4f9e-95d1-b5843ea8e245", + "kind": "attribute", + "name": "URL", + "public_id": "Url", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "7f2e4d09-356d-4c2f-83e1-02ceeefc8848", + "kind": "attribute", + "name": "Document creation date", + "public_id": "DocumentCreationDate", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "153d4bb2-7770-4c8a-905e-96bd6baf6fc3", + "kind": "attribute", + "name": "Document modification date", + "public_id": "DocumentModificationDate", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "c33ccfc6-f6a0-4c2e-b383-a7047686884d", + "kind": "attribute", + "name": "Document size", + "public_id": "DocumentSize", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "633c2184-5b92-47e9-ad2d-4bf798df269f", + "kind": "attribute", + "name": "Visible on server", + "public_id": "VisibleOnServer", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "32e3ad58-37e1-4f84-adac-3924c30055e3", + "kind": "attribute", + "name": "Location", + "public_id": "Location", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-d6fa-7fea-a631-5864e6140b72", + "kind": "attribute", + "name": "Source Type", + "public_id": "SourceType", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "019c195a-77ba-740f-b3e6-4f6511c2c831", + "kind": "attribute", + "name": "Description from source system", + "public_id": "DescriptionFromSourceSystem", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019c195a-77ba-740f-b3e6-4f6511c2c832", + "kind": "attribute", + "name": "Creation Date in Source", + "public_id": "CreationDateInSource", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019c195a-77ba-740f-b3e6-4f6511c2c833", + "kind": "attribute", + "name": "Modification Date in Source", + "public_id": "ModificationDateInSource", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019c195a-873d-728d-93ea-61b95cf56d03", + "kind": "attribute", + "name": "Owner in Source", + "public_id": "OwnerInSource", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "5d03426c-76f4-44d4-9455-879866979bef", + "kind": "relation", + "name": "groups", + "public_id": "BusinessDimensionGroupsReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Dimension", + "target_asset_type": "Report" + } + }, + { + "id": "fbff26bd-4308-4538-b6cd-19a94bcbe3ab", + "kind": "relation", + "name": "uses", + "public_id": "ReportUsesReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Report" + } + }, + { + "id": "e3ca966e-50a3-4516-931a-52236418c079", + "kind": "relation", + "name": "uses", + "public_id": "ReportUsesReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Report" + } + }, + { + "id": "def68a8e-fb50-4127-9f35-810a7bb86c1d", + "kind": "relation", + "name": "related to", + "public_id": "ReportRelatedToBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Business Asset" + } + }, + { + "id": "75332401-a706-45a8-a0c9-0518b8f00ba8", + "kind": "relation", + "name": "related to", + "public_id": "ReportRelatedToBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Business Asset" + } + }, + { + "id": "2b74b84f-4a88-438e-91d4-91d5e2c7dac1", + "kind": "relation", + "name": "is source for", + "public_id": "DataAssetIsSourceForBIReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Asset", + "target_asset_type": "BI Report" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-100000000001", + "kind": "asset_type", + "name": "Power BI Server", + "public_id": "PowerBIServer", + "parent_name": "BI Server", + "attributes": [ + { + "id": "be2d2391-da8d-4e1f-b2d7-0a345d5909e6", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": null + } + } + ], + "relations": [ + { + "id": "51c76f17-ac94-4150-a566-b01f48717548", + "kind": "relation", + "name": "hosts", + "public_id": "ServerHostsBusinessDimension", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Server", + "target_asset_type": "Business Dimension" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-100000000009", + "kind": "asset_type", + "name": "Power BI Table", + "public_id": "PowerBITable", + "parent_name": "BI Data Entity", + "attributes": [ + { + "id": "bb1075b3-50fa-4a25-ac77-15d2fa201d2b", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "01922077-d6c3-7190-a623-947e80530955", + "kind": "attribute", + "name": "Calculation Rule", + "public_id": "CalculationRule", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0198942b-5769-7b45-a2ba-316ecf794f8d", + "kind": "attribute", + "name": "Visible on server", + "public_id": "VisibleOnServer", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019c195a-7759-7712-a713-6544f7b1aea3", + "kind": "attribute", + "name": "Description from source system", + "public_id": "DescriptionFromSourceSystem", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019c195a-7759-7712-a713-6544f7b1aea4", + "kind": "attribute", + "name": "Creation Date in Source", + "public_id": "CreationDateInSource", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019c195a-7759-7712-a713-6544f7b1aea5", + "kind": "attribute", + "name": "Modification Date in Source", + "public_id": "ModificationDateInSource", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "ca20a249-2761-454d-bb9c-db9023204288", + "kind": "relation", + "name": "is part of", + "public_id": "DataEntityIsPartOfDataModel", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Entity", + "target_asset_type": "Data Model" + } + }, + { + "id": "77f3b169-183f-40bd-aaa3-2655d50a5f1d", + "kind": "relation", + "name": "contains", + "public_id": "DataEntityContainsDataAttribute", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Entity", + "target_asset_type": "Data Attribute" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-100000000005", + "kind": "asset_type", + "name": "Power BI Tile", + "public_id": "PowerBITile", + "parent_name": "BI Report", + "attributes": [ + { + "id": "6884a519-b65b-4d81-9572-62f2930cc5be", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "714d2a75-cd93-4f3b-bc74-2d0f62657bc5", + "kind": "attribute", + "name": "Certified", + "public_id": "Certified", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "e3fcb3da-92a6-4c96-90cc-befa0603f20c", + "kind": "attribute", + "name": "URL", + "public_id": "Url", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "301e97cf-d1aa-489e-b151-9f22dcff3164", + "kind": "relation", + "name": "groups", + "public_id": "BusinessDimensionGroupsReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Dimension", + "target_asset_type": "Report" + } + }, + { + "id": "f9bc518e-8722-4e13-a854-9f37b424972d", + "kind": "relation", + "name": "uses", + "public_id": "ReportUsesReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Report" + } + }, + { + "id": "e417fb2d-31de-407a-9305-74817ea2e936", + "kind": "relation", + "name": "uses", + "public_id": "ReportUsesReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Report" + } + }, + { + "id": "b6e7a062-7312-4aca-a0a9-9cd6ba4c4a79", + "kind": "relation", + "name": "related to", + "public_id": "ReportRelatedToBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Business Asset" + } + }, + { + "id": "789a0144-7846-4f5b-b5e8-2114f9bc173f", + "kind": "relation", + "name": "related to", + "public_id": "ReportRelatedToBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Business Asset" + } + }, + { + "id": "a3e7968b-5098-4ccf-940c-b88347628dd1", + "kind": "relation", + "name": "is source for", + "public_id": "DataAssetIsSourceForBIReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Asset", + "target_asset_type": "BI Report" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-100000000003", + "kind": "asset_type", + "name": "Power BI Workspace", + "public_id": "PowerBIWorkspace", + "parent_name": "BI Folder", + "attributes": [ + { + "id": "190d75fc-b298-49d8-83dd-bf1a93936b73", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "01922077-a00f-77f0-add1-19b5a99cc9b1", + "kind": "attribute", + "name": "State Changed By", + "public_id": "StateChangedBy", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-ab21-722e-9169-c48b9f01b768", + "kind": "attribute", + "name": "Owner in Source", + "public_id": "OwnerInSource", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019c195a-7874-70f3-a7dd-53a2cc219e05", + "kind": "attribute", + "name": "Description from source system", + "public_id": "DescriptionFromSourceSystem", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019c195a-7874-70f3-a7dd-53a2cc219e06", + "kind": "attribute", + "name": "Creation Date in Source", + "public_id": "CreationDateInSource", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019c195a-7874-70f3-a7dd-53a2cc219e07", + "kind": "attribute", + "name": "Modification Date in Source", + "public_id": "ModificationDateInSource", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "8a75416a-79c5-498d-ae1d-5baa4fa97054", + "kind": "relation", + "name": "assembles", + "public_id": "BIFolderAssemblesBIFolder", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "BI Folder", + "target_asset_type": "BI Folder" + } + }, + { + "id": "641e798c-e8e8-444c-b5d9-ff32612890c2", + "kind": "relation", + "name": "assembles", + "public_id": "BIFolderAssemblesBIFolder", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "BI Folder", + "target_asset_type": "BI Folder" + } + }, + { + "id": "c9f66df8-c78d-4cb6-b8e0-1d4cbff2b497", + "kind": "relation", + "name": "groups", + "public_id": "BusinessDimensionGroupsReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Dimension", + "target_asset_type": "Report" + } + }, + { + "id": "767a4d40-adc7-4854-b8a3-95695a485115", + "kind": "relation", + "name": "contains", + "public_id": "BIFolderContainsDataAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "BI Folder", + "target_asset_type": "Data Asset" + } + } + ] + }, + { + "id": "c0e00000-0000-0000-0000-000000039043", + "kind": "asset_type", + "name": "Processing Category", + "public_id": "ProcessingCategory", + "parent_name": "Business Dimension", + "attributes": [ + { + "id": "01922077-fa2d-7706-8ee8-f3a9d1ece305", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "01922077-fa2d-7706-8ee8-f3a9d1ece309", + "kind": "attribute", + "name": "Note", + "public_id": "Note", + "cardinality": { + "min": 0, + "max": null + } + } + ], + "relations": [ + { + "id": "01922077-fa2d-7706-8ee8-f3a9d1ece306", + "kind": "relation", + "name": "groups", + "public_id": "BusinessAssetGroupsBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Asset", + "target_asset_type": "Business Asset" + } + }, + { + "id": "01922077-fa2d-7706-8ee8-f3a9d1ece307", + "kind": "relation", + "name": "groups", + "public_id": "BusinessAssetGroupsBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Asset", + "target_asset_type": "Business Asset" + } + }, + { + "id": "01922077-fa2d-7706-8ee8-f3a9d1ece308", + "kind": "relation", + "name": "complies to", + "public_id": "AssetCompliesToGovernanceAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Asset", + "target_asset_type": "Governance Asset" + } + }, + { + "id": "01922077-fdae-7260-bc5d-376e7ee0706a", + "kind": "relation", + "name": "is categorised by", + "public_id": "BusinessProcessIsCategorisedByProcessingCategory", + "cardinality": { + "min": 1, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Process", + "target_asset_type": "Processing Category" + } + } + ] + }, + { + "id": "c0e00000-0000-0000-0000-000000039021", + "kind": "asset_type", + "name": "Purpose", + "public_id": "Purpose", + "parent_name": "Governance Asset", + "attributes": [ + { + "id": "01922077-f77e-75d7-b38a-fa5659f2513b", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "01922077-f77f-7f6d-9e5f-bc1746425106", + "kind": "attribute", + "name": "Note", + "public_id": "Note", + "cardinality": { + "min": 0, + "max": null + } + } + ], + "relations": [ + { + "id": "01922077-f77f-7f6d-9e5f-bc1746425102", + "kind": "relation", + "name": "groups", + "public_id": "GovernanceAssetGroupsGovernanceAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Governance Asset", + "target_asset_type": "Governance Asset" + } + }, + { + "id": "01922077-f77f-7f6d-9e5f-bc1746425103", + "kind": "relation", + "name": "groups", + "public_id": "GovernanceAssetGroupsGovernanceAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Governance Asset", + "target_asset_type": "Governance Asset" + } + }, + { + "id": "01922077-f77f-7f6d-9e5f-bc1746425104", + "kind": "relation", + "name": "complies to", + "public_id": "AssetCompliesToGovernanceAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Asset", + "target_asset_type": "Governance Asset" + } + }, + { + "id": "01922077-f77f-7f6d-9e5f-bc1746425105", + "kind": "relation", + "name": "complies to", + "public_id": "AssetCompliesToGovernanceAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Asset", + "target_asset_type": "Governance Asset" + } + }, + { + "id": "01922077-fdbf-7ef8-abeb-2cf5830f61c4", + "kind": "relation", + "name": "is reason for", + "public_id": "PurposeIsReasonForBusinessProcess", + "cardinality": { + "min": 1, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Purpose", + "target_asset_type": "Business Process" + } + }, + { + "id": "01922077-fdbf-7ef8-abeb-2cf5830f61c5", + "kind": "relation", + "name": "has purpose", + "public_id": "DataUsageHasPurposePurpose", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Usage", + "target_asset_type": "Purpose" + } + }, + { + "id": "01922077-fdbf-7ef8-abeb-2cf5830f61c6", + "kind": "relation", + "name": "purpose of processing", + "public_id": "DataSharingAgreementPurposeOfProcessingPurpose", + "cardinality": { + "min": 1, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Sharing Agreement", + "target_asset_type": "Purpose" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-100000000088", + "kind": "asset_type", + "name": "Qlik Data Attribute", + "public_id": "QlikDataAttribute", + "parent_name": "BI Data Attribute", + "attributes": [ + { + "id": "01992462-10a3-747e-a488-a28616c612d7", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01992462-10a3-747e-a488-a28616c612d8", + "kind": "attribute", + "name": "Technical Data Type", + "public_id": "TechnicalDataType", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01992462-10a3-747e-a488-a28616c612d9", + "kind": "attribute", + "name": "Definition", + "public_id": "Definition", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01992462-10a3-747e-a488-a28616c612da", + "kind": "attribute", + "name": "Column Position", + "public_id": "ColumnPosition", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "01992462-10a3-747e-a488-a28616c612db", + "kind": "relation", + "name": "targets", + "public_id": "DataElementTargetsDataElement", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Element", + "target_asset_type": "Data Element" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-100000000087", + "kind": "asset_type", + "name": "Qlik Data Entity", + "public_id": "QlikDataEntity", + "parent_name": "BI Data Entity", + "attributes": [ + { + "id": "01992462-11a7-7b10-9003-e6bf46e61ded", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01992462-11a7-7b10-9003-e6bf46e61dee", + "kind": "attribute", + "name": "Location", + "public_id": "Location", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01992462-11a7-7b10-9003-e6bf46e61def", + "kind": "attribute", + "name": "Table Type", + "public_id": "TableType", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "01992462-11a7-7b10-9003-e6bf46e61df0", + "kind": "relation", + "name": "contains", + "public_id": "DataEntityContainsDataAttribute", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Entity", + "target_asset_type": "Data Attribute" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-100000000086", + "kind": "asset_type", + "name": "Qlik Data Model", + "public_id": "QlikDataModel", + "parent_name": "BI Data Model", + "attributes": [], + "relations": [ + { + "id": "01992462-1290-74da-8c88-38c8aaef9555", + "kind": "relation", + "name": "is part of", + "public_id": "DataEntityIsPartOfDataModel", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Entity", + "target_asset_type": "Data Model" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-100000000082", + "kind": "asset_type", + "name": "Qlik Sense Application", + "public_id": "QlikSenseApp", + "parent_name": "BI Report", + "attributes": [ + { + "id": "01992462-1665-7a4b-8d7f-ccc86970a248", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01992462-1665-7a4b-8d7f-ccc86970a249", + "kind": "attribute", + "name": "Description from source system", + "public_id": "DescriptionFromSourceSystem", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01992462-1665-7a4b-8d7f-ccc86970a24a", + "kind": "attribute", + "name": "Owner in Source", + "public_id": "OwnerInSource", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01992462-1666-71b1-9947-348a06b7cc0a", + "kind": "attribute", + "name": "Document creation date", + "public_id": "DocumentCreationDate", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01992462-1666-71b1-9947-348a06b7cc0b", + "kind": "attribute", + "name": "Document modification date", + "public_id": "DocumentModificationDate", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01992462-1666-71b1-9947-348a06b7cc0c", + "kind": "attribute", + "name": "State", + "public_id": "State", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "01992462-1666-71b1-9947-348a06b7cc0d", + "kind": "relation", + "name": "groups", + "public_id": "ReportGroupsReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Report" + } + }, + { + "id": "01992462-1666-71b1-9947-348a06b7cc0f", + "kind": "relation", + "name": "contains", + "public_id": "BIReportContainsBIDataModel", + "cardinality": { + "min": 0, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "BI Report", + "target_asset_type": "BI Data Model" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-100000000080", + "kind": "asset_type", + "name": "Qlik Server", + "public_id": "QlikServer", + "parent_name": "BI Server", + "attributes": [ + { + "id": "01992462-188c-7787-be85-0de2606e2f53", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01992462-188d-7bb0-9856-d9b7dfd62fa1", + "kind": "attribute", + "name": "URL", + "public_id": "Url", + "cardinality": { + "min": 1, + "max": null + } + } + ], + "relations": [ + { + "id": "01992462-188d-7bb0-9856-d9b7dfd62fa2", + "kind": "relation", + "name": "hosts", + "public_id": "ServerHostsBusinessDimension", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Server", + "target_asset_type": "Business Dimension" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-100000000083", + "kind": "asset_type", + "name": "Qlik Sheet", + "public_id": "QlikSheet", + "parent_name": "BI Report", + "attributes": [ + { + "id": "01992462-149c-7b6a-b2e5-0ad8bba72a80", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01992462-149d-7747-94db-c67473fd88dc", + "kind": "attribute", + "name": "Description from source system", + "public_id": "DescriptionFromSourceSystem", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "01992462-149d-7747-94db-c67473fd88dd", + "kind": "relation", + "name": "uses", + "public_id": "ReportUsesReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Report" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-100000000081", + "kind": "asset_type", + "name": "Qlik Space", + "public_id": "QlikSpace", + "parent_name": "BI Folder", + "attributes": [ + { + "id": "01992462-17a7-7c58-bddc-93e6f6e4991b", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01992462-17a7-7c58-bddc-93e6f6e4991c", + "kind": "attribute", + "name": "Description from source system", + "public_id": "DescriptionFromSourceSystem", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01992462-17a7-7c58-bddc-93e6f6e4991d", + "kind": "attribute", + "name": "Owner in Source", + "public_id": "OwnerInSource", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01992462-17a7-7c58-bddc-93e6f6e4991e", + "kind": "attribute", + "name": "Document creation date", + "public_id": "DocumentCreationDate", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01992462-17a7-7c58-bddc-93e6f6e4991f", + "kind": "attribute", + "name": "Document modification date", + "public_id": "DocumentModificationDate", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "01992462-17a7-7c58-bddc-93e6f6e49920", + "kind": "relation", + "name": "groups", + "public_id": "BusinessDimensionGroupsReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Dimension", + "target_asset_type": "Report" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-100000000085", + "kind": "asset_type", + "name": "Qlik Story", + "public_id": "QlikStory", + "parent_name": "BI Report", + "attributes": [ + { + "id": "01992462-1578-761c-82b8-3d9864dd833a", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01992462-1578-761c-82b8-3d9864dd833b", + "kind": "attribute", + "name": "Description from source system", + "public_id": "DescriptionFromSourceSystem", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01992462-1578-761c-82b8-3d9864dd833c", + "kind": "attribute", + "name": "Document creation date", + "public_id": "DocumentCreationDate", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "01992462-1579-73a4-bc82-201cfbffd6f6", + "kind": "relation", + "name": "uses", + "public_id": "ReportUsesReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Report" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-100000000084", + "kind": "asset_type", + "name": "Qlik Visualization", + "public_id": "QlikVisualization", + "parent_name": "BI Report", + "attributes": [ + { + "id": "01992462-1333-771a-a655-bc16d4a0fa26", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01992462-1333-771a-a655-bc16d4a0fa27", + "kind": "attribute", + "name": "Description from source system", + "public_id": "DescriptionFromSourceSystem", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "01992462-1333-771a-a655-bc16d4a0fa28", + "kind": "relation", + "name": "uses", + "public_id": "ReportUsesDataAttribute", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Data Attribute" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-090000010020", + "kind": "asset_type", + "name": "Record Score", + "public_id": "RecordScore", + "parent_name": "Data Quality Metric", + "attributes": [ + { + "id": "01922077-ccbd-79aa-83a8-c033b42346a8", + "kind": "attribute", + "name": "Rows Failed", + "public_id": "RowsFailed", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "01922077-ccbd-79aa-83a8-c033b42346a9", + "kind": "attribute", + "name": "Loaded Rows", + "public_id": "LoadedRows", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "01922077-ccbd-79aa-83a8-c033b42346aa", + "kind": "attribute", + "name": "Measurement", + "public_id": "Measurement", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "01922077-ccbd-79aa-83a8-c033b42346ab", + "kind": "attribute", + "name": "Passing Fraction", + "public_id": "PassingFraction", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "01922077-ccbd-79aa-83a8-c033b42346ac", + "kind": "attribute", + "name": "Score Details", + "public_id": "ScoreDetails", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "01922077-ccbd-79aa-83a8-c033b42346ad", + "kind": "attribute", + "name": "Score Status", + "public_id": "ScoreStatus", + "cardinality": { + "min": 1, + "max": 1 + } + } + ], + "relations": [ + { + "id": "01922077-d91e-70ab-8e34-5a30bad44ad5", + "kind": "relation", + "name": "executed by", + "public_id": "DataQualityRuleExecutedByDataQualityMetric", + "cardinality": { + "min": 1, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "Data Quality Rule", + "target_asset_type": "Data Quality Metric" + } + } + ] + }, + { + "id": "c0e00000-0000-0000-0000-000000039014", + "kind": "asset_type", + "name": "Regulation", + "public_id": "Regulation", + "parent_name": "Policy", + "attributes": [ + { + "id": "01922077-f981-78ba-8f10-ca8098b75d8d", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 1, + "max": null + } + } + ], + "relations": [ + { + "id": "01922077-f981-78ba-8f10-ca8098b75d8e", + "kind": "relation", + "name": "complies to", + "public_id": "AssetCompliesToGovernanceAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Asset", + "target_asset_type": "Governance Asset" + } + }, + { + "id": "01922077-f981-78ba-8f10-ca8098b75d8f", + "kind": "relation", + "name": "complies to", + "public_id": "AssetCompliesToGovernanceAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Asset", + "target_asset_type": "Governance Asset" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-000000031102", + "kind": "asset_type", + "name": "Report", + "public_id": "Report", + "parent_name": "Business Asset", + "attributes": [ + { + "id": "828108f0-a70b-43d9-b699-79271a24e2d2", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "34c87e09-e397-46e1-b947-3ff0e839a80a", + "kind": "attribute", + "name": "Definition", + "public_id": "Definition", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "0af409ad-a3fb-491b-b8e8-4088b33069e7", + "kind": "attribute", + "name": "Descriptive Example", + "public_id": "DescriptiveExample", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "537d5ef8-e634-4053-840c-e6d751f3575b", + "kind": "attribute", + "name": "Location", + "public_id": "Location", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "a1502891-4c9b-4aeb-afad-b78ac7816a98", + "kind": "attribute", + "name": "Abbreviation", + "public_id": "Abbreviation", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "135cb8f7-444b-4620-8830-30f979744a74", + "kind": "attribute", + "name": "Inclusion Scenario", + "public_id": "InclusionScenario", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "b58014d9-55cd-435e-8646-dd658082d6f4", + "kind": "attribute", + "name": "Scope", + "public_id": "Scope", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "9d9635b6-457d-45b3-855b-793020ed702b", + "kind": "attribute", + "name": "Frequency", + "public_id": "Frequency", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "04a2783c-c2c8-4491-9f63-8fca212d8adc", + "kind": "attribute", + "name": "Security Classification", + "public_id": "SecurityClassification", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "aa8e1bc8-259f-4881-bb71-8604648667ae", + "kind": "attribute", + "name": "Last Review Date", + "public_id": "LastReviewDate", + "cardinality": { + "min": 0, + "max": null + } + } + ], + "relations": [ + { + "id": "91b8769b-dad2-48f4-a299-cd9409724761", + "kind": "relation", + "name": "contained in", + "public_id": "ReportAttributeContainedInReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report Attribute", + "target_asset_type": "Report" + } + }, + { + "id": "3da8d1dd-5686-41c2-9fed-97e857c12495", + "kind": "relation", + "name": "groups", + "public_id": "BusinessAssetGroupsBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Asset", + "target_asset_type": "Business Asset" + } + }, + { + "id": "046b98ea-d263-438f-9416-1d116ca49580", + "kind": "relation", + "name": "groups", + "public_id": "BusinessAssetGroupsBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Asset", + "target_asset_type": "Business Asset" + } + }, + { + "id": "67ebc1d8-8e3f-414e-9332-2be57e952522", + "kind": "relation", + "name": "classifies", + "public_id": "BusinessDimensionClassifiesAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Dimension", + "target_asset_type": "Asset" + } + }, + { + "id": "e24a2552-08ef-42f6-a024-3357b6580f02", + "kind": "relation", + "name": "associates", + "public_id": "LineOfBusinessAssociatesBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Line of Business", + "target_asset_type": "Business Asset" + } + }, + { + "id": "50875096-175c-40d8-94ee-225cbfcd3f86", + "kind": "relation", + "name": "produces", + "public_id": "BusinessProcessProducesBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Process", + "target_asset_type": "Business Asset" + } + }, + { + "id": "a504144e-9c52-4e4b-8efb-b4bbda9dbaf2", + "kind": "relation", + "name": "impacts", + "public_id": "IssueImpactsAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Issue", + "target_asset_type": "Asset" + } + }, + { + "id": "019ccde7-c234-73db-8258-ce13962afb71", + "kind": "relation", + "name": "contains", + "public_id": "ReportContainsCriticalDataElement", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Critical Data Element" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-000000031027", + "kind": "asset_type", + "name": "Report Attribute", + "public_id": "ReportAttribute", + "parent_name": "Data Element", + "attributes": [ + { + "id": "24edb18f-286a-4a60-b876-ecc61c5237c3", + "kind": "attribute", + "name": "Definition", + "public_id": "Definition", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "1047dfb6-3418-4371-baaa-c1d91822c3a6", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "d094ce02-e2bb-4f86-9a7c-d9ba0fd439ad", + "kind": "attribute", + "name": "Location", + "public_id": "Location", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "1dc330e7-585e-4c86-b97a-4e04c1acf4a6", + "kind": "attribute", + "name": "Technical Data Type", + "public_id": "TechnicalDataType", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "22eaedf5-b920-49bd-bb16-f1ca23bdbbbc", + "kind": "attribute", + "name": "Data Type Precision", + "public_id": "DataTypePrecision", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "08e4cd3b-f470-44e2-8759-8a10cbc9c3b6", + "kind": "attribute", + "name": "Note", + "public_id": "Note", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "dec05053-8789-4937-b6cb-bbfc1f1e6eb3", + "kind": "attribute", + "name": "Inclusion Scenario", + "public_id": "InclusionScenario", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "ba3973e7-1053-4717-8c06-fa814a560815", + "kind": "attribute", + "name": "Scope", + "public_id": "Scope", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "18cde04b-6569-4431-b4f1-dca2ffaaaa35", + "kind": "attribute", + "name": "Frequency", + "public_id": "Frequency", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "5833a71c-8b62-4d64-a1d7-9f16a63a532c", + "kind": "attribute", + "name": "Security Classification", + "public_id": "SecurityClassification", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "32f5855a-49e9-4add-b33b-5a028a087069", + "kind": "attribute", + "name": "Last Review Date", + "public_id": "LastReviewDate", + "cardinality": { + "min": 0, + "max": null + } + } + ], + "relations": [ + { + "id": "99d4f4b3-8446-4578-8b66-9118927dce9a", + "kind": "relation", + "name": "contained in", + "public_id": "ReportAttributeContainedInReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report Attribute", + "target_asset_type": "Report" + } + }, + { + "id": "99db25ee-a73e-4f35-84ec-c538482a58af", + "kind": "relation", + "name": "classifies", + "public_id": "BusinessDimensionClassifiesAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Dimension", + "target_asset_type": "Asset" + } + }, + { + "id": "77e0ba25-bb28-4d93-9da5-3f669c9753a7", + "kind": "relation", + "name": "represents", + "public_id": "BusinessAssetRepresentsDataAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Asset", + "target_asset_type": "Data Asset" + } + }, + { + "id": "911d12b1-536e-4806-80bc-c6e500a900a7", + "kind": "relation", + "name": "impacts", + "public_id": "IssueImpactsAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Issue", + "target_asset_type": "Asset" + } + }, + { + "id": "cfa9e69a-2fff-4d21-ae0d-11c5e8d422f5", + "kind": "relation", + "name": "sourced from", + "public_id": "ReportAttributeSourcedFromDataAttribute", + "cardinality": { + "min": 1, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report Attribute", + "target_asset_type": "Data Attribute" + } + }, + { + "id": "968912c2-bf82-489d-8f4e-fe7d688ebaa0", + "kind": "relation", + "name": "qualifies", + "public_id": "BusinessQualifierQualifiesAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Qualifier", + "target_asset_type": "Asset" + } + } + ] + }, + { + "id": "c0e00000-0000-0000-0000-000000039035", + "kind": "asset_type", + "name": "Risk", + "public_id": "Risk", + "parent_name": "Governance Asset", + "attributes": [ + { + "id": "01922077-fa97-7111-a76b-4a41c37e3c9d", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "01922077-fa97-7111-a76b-4a41c37e3c9e", + "kind": "attribute", + "name": "Risk Categories", + "public_id": "RiskCategories", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "01922077-fa97-7111-a76b-4a41c37e3c9f", + "kind": "attribute", + "name": "Operational Impact", + "public_id": "OperationalImpact", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "01922077-fa97-7111-a76b-4a41c37e3ca2", + "kind": "attribute", + "name": "Inherent Likelihood", + "public_id": "InherentLikelihood", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "01922077-fa97-7111-a76b-4a41c37e3ca3", + "kind": "attribute", + "name": "Inherent Severity", + "public_id": "InherentSeverity", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "01922077-fa97-7111-a76b-4a41c37e3ca4", + "kind": "attribute", + "name": "Inherent Risk Level", + "public_id": "InherentRiskLevel", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "01922077-fa97-7111-a76b-4a41c37e3ca5", + "kind": "attribute", + "name": "Risk Treatment", + "public_id": "RiskTreatment", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "01922077-fa97-7111-a76b-4a41c37e3ca6", + "kind": "attribute", + "name": "Residual Likelihood", + "public_id": "ResidualLikelihood", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "01922077-fa97-7111-a76b-4a41c37e3ca7", + "kind": "attribute", + "name": "Residual Severity", + "public_id": "ResidualSeverity", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "01922077-fa97-7111-a76b-4a41c37e3ca8", + "kind": "attribute", + "name": "Residual Risk Level", + "public_id": "ResidualRiskLevel", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "01922077-fa98-7a66-b73f-a75e7e2f7463", + "kind": "attribute", + "name": "Note", + "public_id": "Note", + "cardinality": { + "min": 0, + "max": null + } + } + ], + "relations": [ + { + "id": "01922077-fa97-7111-a76b-4a41c37e3ca0", + "kind": "relation", + "name": "groups", + "public_id": "GovernanceAssetGroupsGovernanceAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Governance Asset", + "target_asset_type": "Governance Asset" + } + }, + { + "id": "01922077-fa97-7111-a76b-4a41c37e3ca1", + "kind": "relation", + "name": "groups", + "public_id": "GovernanceAssetGroupsGovernanceAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Governance Asset", + "target_asset_type": "Governance Asset" + } + }, + { + "id": "01922077-fa97-7111-a76b-4a41c37e3ca9", + "kind": "relation", + "name": "complies to", + "public_id": "AssetCompliesToGovernanceAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Asset", + "target_asset_type": "Governance Asset" + } + }, + { + "id": "01922077-fa97-7111-a76b-4a41c37e3caa", + "kind": "relation", + "name": "complies to", + "public_id": "AssetCompliesToGovernanceAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Asset", + "target_asset_type": "Governance Asset" + } + }, + { + "id": "01922077-fa98-7a66-b73f-a75e7e2f7462", + "kind": "relation", + "name": "impacts", + "public_id": "IssueImpactsAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Issue", + "target_asset_type": "Asset" + } + }, + { + "id": "01922077-fceb-7b3c-8739-ed0fe56f5d00", + "kind": "relation", + "name": "is potentially impacted by", + "public_id": "AssetIsPotentiallyImpactedByRisk", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Asset", + "target_asset_type": "Risk" + } + }, + { + "id": "01922077-fceb-7b3c-8739-ed0fe56f5d01", + "kind": "relation", + "name": "is potentially impacted by", + "public_id": "AssetIsPotentiallyImpactedByRisk", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Asset", + "target_asset_type": "Risk" + } + }, + { + "id": "01922077-fceb-7b3c-8739-ed0fe56f5d02", + "kind": "relation", + "name": "mitigates", + "public_id": "ControlMitigatesRisk", + "cardinality": { + "min": 1, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Control", + "target_asset_type": "Risk" + } + }, + { + "id": "019ccde7-c2e7-71c9-9e0a-ffa38d1df6cf", + "kind": "relation", + "name": "mitigates", + "public_id": "ManagedControlMitigatesRisk", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Managed Control", + "target_asset_type": "Risk" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-000000031203", + "kind": "asset_type", + "name": "Rule", + "public_id": "Rule", + "parent_name": "Governance Asset", + "attributes": [ + { + "id": "22496147-2a99-4adc-8531-e965be4c1723", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "7abe6715-7e13-4217-a8d2-d85607e3ff1e", + "kind": "attribute", + "name": "Purpose", + "public_id": "Purpose", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "118bf0b2-4711-4f09-87eb-edd4d936662c", + "kind": "attribute", + "name": "Exception Scenario", + "public_id": "ExceptionScenario", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "976bd887-effd-40b8-a975-88d84bf75cf2", + "kind": "attribute", + "name": "Measurement", + "public_id": "Measurement", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "1bfa4971-92ab-4eb5-b0a4-fdd427cbfb99", + "kind": "attribute", + "name": "Descriptive Example", + "public_id": "DescriptiveExample", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "ccce2080-7133-47dc-804f-5ba3ea94ec2b", + "kind": "attribute", + "name": "Inclusion Scenario", + "public_id": "InclusionScenario", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "1ffd0702-1c41-44df-9a9a-6af8ed36aaf5", + "kind": "attribute", + "name": "Effective Start Date", + "public_id": "EffectiveStartDate", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "bbccfeef-e65f-4fb4-86a0-da8248035437", + "kind": "attribute", + "name": "Effective End Date", + "public_id": "EffectiveEndDate", + "cardinality": { + "min": 0, + "max": null + } + } + ], + "relations": [ + { + "id": "0208e973-1fcf-424a-a1e9-95e75be7249e", + "kind": "relation", + "name": "complies to", + "public_id": "AssetCompliesToGovernanceAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Asset", + "target_asset_type": "Governance Asset" + } + }, + { + "id": "fb1a4164-431d-4a76-a109-00e3876a1e84", + "kind": "relation", + "name": "complies to", + "public_id": "AssetCompliesToGovernanceAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Asset", + "target_asset_type": "Governance Asset" + } + }, + { + "id": "f36dbe67-15be-4ea4-a28e-97612ed87b9a", + "kind": "relation", + "name": "groups", + "public_id": "GovernanceAssetGroupsGovernanceAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Governance Asset", + "target_asset_type": "Governance Asset" + } + }, + { + "id": "92759a93-b85a-4cdd-8fca-3ee93a5a38af", + "kind": "relation", + "name": "groups", + "public_id": "GovernanceAssetGroupsGovernanceAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Governance Asset", + "target_asset_type": "Governance Asset" + } + }, + { + "id": "91ed5ecf-1196-4f18-a564-8d84025aacc7", + "kind": "relation", + "name": "violated by", + "public_id": "GovernanceAssetViolatedByIssue", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Governance Asset", + "target_asset_type": "Issue" + } + }, + { + "id": "23aaf9b2-29ca-469d-a037-b6bf999dcd67", + "kind": "relation", + "name": "resolves", + "public_id": "GovernanceAssetResolvesIssue", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Governance Asset", + "target_asset_type": "Issue" + } + }, + { + "id": "5e515a93-0703-4988-b59c-35968e450f1f", + "kind": "relation", + "name": "impacts", + "public_id": "IssueImpactsAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Issue", + "target_asset_type": "Asset" + } + }, + { + "id": "019ccde7-c339-7195-9844-fe9960706a9f", + "kind": "relation", + "name": "is governed by", + "public_id": "RuleTargetIsGovernedByRule", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Rule Target", + "target_asset_type": "Rule" + } + } + ] + }, + { + "id": "00000000-0000-0000-0001-002400000001", + "kind": "asset_type", + "name": "S3 Bucket", + "public_id": "S3Bucket", + "parent_name": "Storage Container", + "attributes": [ + { + "id": "edb85db5-2fe5-4474-9a17-75bf85022c72", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "4a68dc0d-b0e0-4039-93fa-d89a91129989", + "kind": "attribute", + "name": "URL", + "public_id": "Url", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "d81c0e28-9dd0-4cc2-b43d-7c7e7a28745a", + "kind": "attribute", + "name": "Location", + "public_id": "Location", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "e1a156d7-8ab0-44bb-976b-8191ab1e3d19", + "kind": "relation", + "name": "contains", + "public_id": "FileContainerContainsFileContainer", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Storage Container", + "target_asset_type": "Storage Container" + } + }, + { + "id": "876407f3-4ab5-411a-85c8-cf710e30c014", + "kind": "relation", + "name": "contains", + "public_id": "FileContainerContainsFileContainer", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Storage Container", + "target_asset_type": "Storage Container" + } + }, + { + "id": "e44e1fb4-a4ce-4c43-800d-52bb825ad425", + "kind": "relation", + "name": "contains", + "public_id": "FileStorageContainsFileContainer", + "cardinality": { + "min": 0, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "File Storage", + "target_asset_type": "Storage Container" + } + } + ] + }, + { + "id": "00000000-0000-0000-0001-002400000000", + "kind": "asset_type", + "name": "S3 File System", + "public_id": "S3FileSystem", + "parent_name": "File Storage", + "attributes": [ + { + "id": "8edd4140-57cb-4e3d-ae1a-f6734d3b7f1f", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": null + } + } + ], + "relations": [ + { + "id": "d70cfaff-6649-443c-a18d-8c18dd0a5001", + "kind": "relation", + "name": "contains", + "public_id": "FileStorageContainsFileContainer", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "File Storage", + "target_asset_type": "Storage Container" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-100000000067", + "kind": "asset_type", + "name": "SAC Data Attribute", + "public_id": "SacDataAttribute", + "parent_name": "BI Data Attribute", + "attributes": [ + { + "id": "01922077-de6a-7821-918a-142a7e0bbcb8", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-de6a-7821-918a-142a7e0bbcb9", + "kind": "attribute", + "name": "Source Type", + "public_id": "SourceType", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-de6a-7821-918a-142a7e0bbcba", + "kind": "attribute", + "name": "Role in Report", + "public_id": "RoleInReport", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-de6a-7821-918a-142a7e0bbcbb", + "kind": "attribute", + "name": "Calculation Rule", + "public_id": "CalculationRule", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019436cb-48fa-77b7-bede-d1c17df8c74f", + "kind": "attribute", + "name": "Description from source system", + "public_id": "DescriptionFromSourceSystem", + "cardinality": { + "min": 0, + "max": null + } + } + ], + "relations": [ + { + "id": "01922077-e13f-78e4-85b7-e86eb918435f", + "kind": "relation", + "name": "contains", + "public_id": "DataEntityContainsDataAttribute", + "cardinality": { + "min": 0, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "Data Entity", + "target_asset_type": "Data Attribute" + } + }, + { + "id": "01922077-e13f-78e4-85b7-e86eb9184360", + "kind": "relation", + "name": "targets", + "public_id": "DataElementTargetsDataElement", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Element", + "target_asset_type": "Data Element" + } + }, + { + "id": "01922077-e13f-78e4-85b7-e86eb9184361", + "kind": "relation", + "name": "targets", + "public_id": "DataElementTargetsDataElement", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Element", + "target_asset_type": "Data Element" + } + }, + { + "id": "01922078-14a8-76d2-9930-5e2b5ed8c193", + "kind": "relation", + "name": "groups", + "public_id": "DataAssetGroupsDataAsset", + "cardinality": { + "min": 0, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "Data Asset", + "target_asset_type": "Data Asset" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-100000000066", + "kind": "asset_type", + "name": "SAC Data Entity", + "public_id": "SacDataEntity", + "parent_name": "BI Data Entity", + "attributes": [ + { + "id": "01922077-de33-77a2-9054-10d3233980ef", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-de33-77a2-9054-10d3233980f0", + "kind": "attribute", + "name": "Source Type", + "public_id": "SourceType", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "01922078-1468-7037-aade-cb3cf37dba63", + "kind": "attribute", + "name": "Description from source system", + "public_id": "DescriptionFromSourceSystem", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "01922077-e0ea-7945-8d43-23402812a0fc", + "kind": "relation", + "name": "is part of", + "public_id": "DataEntityIsPartOfDataModel", + "cardinality": { + "min": 1, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "Data Entity", + "target_asset_type": "Data Model" + } + }, + { + "id": "01922077-e0ea-7945-8d43-23402812a0fd", + "kind": "relation", + "name": "contains", + "public_id": "DataEntityContainsDataAttribute", + "cardinality": { + "min": 1, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Entity", + "target_asset_type": "Data Attribute" + } + }, + { + "id": "01922077-e0ea-7945-8d43-23402812a0fe", + "kind": "relation", + "name": "groups", + "public_id": "DataAssetGroupsDataAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Asset", + "target_asset_type": "Data Asset" + } + }, + { + "id": "01922077-e0ea-7945-8d43-23402812a0ff", + "kind": "relation", + "name": "groups", + "public_id": "DataAssetGroupsDataAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Asset", + "target_asset_type": "Data Asset" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-100000000065", + "kind": "asset_type", + "name": "SAC Data Model", + "public_id": "SacDataModel", + "parent_name": "BI Data Model", + "attributes": [ + { + "id": "01922077-ddfe-7af7-b045-727fc50e0ce7", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-ddff-7b0b-a73c-b3a429e1e188", + "kind": "attribute", + "name": "Source Type", + "public_id": "SourceType", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "01922078-147e-7932-82d1-8294d29d05a6", + "kind": "attribute", + "name": "Description from source system", + "public_id": "DescriptionFromSourceSystem", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "019436cb-4997-7396-a300-d082ca8b4575", + "kind": "attribute", + "name": "URL", + "public_id": "Url", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019436cb-4997-7396-a300-d082ca8b4576", + "kind": "attribute", + "name": "Document modification date", + "public_id": "DocumentModificationDate", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019436cb-4997-7396-a300-d082ca8b4577", + "kind": "attribute", + "name": "Document creation date", + "public_id": "DocumentCreationDate", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "01922077-e085-78c6-a9f5-e894f5454526", + "kind": "relation", + "name": "contains", + "public_id": "BIFolderContainsDataAsset", + "cardinality": { + "min": 1, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "BI Folder", + "target_asset_type": "Data Asset" + } + }, + { + "id": "01922077-e085-78c6-a9f5-e894f5454527", + "kind": "relation", + "name": "is source for", + "public_id": "DataAssetIsSourceForBIReport", + "cardinality": { + "min": 1, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Asset", + "target_asset_type": "BI Report" + } + }, + { + "id": "01922077-e085-78c6-a9f5-e894f5454528", + "kind": "relation", + "name": "is source for", + "public_id": "BIDataModelIsSourceForBIDataModel", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "BI Data Model", + "target_asset_type": "BI Data Model" + } + }, + { + "id": "01922077-e085-78c6-a9f5-e894f5454529", + "kind": "relation", + "name": "is source for", + "public_id": "BIDataModelIsSourceForBIDataModel", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "BI Data Model", + "target_asset_type": "BI Data Model" + } + }, + { + "id": "01922077-e085-78c6-a9f5-e894f545452a", + "kind": "relation", + "name": "is part of", + "public_id": "DataEntityIsPartOfDataModel", + "cardinality": { + "min": 1, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Entity", + "target_asset_type": "Data Model" + } + }, + { + "id": "01922078-153a-7a83-ac19-c75eeb290c1b", + "kind": "relation", + "name": "groups", + "public_id": "DataAssetGroupsDataAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Asset", + "target_asset_type": "Data Asset" + } + }, + { + "id": "01922078-153a-7a83-ac19-c75eeb290c1c", + "kind": "relation", + "name": "represents", + "public_id": "BusinessAssetRepresentsDataAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Asset", + "target_asset_type": "Data Asset" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-100000000062", + "kind": "asset_type", + "name": "SAC Folder", + "public_id": "SacFolder", + "parent_name": "BI Folder", + "attributes": [ + { + "id": "01922077-dd82-7620-a028-f91d04215d8a", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "01922077-df7e-7381-98d7-7ea51d56e09a", + "kind": "relation", + "name": "assembles", + "public_id": "FileContainerAssemblesBIFolder", + "cardinality": { + "min": 1, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Storage Container", + "target_asset_type": "BI Folder" + } + }, + { + "id": "01922077-df7e-7381-98d7-7ea51d56e09b", + "kind": "relation", + "name": "assembles", + "public_id": "BIFolderAssemblesBIFolder", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "BI Folder", + "target_asset_type": "BI Folder" + } + }, + { + "id": "01922077-df7e-7381-98d7-7ea51d56e09c", + "kind": "relation", + "name": "assembles", + "public_id": "BIFolderAssemblesBIFolder", + "cardinality": { + "min": 0, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "BI Folder", + "target_asset_type": "BI Folder" + } + }, + { + "id": "01922077-df7e-7381-98d7-7ea51d56e09d", + "kind": "relation", + "name": "groups", + "public_id": "BusinessDimensionGroupsReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Dimension", + "target_asset_type": "Report" + } + }, + { + "id": "01922077-df7e-7381-98d7-7ea51d56e09e", + "kind": "relation", + "name": "contains", + "public_id": "BIFolderContainsDataAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "BI Folder", + "target_asset_type": "Data Asset" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-100000000064", + "kind": "asset_type", + "name": "SAC Insight", + "public_id": "SacInsight", + "parent_name": "BI Report", + "attributes": [ + { + "id": "01922077-ddd5-757f-bfa1-c1eea3b1dc18", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "01922077-e03b-7943-ab3c-44eeb7e3eeb8", + "kind": "relation", + "name": "groups", + "public_id": "BusinessDimensionGroupsReport", + "cardinality": { + "min": 1, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Dimension", + "target_asset_type": "Report" + } + }, + { + "id": "01922077-e03b-7943-ab3c-44eeb7e3eeb9", + "kind": "relation", + "name": "uses", + "public_id": "ReportUsesReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Report" + } + }, + { + "id": "01922077-e03b-7943-ab3c-44eeb7e3eeba", + "kind": "relation", + "name": "is source for", + "public_id": "DataAssetIsSourceForBIReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Asset", + "target_asset_type": "BI Report" + } + }, + { + "id": "01957b35-d131-71ca-a51d-02726ff56e51", + "kind": "relation", + "name": "related to", + "public_id": "ReportRelatedToBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Business Asset" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-100000000063", + "kind": "asset_type", + "name": "SAC Story", + "public_id": "SacStory", + "parent_name": "BI Report", + "attributes": [ + { + "id": "01922077-ddaa-72be-b6f0-afdc2860e248", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922078-1494-7a0a-aee8-dac776b593af", + "kind": "attribute", + "name": "Description from source system", + "public_id": "DescriptionFromSourceSystem", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "019436cb-493d-755a-8851-75fbd8bc2e55", + "kind": "attribute", + "name": "URL", + "public_id": "Url", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019436cb-493d-755a-8851-75fbd8bc2e56", + "kind": "attribute", + "name": "Document modification date", + "public_id": "DocumentModificationDate", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019436cb-493d-755a-8851-75fbd8bc2e57", + "kind": "attribute", + "name": "Document creation date", + "public_id": "DocumentCreationDate", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "01922077-dff3-7d3b-86e1-9f9bea28233e", + "kind": "relation", + "name": "groups", + "public_id": "BusinessDimensionGroupsReport", + "cardinality": { + "min": 1, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Dimension", + "target_asset_type": "Report" + } + }, + { + "id": "01922077-dff3-7d3b-86e1-9f9bea28233f", + "kind": "relation", + "name": "uses", + "public_id": "ReportUsesReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Report" + } + }, + { + "id": "01922077-dff3-7d3b-86e1-9f9bea282340", + "kind": "relation", + "name": "is source for", + "public_id": "DataAssetIsSourceForBIReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Asset", + "target_asset_type": "BI Report" + } + }, + { + "id": "01957b35-d112-7877-978f-09c01bce31ee", + "kind": "relation", + "name": "related to", + "public_id": "ReportRelatedToBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Business Asset" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-000000031409", + "kind": "asset_type", + "name": "SAP AI Model Version", + "public_id": "SapAIModel", + "parent_name": "AI Model Version", + "attributes": [ + { + "id": "0192f26b-0173-7a3c-98ac-67a769b2988e", + "kind": "attribute", + "name": "URL", + "public_id": "Url", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0192f26b-0173-7a3c-98ac-67a769b2988f", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0192f26b-0173-7a3c-98ac-67a769b29890", + "kind": "attribute", + "name": "Document creation date", + "public_id": "DocumentCreationDate", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0192f26b-0173-7a3c-98ac-67a769b29891", + "kind": "attribute", + "name": "Document modification date", + "public_id": "DocumentModificationDate", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0199b495-e799-74fc-ba2c-2f5a6c0eac1e", + "kind": "attribute", + "name": "Required Content Filtering", + "public_id": "ContentFilter", + "cardinality": { + "min": 0, + "max": null + } + } + ], + "relations": [ + { + "id": "0192f26b-0173-7a3c-98ac-67a769b29892", + "kind": "relation", + "name": "uses", + "public_id": "AIUseCaseUsesAIModel", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "AI Use Case", + "target_asset_type": "AI Model Version" + } + }, + { + "id": "0192f26b-0173-7a3c-98ac-67a769b29893", + "kind": "relation", + "name": "trained by", + "public_id": "AIModelTrainedByAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "AI Model Version", + "target_asset_type": "Asset" + } + }, + { + "id": "0192f26b-0173-7a3c-98ac-67a769b29896", + "kind": "relation", + "name": "is provided by", + "public_id": "AIModelProvidedByVendor", + "cardinality": { + "min": 0, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "AI Model Version", + "target_asset_type": "Vendor" + } + }, + { + "id": "0192f26b-0173-7a3c-98ac-67a769b29897", + "kind": "relation", + "name": "complies to", + "public_id": "AssetCompliesToGovernanceAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Asset", + "target_asset_type": "Governance Asset" + } + }, + { + "id": "01992462-0ee5-7d48-9bbe-2521af4f9337", + "kind": "relation", + "name": "contains", + "public_id": "AIModelContainsFileContainer", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "AI Model Version", + "target_asset_type": "Storage Container" + } + }, + { + "id": "01992462-1ef5-7740-9bf7-bcc7ba6217a0", + "kind": "relation", + "name": "deploys", + "public_id": "AIProjectDeploysAIModel", + "cardinality": { + "min": 0, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "AI Project", + "target_asset_type": "AI Model Version" + } + }, + { + "id": "019ccde7-cdeb-721f-81bf-a97b198e7af5", + "kind": "relation", + "name": "has version", + "public_id": "ModelHasVersion", + "cardinality": { + "min": 0, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "AI Base Model", + "target_asset_type": "AI Model Version" + } + }, + { + "id": "019ccde7-cdeb-721f-81bf-a97b198e7af6", + "kind": "relation", + "name": "is deployed by", + "public_id": "ModelVersionIsDeployedByModelDeployment", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "AI Model Version", + "target_asset_type": "AI Model Deployment" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-100000000061", + "kind": "asset_type", + "name": "SAP Container", + "public_id": "SapContainer", + "parent_name": "Storage Container", + "attributes": [ + { + "id": "01922077-dd56-76e4-81d3-669ff91981e2", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "01922077-df4f-7c70-b72a-fb08cd4e2e9c", + "kind": "relation", + "name": "groups", + "public_id": "TechnologyAssetGroupsTechnologyAsset", + "cardinality": { + "min": 1, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "Technology Asset", + "target_asset_type": "Technology Asset" + } + }, + { + "id": "01922077-df4f-7c70-b72a-fb08cd4e2e9d", + "kind": "relation", + "name": "assembles", + "public_id": "FileContainerAssemblesBIFolder", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Storage Container", + "target_asset_type": "BI Folder" + } + }, + { + "id": "01922078-11c1-7906-814e-57949df3f328", + "kind": "relation", + "name": "contains", + "public_id": "FileContainerContainsFileContainer", + "cardinality": { + "min": 1, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Storage Container", + "target_asset_type": "Storage Container" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-100000000073", + "kind": "asset_type", + "name": "SAP Data Product", + "public_id": "SapDataProduct", + "parent_name": "Data Product", + "attributes": [ + { + "id": "0194c707-27e8-7cbe-98db-da958b97347a", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0194c707-27e8-7cbe-98db-da958b97347b", + "kind": "attribute", + "name": "Description from source system", + "public_id": "DescriptionFromSourceSystem", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0194c707-27e8-7cbe-98db-da958b97347c", + "kind": "attribute", + "name": "Business Case", + "public_id": "BusinessCase", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0194c707-27e8-7cbe-98db-da958b97347d", + "kind": "attribute", + "name": "Business Value", + "public_id": "BusinessValue", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0194c707-27e9-7f84-ab68-38815313fbb1", + "kind": "attribute", + "name": "Data Product Category", + "public_id": "DataProductCategory", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0194c707-27e9-7f84-ab68-38815313fbb2", + "kind": "attribute", + "name": "Target Delivery Date", + "public_id": "TargetDeliveryDate", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0194c707-27e9-7f84-ab68-38815313fbb3", + "kind": "attribute", + "name": "Industry", + "public_id": "Industry", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "0194c707-27e9-7f84-ab68-38815313fbb4", + "kind": "attribute", + "name": "SAP Application Compatibility", + "public_id": "SapApplicationCompatibility", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "0194c707-27e9-7f84-ab68-38815313fbb5", + "kind": "attribute", + "name": "Document creation date", + "public_id": "DocumentCreationDate", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "0194c707-27e9-7f84-ab68-38815313fbb8", + "kind": "relation", + "name": "provides", + "public_id": "ProviderOfDataProduct", + "cardinality": { + "min": 0, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "Vendor", + "target_asset_type": "Data Product" + } + }, + { + "id": "0194c707-2dcb-7fa1-9cd5-5ad007df3a7c", + "kind": "relation", + "name": "exposes data as", + "public_id": "DataProductHasOutputPort", + "cardinality": { + "min": 1, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Product", + "target_asset_type": "Data Product Port" + } + }, + { + "id": "0194c707-2dcb-7fa1-9cd5-5ad007df3a7d", + "kind": "relation", + "name": "is input port for", + "public_id": "InputPortForDataProduct", + "cardinality": { + "min": 0, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "Data Product Port", + "target_asset_type": "Data Product" + } + }, + { + "id": "01957b35-c2f7-73e7-966d-0360891eb178", + "kind": "relation", + "name": "exposes", + "public_id": "DataProductExposesDataCategory", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Product", + "target_asset_type": "Data Category" + } + }, + { + "id": "01974f91-b713-7991-8078-33bde5b8861a", + "kind": "relation", + "name": "belongs to", + "public_id": "SapDataProductBelongsToSapDatasphereSpace", + "cardinality": { + "min": 0, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "SAP Data Product", + "target_asset_type": "SAP Datasphere Space" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-100000000069", + "kind": "asset_type", + "name": "SAP Datasphere Analytic Model", + "public_id": "SapDatasphereAnalyticModel", + "parent_name": "Transformation Model", + "attributes": [ + { + "id": "01922078-1094-7c6a-a29b-c883eedacdf2", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922078-1094-7c6a-a29b-c883eedacdf3", + "kind": "attribute", + "name": "Description from source system", + "public_id": "DescriptionFromSourceSystem", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "019c195a-9895-7381-87b1-0f1ebd670ba3", + "kind": "attribute", + "name": "Business Name", + "public_id": "BusinessName", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "01922078-1094-7c6a-a29b-c883eedacdf4", + "kind": "attribute", + "name": "Owner in Source", + "public_id": "OwnerInSource", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922078-1094-7c6a-a29b-c883eedacdf5", + "kind": "attribute", + "name": "Document modification date", + "public_id": "DocumentModificationDate", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922078-1094-7c6a-a29b-c883eedacdf6", + "kind": "attribute", + "name": "Document creation date", + "public_id": "DocumentCreationDate", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "01922078-1200-7656-8c1d-5dd5242715f4", + "kind": "relation", + "name": "contains", + "public_id": "SapDatasphereSpaceContainsDataAsset", + "cardinality": { + "min": 1, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "SAP Datasphere Space", + "target_asset_type": "Data Asset" + } + }, + { + "id": "01922078-1200-7656-8c1d-5dd5242715f5", + "kind": "relation", + "name": "represents", + "public_id": "BusinessAssetRepresentsDataAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Asset", + "target_asset_type": "Data Asset" + } + }, + { + "id": "01922078-1200-7656-8c1d-5dd5242715f6", + "kind": "relation", + "name": "is target of", + "public_id": "DataModelContainsTable", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Model", + "target_asset_type": "Table" + } + }, + { + "id": "01957b35-c896-78f9-a360-e2e898d16a5d", + "kind": "relation", + "name": "groups", + "public_id": "DataAssetGroupsDataAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Asset", + "target_asset_type": "Data Asset" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-100000000074", + "kind": "asset_type", + "name": "SAP Datasphere Data Attribute", + "public_id": "SapDataSphereDataAttribute", + "parent_name": "Data Attribute", + "attributes": [ + { + "id": "01957b35-c434-7308-bb69-2a62bdf153c6", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01957b35-c434-7308-bb69-2a62bdf153c7", + "kind": "attribute", + "name": "Description from source system", + "public_id": "DescriptionFromSourceSystem", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019c195a-987c-76a3-9ef6-89f9c1ad493e", + "kind": "attribute", + "name": "Business Name", + "public_id": "BusinessName", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "01957b35-c434-7308-bb69-2a62bdf153c8", + "kind": "attribute", + "name": "Source Type", + "public_id": "SourceType", + "cardinality": { + "min": 1, + "max": 1 + } + } + ], + "relations": [ + { + "id": "01957b35-c434-7308-bb69-2a62bdf153c9", + "kind": "relation", + "name": "targets", + "public_id": "DataElementTargetsDataElement", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Element", + "target_asset_type": "Data Element" + } + }, + { + "id": "01957b35-c434-7308-bb69-2a62bdf153ca", + "kind": "relation", + "name": "targets", + "public_id": "DataElementTargetsDataElement", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Element", + "target_asset_type": "Data Element" + } + }, + { + "id": "01957b35-ca85-741a-80cd-68cd3d5ec3a0", + "kind": "relation", + "name": "groups", + "public_id": "DataAssetGroupsDataAsset", + "cardinality": { + "min": 1, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "Data Asset", + "target_asset_type": "Data Asset" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-100000000072", + "kind": "asset_type", + "name": "SAP Datasphere Intelligent Lookup", + "public_id": "SapDatasphereIntelligentLookup", + "parent_name": "Transformation Model", + "attributes": [ + { + "id": "01922078-114a-7576-8554-03adc3c07b6e", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922078-114b-70df-a48d-ee95ade1a993", + "kind": "attribute", + "name": "Description from source system", + "public_id": "DescriptionFromSourceSystem", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "019c195a-98be-73a3-8425-d40aefba6b22", + "kind": "attribute", + "name": "Business Name", + "public_id": "BusinessName", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "01922078-114b-70df-a48d-ee95ade1a994", + "kind": "attribute", + "name": "Owner in Source", + "public_id": "OwnerInSource", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922078-114b-70df-a48d-ee95ade1a995", + "kind": "attribute", + "name": "Document modification date", + "public_id": "DocumentModificationDate", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922078-114b-70df-a48d-ee95ade1a996", + "kind": "attribute", + "name": "Document creation date", + "public_id": "DocumentCreationDate", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "01922078-130e-7805-abb3-47e2366be9c9", + "kind": "relation", + "name": "represents", + "public_id": "BusinessAssetRepresentsDataAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Asset", + "target_asset_type": "Data Asset" + } + }, + { + "id": "01922078-130e-7805-abb3-47e2366be9ca", + "kind": "relation", + "name": "contains", + "public_id": "SapDatasphereSpaceContainsDataAsset", + "cardinality": { + "min": 1, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "SAP Datasphere Space", + "target_asset_type": "Data Asset" + } + }, + { + "id": "01922078-130e-7805-abb3-47e2366be9cb", + "kind": "relation", + "name": "is target of", + "public_id": "DataModelContainsTable", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Model", + "target_asset_type": "Table" + } + }, + { + "id": "01957b35-c8f1-770e-9ab4-87275a541583", + "kind": "relation", + "name": "groups", + "public_id": "DataAssetGroupsDataAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Asset", + "target_asset_type": "Data Asset" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-100000000071", + "kind": "asset_type", + "name": "SAP Datasphere Perspective", + "public_id": "SapDataspherePerspective", + "parent_name": "Transformation Model", + "attributes": [ + { + "id": "01922078-10f4-7bf4-a512-85620537504a", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922078-10f4-7bf4-a512-85620537504b", + "kind": "attribute", + "name": "Description from source system", + "public_id": "DescriptionFromSourceSystem", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "019c195a-98ab-703b-85f5-adb1ee1d87dc", + "kind": "attribute", + "name": "Business Name", + "public_id": "BusinessName", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "01922078-10f4-7bf4-a512-85620537504c", + "kind": "attribute", + "name": "Owner in Source", + "public_id": "OwnerInSource", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922078-10f4-7bf4-a512-85620537504d", + "kind": "attribute", + "name": "Document modification date", + "public_id": "DocumentModificationDate", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922078-10f4-7bf4-a512-85620537504e", + "kind": "attribute", + "name": "Document creation date", + "public_id": "DocumentCreationDate", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "01922078-12c1-73ab-9d7e-29c168badd7c", + "kind": "relation", + "name": "represents", + "public_id": "BusinessAssetRepresentsDataAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Asset", + "target_asset_type": "Data Asset" + } + }, + { + "id": "01922078-12c1-73ab-9d7e-29c168badd7d", + "kind": "relation", + "name": "contains", + "public_id": "SapDatasphereSpaceContainsDataAsset", + "cardinality": { + "min": 1, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "SAP Datasphere Space", + "target_asset_type": "Data Asset" + } + }, + { + "id": "01922078-12c1-73ab-9d7e-29c168badd7e", + "kind": "relation", + "name": "is target of", + "public_id": "DataModelContainsTable", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Model", + "target_asset_type": "Table" + } + }, + { + "id": "01922078-12c1-73ab-9d7e-29c168badd7f", + "kind": "relation", + "name": "is source for", + "public_id": "DataAssetIsSourceForBIReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Asset", + "target_asset_type": "BI Report" + } + }, + { + "id": "01957b35-c91a-7133-9a25-adbc9c63e373", + "kind": "relation", + "name": "groups", + "public_id": "DataAssetGroupsDataAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Asset", + "target_asset_type": "Data Asset" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-100000000068", + "kind": "asset_type", + "name": "SAP Datasphere Space", + "public_id": "SapDatasphereSpace", + "parent_name": "Storage Container", + "attributes": [ + { + "id": "01922078-1064-7cc6-ae68-e7a1cb066979", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "01922078-11d2-7371-b2ae-65b8e35a19a0", + "kind": "relation", + "name": "contains", + "public_id": "FileContainerContainsFileContainer", + "cardinality": { + "min": 1, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "Storage Container", + "target_asset_type": "Storage Container" + } + }, + { + "id": "01922078-11d2-7371-b2ae-65b8e35a19a1", + "kind": "relation", + "name": "contains", + "public_id": "FileContainerContainsFileContainer", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Storage Container", + "target_asset_type": "Storage Container" + } + }, + { + "id": "01922078-11d2-7371-b2ae-65b8e35a19a2", + "kind": "relation", + "name": "contains", + "public_id": "SapDatasphereSpaceContainsDataAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "SAP Datasphere Space", + "target_asset_type": "Data Asset" + } + }, + { + "id": "01922078-13e4-7d2d-93c1-fc173b6875ed", + "kind": "relation", + "name": "groups", + "public_id": "TechnologyAssetGroupsTechnologyAsset", + "cardinality": { + "min": 0, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "Technology Asset", + "target_asset_type": "Technology Asset" + } + }, + { + "id": "01974f91-b75a-78c6-a713-3f1e9fd26c50", + "kind": "relation", + "name": "belongs to", + "public_id": "SapDataProductBelongsToSapDatasphereSpace", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "SAP Data Product", + "target_asset_type": "SAP Datasphere Space" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-100000000060", + "kind": "asset_type", + "name": "SAP Tenant", + "public_id": "SapTenant", + "parent_name": "Server", + "attributes": [ + { + "id": "01922077-dd20-74c0-8eaa-f9119a599ee9", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922078-119b-7929-b58d-8454757f1c08", + "kind": "attribute", + "name": "SAP System Type", + "public_id": "SapSystemType", + "cardinality": { + "min": 1, + "max": 1 + } + } + ], + "relations": [ + { + "id": "01922077-df2f-7a25-8bfd-09752949e2f3", + "kind": "relation", + "name": "groups", + "public_id": "TechnologyAssetGroupsTechnologyAsset", + "cardinality": { + "min": 1, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Technology Asset", + "target_asset_type": "Technology Asset" + } + }, + { + "id": "01922078-1564-72a7-990d-9e91f57813b9", + "kind": "relation", + "name": "source system for", + "public_id": "TechnologyAssetSourceSystemForBusinessTerm", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Technology Asset", + "target_asset_type": "Business Term" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-100000000029", + "kind": "asset_type", + "name": "SSRS Column", + "public_id": "SsrsColumn", + "parent_name": "Power BI Column", + "attributes": [ + { + "id": "019c85f6-9d0e-7595-b110-61dc853b3eef", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "019c85f6-9d0e-7595-b110-61dc853b3ef0", + "kind": "attribute", + "name": "Technical Data Type", + "public_id": "TechnicalDataType", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019c85f6-9d0e-7595-b110-61dc853b3ef6", + "kind": "attribute", + "name": "Calculation Rule", + "public_id": "CalculationRule", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019c85f6-9d0e-7595-b110-61dc853b3ef7", + "kind": "attribute", + "name": "Role in Report", + "public_id": "RoleInReport", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019c85f6-9d0e-7595-b110-61dc853b3ef8", + "kind": "attribute", + "name": "Visible on server", + "public_id": "VisibleOnServer", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "019c85f6-9d0e-7595-b110-61dc853b3ef1", + "kind": "relation", + "name": "is source for", + "public_id": "ColumnIsSourceForDataAttribute", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Column", + "target_asset_type": "Data Attribute" + } + }, + { + "id": "019c85f6-9d0e-7595-b110-61dc853b3ef2", + "kind": "relation", + "name": "targets", + "public_id": "DataElementTargetsDataElement", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Element", + "target_asset_type": "Data Element" + } + }, + { + "id": "019c85f6-9d0e-7595-b110-61dc853b3ef3", + "kind": "relation", + "name": "targets", + "public_id": "DataElementTargetsDataElement", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Element", + "target_asset_type": "Data Element" + } + }, + { + "id": "019c85f6-9d0e-7595-b110-61dc853b3ef4", + "kind": "relation", + "name": "contains", + "public_id": "BIDataModelContainsBIDataAttribute", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "BI Data Model", + "target_asset_type": "BI Data Attribute" + } + }, + { + "id": "019c85f6-9d0e-7595-b110-61dc853b3ef5", + "kind": "relation", + "name": "contains", + "public_id": "DataEntityContainsDataAttribute", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Entity", + "target_asset_type": "Data Attribute" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-100000000028", + "kind": "asset_type", + "name": "SSRS Data Model", + "public_id": "SsrsDataModel", + "parent_name": "Power BI Data Model", + "attributes": [ + { + "id": "019c85f6-a038-7400-adac-04b7fb8afb3f", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "019c85f6-a038-7400-adac-04b7fb8afb40", + "kind": "attribute", + "name": "Certified", + "public_id": "Certified", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "019c85f6-a038-7400-adac-04b7fb8afb45", + "kind": "attribute", + "name": "URL", + "public_id": "Url", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019c85f6-a038-7400-adac-04b7fb8afb46", + "kind": "attribute", + "name": "Document creation date", + "public_id": "DocumentCreationDate", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019c85f6-a038-7400-adac-04b7fb8afb47", + "kind": "attribute", + "name": "Document modification date", + "public_id": "DocumentModificationDate", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019c85f6-a038-7400-adac-04b7fb8afb48", + "kind": "attribute", + "name": "Document size", + "public_id": "DocumentSize", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019c85f6-a038-7400-adac-04b7fb8afb49", + "kind": "attribute", + "name": "Visible on server", + "public_id": "VisibleOnServer", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019c85f6-a038-7400-adac-04b7fb8afb4a", + "kind": "attribute", + "name": "Location", + "public_id": "Location", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019c85f6-a039-7771-b17a-14fa79813815", + "kind": "attribute", + "name": "Owner in Source", + "public_id": "OwnerInSource", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019c85f6-a039-7771-b17a-14fa79813817", + "kind": "attribute", + "name": "Description from source system", + "public_id": "DescriptionFromSourceSystem", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019c85f6-a039-7771-b17a-14fa79813818", + "kind": "attribute", + "name": "Creation Date in Source", + "public_id": "CreationDateInSource", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019c85f6-a039-7771-b17a-14fa79813819", + "kind": "attribute", + "name": "Modification Date in Source", + "public_id": "ModificationDateInSource", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "019c85f6-a038-7400-adac-04b7fb8afb41", + "kind": "relation", + "name": "is source for", + "public_id": "DataAssetIsSourceForBIReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Asset", + "target_asset_type": "BI Report" + } + }, + { + "id": "019c85f6-a038-7400-adac-04b7fb8afb42", + "kind": "relation", + "name": "contains", + "public_id": "BIFolderContainsDataAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "BI Folder", + "target_asset_type": "Data Asset" + } + }, + { + "id": "019c85f6-a038-7400-adac-04b7fb8afb43", + "kind": "relation", + "name": "is part of", + "public_id": "DataEntityIsPartOfDataModel", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Entity", + "target_asset_type": "Data Model" + } + }, + { + "id": "019c85f6-a038-7400-adac-04b7fb8afb44", + "kind": "relation", + "name": "contains", + "public_id": "BIDataModelContainsBIDataAttribute", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "BI Data Model", + "target_asset_type": "BI Data Attribute" + } + }, + { + "id": "019c85f6-a039-7771-b17a-14fa79813814", + "kind": "relation", + "name": "source system for", + "public_id": "TechnologyAssetSourceSystemForDataAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Technology Asset", + "target_asset_type": "Data Asset" + } + }, + { + "id": "019c85f6-a039-7771-b17a-14fa79813816", + "kind": "relation", + "name": "is source for", + "public_id": "BIDataModelIsSourceForBIDataModel", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "BI Data Model", + "target_asset_type": "BI Data Model" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-100000000024", + "kind": "asset_type", + "name": "SSRS Folder", + "public_id": "SsrsFolder", + "parent_name": "Power BI Folder", + "attributes": [ + { + "id": "019c85f6-a47d-753b-8cfc-888d3854181f", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "019c85f6-a47d-753b-8cfc-888d38541820", + "kind": "attribute", + "name": "URL", + "public_id": "Url", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019c85f6-a47d-753b-8cfc-888d38541821", + "kind": "attribute", + "name": "Document creation date", + "public_id": "DocumentCreationDate", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019c85f6-a47d-753b-8cfc-888d38541822", + "kind": "attribute", + "name": "Document modification date", + "public_id": "DocumentModificationDate", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019c85f6-a47d-753b-8cfc-888d38541823", + "kind": "attribute", + "name": "Visible on server", + "public_id": "VisibleOnServer", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019c85f6-a47d-753b-8cfc-888d38541824", + "kind": "attribute", + "name": "Location", + "public_id": "Location", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "019c85f6-a47d-753b-8cfc-888d38541825", + "kind": "relation", + "name": "assembles", + "public_id": "BIFolderAssemblesBIFolder", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "BI Folder", + "target_asset_type": "BI Folder" + } + }, + { + "id": "019c85f6-a47d-753b-8cfc-888d38541826", + "kind": "relation", + "name": "assembles", + "public_id": "BIFolderAssemblesBIFolder", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "BI Folder", + "target_asset_type": "BI Folder" + } + }, + { + "id": "019c85f6-a47d-753b-8cfc-888d38541827", + "kind": "relation", + "name": "groups", + "public_id": "BusinessDimensionGroupsReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Dimension", + "target_asset_type": "Report" + } + }, + { + "id": "019c85f6-a47d-753b-8cfc-888d38541828", + "kind": "relation", + "name": "contains", + "public_id": "BIFolderContainsDataAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "BI Folder", + "target_asset_type": "Data Asset" + } + }, + { + "id": "019c85f6-a47d-753b-8cfc-888d38541829", + "kind": "relation", + "name": "hosts", + "public_id": "ServerHostsBusinessDimension", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Server", + "target_asset_type": "Business Dimension" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-100000000026", + "kind": "asset_type", + "name": "SSRS KPI", + "public_id": "SsrsKpi", + "parent_name": "BI Report", + "attributes": [ + { + "id": "0b781920-9ab2-42a4-a0db-cc968bbb3909", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "25810a89-fe72-4aec-ae51-31eab4fe3f59", + "kind": "attribute", + "name": "Certified", + "public_id": "Certified", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "7e20c7de-9bb4-463c-a5f4-534998fb8bca", + "kind": "attribute", + "name": "URL", + "public_id": "Url", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "c4cc8e37-c620-4454-a1f7-3c6e4edeffba", + "kind": "attribute", + "name": "Document creation date", + "public_id": "DocumentCreationDate", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "8d2050a3-76af-4736-8ffb-15ca32433255", + "kind": "attribute", + "name": "Document modification date", + "public_id": "DocumentModificationDate", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "f0f14bad-4910-4fae-9d76-5d3bf0400c28", + "kind": "attribute", + "name": "Document size", + "public_id": "DocumentSize", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "aa2c7a79-7efc-4e58-a89e-a1f44dd350d3", + "kind": "attribute", + "name": "Visible on server", + "public_id": "VisibleOnServer", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "ac57c6dd-3f58-4393-8bc1-be49a7afb2af", + "kind": "attribute", + "name": "Location", + "public_id": "Location", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "94175a4d-c361-4cca-a832-e2ff1f318e21", + "kind": "relation", + "name": "contained in", + "public_id": "ReportAttributeContainedInReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report Attribute", + "target_asset_type": "Report" + } + }, + { + "id": "ea0ed668-ac6f-491b-942e-78fb9669c4c5", + "kind": "relation", + "name": "related to", + "public_id": "ReportRelatedToBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Business Asset" + } + }, + { + "id": "d70af214-9424-4ba6-a647-f89b63755471", + "kind": "relation", + "name": "related to", + "public_id": "ReportRelatedToBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Business Asset" + } + }, + { + "id": "69c19883-92dd-4f73-ad6d-c8d6b54929d2", + "kind": "relation", + "name": "is source for", + "public_id": "DataAssetIsSourceForBIReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Asset", + "target_asset_type": "BI Report" + } + }, + { + "id": "99bd41aa-9632-4866-b037-8903926f069f", + "kind": "relation", + "name": "groups", + "public_id": "BusinessDimensionGroupsReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Dimension", + "target_asset_type": "Report" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-100000000027", + "kind": "asset_type", + "name": "SSRS Parameter", + "public_id": "SsrsParameter", + "parent_name": "BI Report Attribute", + "attributes": [ + { + "id": "82a696b4-c0c7-4191-bcd6-38753f3e49c3", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": null + } + } + ], + "relations": [ + { + "id": "e61a8e40-8835-4771-9308-d0577852f1b5", + "kind": "relation", + "name": "contained in", + "public_id": "ReportAttributeContainedInReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report Attribute", + "target_asset_type": "Report" + } + }, + { + "id": "90daa5a2-7a23-4e49-8389-04d51839a84c", + "kind": "relation", + "name": "represents", + "public_id": "BusinessAssetRepresentsDataAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Asset", + "target_asset_type": "Data Asset" + } + }, + { + "id": "6961094f-a928-460d-bece-f136d96c5c28", + "kind": "relation", + "name": "sourced from", + "public_id": "ReportAttributeSourcedFromDataAttribute", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report Attribute", + "target_asset_type": "Data Attribute" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-100000000025", + "kind": "asset_type", + "name": "SSRS Report", + "public_id": "SsrsReport", + "parent_name": "Power BI Report", + "attributes": [ + { + "id": "019c85f6-a781-7316-8e8f-ab1f17fe555a", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "019c85f6-a781-7316-8e8f-ab1f17fe555b", + "kind": "attribute", + "name": "Certified", + "public_id": "Certified", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019c85f6-a781-7316-8e8f-ab1f17fe555c", + "kind": "attribute", + "name": "URL", + "public_id": "Url", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019c85f6-a781-7316-8e8f-ab1f17fe5563", + "kind": "attribute", + "name": "Document creation date", + "public_id": "DocumentCreationDate", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019c85f6-a781-7316-8e8f-ab1f17fe5564", + "kind": "attribute", + "name": "Document modification date", + "public_id": "DocumentModificationDate", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019c85f6-a781-7316-8e8f-ab1f17fe5565", + "kind": "attribute", + "name": "Document size", + "public_id": "DocumentSize", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019c85f6-a781-7316-8e8f-ab1f17fe5566", + "kind": "attribute", + "name": "Visible on server", + "public_id": "VisibleOnServer", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019c85f6-a781-7316-8e8f-ab1f17fe5567", + "kind": "attribute", + "name": "Location", + "public_id": "Location", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019c85f6-a781-7316-8e8f-ab1f17fe5568", + "kind": "attribute", + "name": "Source Type", + "public_id": "SourceType", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "019c85f6-a781-7316-8e8f-ab1f17fe5569", + "kind": "attribute", + "name": "Description from source system", + "public_id": "DescriptionFromSourceSystem", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019c85f6-a781-7316-8e8f-ab1f17fe556a", + "kind": "attribute", + "name": "Creation Date in Source", + "public_id": "CreationDateInSource", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019c85f6-a781-7316-8e8f-ab1f17fe556b", + "kind": "attribute", + "name": "Modification Date in Source", + "public_id": "ModificationDateInSource", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019c85f6-a781-7316-8e8f-ab1f17fe556c", + "kind": "attribute", + "name": "Owner in Source", + "public_id": "OwnerInSource", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "019c85f6-a781-7316-8e8f-ab1f17fe555d", + "kind": "relation", + "name": "groups", + "public_id": "BusinessDimensionGroupsReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Dimension", + "target_asset_type": "Report" + } + }, + { + "id": "019c85f6-a781-7316-8e8f-ab1f17fe555e", + "kind": "relation", + "name": "uses", + "public_id": "ReportUsesReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Report" + } + }, + { + "id": "019c85f6-a781-7316-8e8f-ab1f17fe555f", + "kind": "relation", + "name": "uses", + "public_id": "ReportUsesReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Report" + } + }, + { + "id": "019c85f6-a781-7316-8e8f-ab1f17fe5560", + "kind": "relation", + "name": "related to", + "public_id": "ReportRelatedToBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Business Asset" + } + }, + { + "id": "019c85f6-a781-7316-8e8f-ab1f17fe5561", + "kind": "relation", + "name": "related to", + "public_id": "ReportRelatedToBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Business Asset" + } + }, + { + "id": "019c85f6-a781-7316-8e8f-ab1f17fe5562", + "kind": "relation", + "name": "is source for", + "public_id": "DataAssetIsSourceForBIReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Asset", + "target_asset_type": "BI Report" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-100000000023", + "kind": "asset_type", + "name": "SSRS Server", + "public_id": "SsrsServer", + "parent_name": "BI Server", + "attributes": [ + { + "id": "536c2aed-1d93-497f-98d1-4e1ee863b07a", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": null + } + } + ], + "relations": [ + { + "id": "073d4e87-ef35-42b2-a161-3cbb7bfeeb64", + "kind": "relation", + "name": "hosts", + "public_id": "ServerHostsBusinessDimension", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Server", + "target_asset_type": "Business Dimension" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-100000000030", + "kind": "asset_type", + "name": "SSRS Table", + "public_id": "SsrsTable", + "parent_name": "Power BI Table", + "attributes": [ + { + "id": "019c85f6-ab34-71b9-b81d-406ae94abeda", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "019c85f6-ab34-71b9-b81d-406ae94abedd", + "kind": "attribute", + "name": "Calculation Rule", + "public_id": "CalculationRule", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019c85f6-ab34-71b9-b81d-406ae94abede", + "kind": "attribute", + "name": "Visible on server", + "public_id": "VisibleOnServer", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019c85f6-ab34-71b9-b81d-406ae94abedf", + "kind": "attribute", + "name": "Description from source system", + "public_id": "DescriptionFromSourceSystem", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019c85f6-ab34-71b9-b81d-406ae94abee0", + "kind": "attribute", + "name": "Creation Date in Source", + "public_id": "CreationDateInSource", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019c85f6-ab34-71b9-b81d-406ae94abee1", + "kind": "attribute", + "name": "Modification Date in Source", + "public_id": "ModificationDateInSource", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "019c85f6-ab34-71b9-b81d-406ae94abedb", + "kind": "relation", + "name": "is part of", + "public_id": "DataEntityIsPartOfDataModel", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Entity", + "target_asset_type": "Data Model" + } + }, + { + "id": "019c85f6-ab34-71b9-b81d-406ae94abedc", + "kind": "relation", + "name": "contains", + "public_id": "DataEntityContainsDataAttribute", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Entity", + "target_asset_type": "Data Attribute" + } + } + ] + }, + { + "id": "00000000-0000-0000-0001-000400000002", + "kind": "asset_type", + "name": "Schema", + "public_id": "Schema", + "parent_name": "Data Structure", + "attributes": [ + { + "id": "755cce1c-c987-43a9-92db-031713f7e3dd", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "c11a37ac-cc3d-455e-bcd3-bb860f81a602", + "kind": "attribute", + "name": "Synchronization Status", + "public_id": "SynchronizationStatus", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "631b0ba4-0e63-4786-b9a1-dfe5e8193d39", + "kind": "attribute", + "name": "Data Source Type", + "public_id": "DataSourceType", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "f7262f6d-4463-40c1-9938-17bef76e27ad", + "kind": "attribute", + "name": "Empty values definition override", + "public_id": "EmptyValuesDefinitionOverride", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "4da0be9a-778b-4c96-9f77-53fcc7e9ab9e", + "kind": "attribute", + "name": "File Location", + "public_id": "FileLocation", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-bbf7-74b9-8008-2eb8120372a5", + "kind": "attribute", + "name": "Source Tags", + "public_id": "SourceTags", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "01922077-daf1-75b0-9980-b8f09562e13e", + "kind": "attribute", + "name": "Description from source system", + "public_id": "DescriptionFromSourceSystem", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-ef82-7258-9677-47c7226427dc", + "kind": "attribute", + "name": "Owner in Source", + "public_id": "OwnerInSource", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922078-0d3e-7323-bef3-48d16e0c8f4d", + "kind": "attribute", + "name": "URL", + "public_id": "Url", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "7671613b-6b09-4191-b7dd-5194832f6476", + "kind": "relation", + "name": "contains", + "public_id": "SchemaContainsTable", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Schema", + "target_asset_type": "Table" + } + }, + { + "id": "b3cd0d34-99fa-479f-b31a-b9719e2688ba", + "kind": "relation", + "name": "impacts", + "public_id": "IssueImpactsAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Issue", + "target_asset_type": "Asset" + } + }, + { + "id": "d6fc60d5-adab-4fef-84ac-b2f028e21523", + "kind": "relation", + "name": "source of", + "public_id": "DataStructureSourceOfMappingSpecification", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Structure", + "target_asset_type": "Mapping Specification" + } + }, + { + "id": "76acd64a-c5db-41f9-a0f2-139375808628", + "kind": "relation", + "name": "target of", + "public_id": "DataStructureTargetOfMappingSpecification", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Structure", + "target_asset_type": "Mapping Specification" + } + }, + { + "id": "a0cf4a93-0a18-4dfb-a49d-5d4cf0afbd4f", + "kind": "relation", + "name": "has", + "public_id": "TechnologyAssetHasSchema", + "cardinality": { + "min": 0, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "Technology Asset", + "target_asset_type": "Schema" + } + }, + { + "id": "01922077-e525-7965-96eb-32ab08acc495", + "kind": "relation", + "name": "governed by", + "public_id": "AssetGovernedByGovernanceAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Asset", + "target_asset_type": "Governance Asset" + } + }, + { + "id": "01922077-f034-79fe-9ecc-f1991e300490", + "kind": "relation", + "name": "contains", + "public_id": "DataplexZoneContainsSchema", + "cardinality": { + "min": 0, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "Dataplex Zone", + "target_asset_type": "Schema" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-090000010018", + "kind": "asset_type", + "name": "Schema Score", + "public_id": "SchemaScore", + "parent_name": "Data Quality Metric", + "attributes": [ + { + "id": "01922077-cb3a-773b-a446-54a1e394806e", + "kind": "attribute", + "name": "Rows Failed", + "public_id": "RowsFailed", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "01922077-cb3b-7711-9330-819fd8a3f56d", + "kind": "attribute", + "name": "Loaded Rows", + "public_id": "LoadedRows", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "01922077-cb3b-7711-9330-819fd8a3f56e", + "kind": "attribute", + "name": "Measurement", + "public_id": "Measurement", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "01922077-cb3b-7711-9330-819fd8a3f56f", + "kind": "attribute", + "name": "Passing Fraction", + "public_id": "PassingFraction", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "01922077-cb3b-7711-9330-819fd8a3f570", + "kind": "attribute", + "name": "Score Details", + "public_id": "ScoreDetails", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "01922077-cb3b-7711-9330-819fd8a3f571", + "kind": "attribute", + "name": "Score Status", + "public_id": "ScoreStatus", + "cardinality": { + "min": 1, + "max": 1 + } + } + ], + "relations": [ + { + "id": "01922077-d8ec-7530-ba55-d09adf652256", + "kind": "relation", + "name": "executed by", + "public_id": "DataQualityRuleExecutedByDataQualityMetric", + "cardinality": { + "min": 1, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "Data Quality Rule", + "target_asset_type": "Data Quality Metric" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-110000000004", + "kind": "asset_type", + "name": "Server", + "public_id": "Server", + "parent_name": "Technology Asset", + "attributes": [], + "relations": [] + }, + { + "id": "00000000-0000-0000-0000-090000010017", + "kind": "asset_type", + "name": "Shape Score", + "public_id": "ShapeScore", + "parent_name": "Data Quality Metric", + "attributes": [ + { + "id": "01922077-ca80-798c-b20b-a2b672a4eded", + "kind": "attribute", + "name": "Rows Failed", + "public_id": "RowsFailed", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "01922077-ca80-798c-b20b-a2b672a4edee", + "kind": "attribute", + "name": "Loaded Rows", + "public_id": "LoadedRows", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "01922077-ca80-798c-b20b-a2b672a4edef", + "kind": "attribute", + "name": "Measurement", + "public_id": "Measurement", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "01922077-ca80-798c-b20b-a2b672a4edf0", + "kind": "attribute", + "name": "Passing Fraction", + "public_id": "PassingFraction", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "01922077-ca80-798c-b20b-a2b672a4edf1", + "kind": "attribute", + "name": "Score Details", + "public_id": "ScoreDetails", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "01922077-ca80-798c-b20b-a2b672a4edf2", + "kind": "attribute", + "name": "Score Status", + "public_id": "ScoreStatus", + "cardinality": { + "min": 1, + "max": 1 + } + } + ], + "relations": [ + { + "id": "01922077-d8d1-7c22-8810-bf61c0953a68", + "kind": "relation", + "name": "executed by", + "public_id": "DataQualityRuleExecutedByDataQualityMetric", + "cardinality": { + "min": 1, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "Data Quality Rule", + "target_asset_type": "Data Quality Metric" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-100000000102", + "kind": "asset_type", + "name": "Sigma Data Attribute", + "public_id": "SigmaDataAttribute", + "parent_name": "BI Data Attribute", + "attributes": [ + { + "id": "019a44c9-d341-78bd-9cc0-ed90a713c02e", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019a44c9-d341-78bd-9cc0-ed90a713c02f", + "kind": "attribute", + "name": "Description from source system", + "public_id": "DescriptionFromSourceSystem", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019a44c9-d341-78bd-9cc0-ed90a713c030", + "kind": "attribute", + "name": "Role in Report", + "public_id": "RoleInReport", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019a44c9-d341-78bd-9cc0-ed90a713c031", + "kind": "attribute", + "name": "Technical Data Type", + "public_id": "TechnicalDataType", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019a44c9-d341-78bd-9cc0-ed90a713c032", + "kind": "attribute", + "name": "Calculation Rule", + "public_id": "CalculationRule", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "0199b495-f6a9-7db3-82c0-149822621ae2", + "kind": "relation", + "name": "targets", + "public_id": "DataElementTargetsDataElement", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Element", + "target_asset_type": "Data Element" + } + }, + { + "id": "0199b496-08c7-7741-89e0-1fccf504b95b", + "kind": "relation", + "name": "contains", + "public_id": "BIDataModelContainsBIDataAttribute", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "BI Data Model", + "target_asset_type": "BI Data Attribute" + } + }, + { + "id": "0199b496-08c7-7741-89e0-1fccf504b95c", + "kind": "relation", + "name": "contains", + "public_id": "DataEntityContainsDataAttribute", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Entity", + "target_asset_type": "Data Attribute" + } + }, + { + "id": "0199b496-08c7-7741-89e0-1fccf504b95d", + "kind": "relation", + "name": "sourced from", + "public_id": "ReportAttributeSourcedFromDataAttribute", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report Attribute", + "target_asset_type": "Data Attribute" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-100000000101", + "kind": "asset_type", + "name": "Sigma Data Entity", + "public_id": "SigmaDataEntity", + "parent_name": "BI Data Entity", + "attributes": [ + { + "id": "0199b495-f802-7663-aff8-275b0d8dfc14", + "kind": "attribute", + "name": "Source Type", + "public_id": "SourceType", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019a44c9-d405-7bdd-bcd7-9c665492bc12", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019a44c9-d405-7bdd-bcd7-9c665492bc13", + "kind": "attribute", + "name": "Description from source system", + "public_id": "DescriptionFromSourceSystem", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "0199b495-f803-7dfa-b895-4f909d693284", + "kind": "relation", + "name": "contains", + "public_id": "DataEntityContainsDataAttribute", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Entity", + "target_asset_type": "Data Attribute" + } + }, + { + "id": "0199b496-0942-7059-a5de-9f298a753111", + "kind": "relation", + "name": "is part of", + "public_id": "DataEntityIsPartOfDataModel", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Entity", + "target_asset_type": "Data Model" + } + }, + { + "id": "0199b496-0942-7059-a5de-9f298a753112", + "kind": "relation", + "name": "source system for", + "public_id": "TechnologyAssetSourceSystemForDataAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Technology Asset", + "target_asset_type": "Data Asset" + } + }, + { + "id": "0199b496-0942-7059-a5de-9f298a753113", + "kind": "relation", + "name": "is source for", + "public_id": "DataAssetIsSourceForBIReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Asset", + "target_asset_type": "BI Report" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-100000000099", + "kind": "asset_type", + "name": "Sigma Data Model", + "public_id": "SigmaDataModel", + "parent_name": "BI Data Model", + "attributes": [ + { + "id": "0199b495-fa9b-7317-b3b6-da7f10ac5ff2", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0199b495-fa9b-7317-b3b6-da7f10ac5ff3", + "kind": "attribute", + "name": "URL", + "public_id": "Url", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "019a44c9-d4b3-7495-aa74-e3ab8dbf3cb4", + "kind": "attribute", + "name": "Description from source system", + "public_id": "DescriptionFromSourceSystem", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019a44c9-d4b3-7495-aa74-e3ab8dbf3cb5", + "kind": "attribute", + "name": "Owner in Source", + "public_id": "OwnerInSource", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019a44c9-d4b3-7495-aa74-e3ab8dbf3cb6", + "kind": "attribute", + "name": "Creation Date in Source", + "public_id": "CreationDateInSource", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019a44c9-d4b3-7495-aa74-e3ab8dbf3cb7", + "kind": "attribute", + "name": "Modification Date in Source", + "public_id": "ModificationDateInSource", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "0199b495-fa9b-7317-b3b6-da7f10ac5ff4", + "kind": "relation", + "name": "is source for", + "public_id": "BIDataModelIsSourceForBIDataModel", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "BI Data Model", + "target_asset_type": "BI Data Model" + } + }, + { + "id": "0199b495-fa9b-7317-b3b6-da7f10ac5ff5", + "kind": "relation", + "name": "contains", + "public_id": "BIDataModelContainsBIDataAttribute", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "BI Data Model", + "target_asset_type": "BI Data Attribute" + } + }, + { + "id": "0199b495-fa9b-7317-b3b6-da7f10ac5ff6", + "kind": "relation", + "name": "is part of", + "public_id": "DataEntityIsPartOfDataModel", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Entity", + "target_asset_type": "Data Model" + } + }, + { + "id": "0199b496-09c7-74a3-ac08-f08d1e95b1eb", + "kind": "relation", + "name": "contains", + "public_id": "BIFolderContainsDataAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "BI Folder", + "target_asset_type": "Data Asset" + } + }, + { + "id": "0199b496-09c7-74a3-ac08-f08d1e95b1ec", + "kind": "relation", + "name": "contains", + "public_id": "BIReportContainsBIDataModel", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "BI Report", + "target_asset_type": "BI Data Model" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-100000000100", + "kind": "asset_type", + "name": "Sigma Data Set", + "public_id": "SigmaDataSet", + "parent_name": "BI Data Set", + "attributes": [ + { + "id": "0199b495-f955-79a9-b625-9349631e46f2", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0199b495-f955-79a9-b625-9349631e46f3", + "kind": "attribute", + "name": "URL", + "public_id": "Url", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "019a44c9-d445-7b28-9fa0-7bbea2359894", + "kind": "attribute", + "name": "Description from source system", + "public_id": "DescriptionFromSourceSystem", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019a44c9-d445-7b28-9fa0-7bbea2359895", + "kind": "attribute", + "name": "Source Type", + "public_id": "SourceType", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019a44c9-d445-7b28-9fa0-7bbea2359896", + "kind": "attribute", + "name": "Creation Date in Source", + "public_id": "CreationDateInSource", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019a44c9-d445-7b28-9fa0-7bbea2359897", + "kind": "attribute", + "name": "Modification Date in Source", + "public_id": "ModificationDateInSource", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "0199b495-f955-79a9-b625-9349631e46f4", + "kind": "relation", + "name": "contains", + "public_id": "DataSetContainsDataElement", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Set", + "target_asset_type": "Data Element" + } + }, + { + "id": "0199b496-0993-7b30-8ab0-2940ce75ca40", + "kind": "relation", + "name": "source system for", + "public_id": "TechnologyAssetSourceSystemForDataAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Technology Asset", + "target_asset_type": "Data Asset" + } + }, + { + "id": "0199b496-0993-7b30-8ab0-2940ce75ca41", + "kind": "relation", + "name": "contains", + "public_id": "BIFolderContainsDataAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "BI Folder", + "target_asset_type": "Data Asset" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-100000000092", + "kind": "asset_type", + "name": "Sigma Data Source", + "public_id": "SigmaDataSource", + "parent_name": "BI Data Source", + "attributes": [ + { + "id": "0199b496-0408-7367-804d-ebc041a93de9", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0199b496-0409-7bf0-9a47-99a19f102839", + "kind": "attribute", + "name": "URL", + "public_id": "Url", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "0199b496-0409-7bf0-9a47-99a19f10283a", + "kind": "attribute", + "name": " Account Name", + "public_id": "AccountName", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0199b496-0409-7bf0-9a47-99a19f10283b", + "kind": "attribute", + "name": "Warehouse Name", + "public_id": "WarehouseName", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019a44c9-d5c3-7706-994b-0cc4175b1dec", + "kind": "attribute", + "name": "Creation Date in Source", + "public_id": "CreationDateInSource", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019a44c9-d5c3-7706-994b-0cc4175b1ded", + "kind": "attribute", + "name": "Modification Date in Source", + "public_id": "ModificationDateInSource", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "0199b496-0409-7bf0-9a47-99a19f10283c", + "kind": "relation", + "name": "groups", + "public_id": "TechnologyAssetGroupsTechnologyAsset", + "cardinality": { + "min": 1, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "Technology Asset", + "target_asset_type": "Technology Asset" + } + }, + { + "id": "0199b496-0409-7bf0-9a47-99a19f10283d", + "kind": "relation", + "name": "source system for", + "public_id": "TechnologyAssetSourceSystemForDataAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Technology Asset", + "target_asset_type": "Data Asset" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-100000000094", + "kind": "asset_type", + "name": "Sigma Folder", + "public_id": "SigmaFolder", + "parent_name": "BI Folder", + "attributes": [ + { + "id": "0199b496-00e9-761c-b28e-07abe99977b1", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0199b496-00e9-761c-b28e-07abe99977b2", + "kind": "attribute", + "name": "Description from source system", + "public_id": "DescriptionFromSourceSystem", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0199b496-00e9-761c-b28e-07abe99977b3", + "kind": "attribute", + "name": "Owner in Source", + "public_id": "OwnerInSource", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0199b496-00e9-761c-b28e-07abe99977b4", + "kind": "attribute", + "name": "Creation Date in Source", + "public_id": "CreationDateInSource", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0199b496-00e9-761c-b28e-07abe99977b5", + "kind": "attribute", + "name": "Modification Date in Source", + "public_id": "ModificationDateInSource", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019a44c9-d570-7a7d-8d48-dd0773d82fa8", + "kind": "attribute", + "name": "URL", + "public_id": "Url", + "cardinality": { + "min": 1, + "max": 1 + } + } + ], + "relations": [ + { + "id": "0199b496-00ea-7dab-be52-7dc7885434a9", + "kind": "relation", + "name": "assembles", + "public_id": "BIFolderAssemblesBIFolder", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "BI Folder", + "target_asset_type": "BI Folder" + } + }, + { + "id": "0199b496-00ea-7dab-be52-7dc7885434aa", + "kind": "relation", + "name": "groups", + "public_id": "BusinessDimensionGroupsReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Dimension", + "target_asset_type": "Report" + } + }, + { + "id": "0199b496-00ea-7dab-be52-7dc7885434ab", + "kind": "relation", + "name": "contains", + "public_id": "BIFolderContainsDataAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "BI Folder", + "target_asset_type": "Data Asset" + } + }, + { + "id": "019a44c9-d92a-79ba-ac4a-4cc2bc6013ea", + "kind": "relation", + "name": "assembles", + "public_id": "BIFolderAssemblesBIFolder", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "BI Folder", + "target_asset_type": "BI Folder" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-100000000098", + "kind": "asset_type", + "name": "Sigma Report Attribute", + "public_id": "SigmaReportAttribute", + "parent_name": "BI Report Attribute", + "attributes": [ + { + "id": "019a44c9-d519-7f2c-9f93-8dcd1cb1ccc8", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019a44c9-d519-7f2c-9f93-8dcd1cb1ccc9", + "kind": "attribute", + "name": "Description from source system", + "public_id": "DescriptionFromSourceSystem", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "0199b495-fc0a-74f4-b6ec-f2dbae458038", + "kind": "relation", + "name": "sourced from", + "public_id": "ReportAttributeSourcedFromDataAttribute", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report Attribute", + "target_asset_type": "Data Attribute" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-100000000091", + "kind": "asset_type", + "name": "Sigma Tenant", + "public_id": "SigmaTenant", + "parent_name": "BI Server", + "attributes": [ + { + "id": "0199b496-05bf-7840-ab7a-adb0e8937c0b", + "kind": "attribute", + "name": "URL", + "public_id": "Url", + "cardinality": { + "min": 1, + "max": 1 + } + } + ], + "relations": [ + { + "id": "0199b496-05bf-7840-ab7a-adb0e8937c0c", + "kind": "relation", + "name": "groups", + "public_id": "TechnologyAssetGroupsTechnologyAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Technology Asset", + "target_asset_type": "Technology Asset" + } + }, + { + "id": "0199b496-05bf-7840-ab7a-adb0e8937c0d", + "kind": "relation", + "name": "hosts", + "public_id": "ServerHostsBusinessDimension", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Server", + "target_asset_type": "Business Dimension" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-100000000095", + "kind": "asset_type", + "name": "Sigma Workbook", + "public_id": "SigmaWorkbook", + "parent_name": "BI Report", + "attributes": [ + { + "id": "0199b495-ff6a-7765-95a6-556e6a19e211", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0199b495-ff6a-7765-95a6-556e6a19e212", + "kind": "attribute", + "name": "Description from source system", + "public_id": "DescriptionFromSourceSystem", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0199b495-ff6a-7765-95a6-556e6a19e213", + "kind": "attribute", + "name": "URL", + "public_id": "Url", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "0199b495-ff6a-7765-95a6-556e6a19e214", + "kind": "attribute", + "name": "Owner in Source", + "public_id": "OwnerInSource", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0199b495-ff6a-7765-95a6-556e6a19e215", + "kind": "attribute", + "name": "Creation Date in Source", + "public_id": "CreationDateInSource", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0199b495-ff6a-7765-95a6-556e6a19e216", + "kind": "attribute", + "name": "Modification Date in Source", + "public_id": "ModificationDateInSource", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019a44c9-d54e-7c59-a5b8-b4a21ec2ce54", + "kind": "attribute", + "name": "Source Tags", + "public_id": "SourceTags", + "cardinality": { + "min": 0, + "max": null + } + } + ], + "relations": [ + { + "id": "0199b495-ff6a-7765-95a6-556e6a19e217", + "kind": "relation", + "name": "uses", + "public_id": "ReportUsesReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Report" + } + }, + { + "id": "0199b496-0a10-709b-8493-fd61de07e91b", + "kind": "relation", + "name": "groups", + "public_id": "BusinessDimensionGroupsReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Dimension", + "target_asset_type": "Report" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-100000000097", + "kind": "asset_type", + "name": "Sigma Workbook Element", + "public_id": "SigmaWorkbookElement", + "parent_name": "BI Report", + "attributes": [ + { + "id": "0199b495-fd1f-7f42-9ed9-fce874df5dc0", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0199b495-fd20-76d6-9b00-d66b5979423f", + "kind": "attribute", + "name": "Description from source system", + "public_id": "DescriptionFromSourceSystem", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "0199b495-fd20-76d6-9b00-d66b59794241", + "kind": "relation", + "name": "contained in", + "public_id": "ReportAttributeContainedInReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report Attribute", + "target_asset_type": "Report" + } + }, + { + "id": "019a44c9-d8da-7a5b-9774-4c8cc5aa504c", + "kind": "relation", + "name": "groups", + "public_id": "ReportGroupsReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Report" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-100000000096", + "kind": "asset_type", + "name": "Sigma Workbook Page", + "public_id": "SigmaWorkbookPage", + "parent_name": "BI Report", + "attributes": [ + { + "id": "019c195a-9a96-703e-819a-93a9f7ad7faa", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019c195a-9a97-7577-9efc-9e737a7ef28f", + "kind": "attribute", + "name": "Description from source system", + "public_id": "DescriptionFromSourceSystem", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "0199b495-fe5d-7252-a271-29c3dd69e88b", + "kind": "relation", + "name": "groups", + "public_id": "ReportGroupsReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Report" + } + }, + { + "id": "0199b496-09f7-787a-87ef-7251e046d05c", + "kind": "relation", + "name": "uses", + "public_id": "ReportUsesReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Report" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-100000000093", + "kind": "asset_type", + "name": "Sigma Workspace", + "public_id": "SigmaWorkspace", + "parent_name": "BI Folder", + "attributes": [ + { + "id": "0199b496-0288-7c88-b423-e969feaf49ae", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0199b496-0289-7e2c-a7d4-841f8f0b4dc7", + "kind": "attribute", + "name": "Creation Date in Source", + "public_id": "CreationDateInSource", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0199b496-0289-7e2c-a7d4-841f8f0b4dc8", + "kind": "attribute", + "name": "Modification Date in Source", + "public_id": "ModificationDateInSource", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019a44c9-d5a2-7dab-881e-4d475d611fba", + "kind": "attribute", + "name": "URL", + "public_id": "Url", + "cardinality": { + "min": 1, + "max": 1 + } + } + ], + "relations": [ + { + "id": "0199b496-0289-7e2c-a7d4-841f8f0b4dc9", + "kind": "relation", + "name": "assembles", + "public_id": "BIFolderAssemblesBIFolder", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "BI Folder", + "target_asset_type": "BI Folder" + } + }, + { + "id": "0199b496-0a2c-73d2-aa81-bf60d601d38b", + "kind": "relation", + "name": "hosts", + "public_id": "ServerHostsBusinessDimension", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Server", + "target_asset_type": "Business Dimension" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-090000010019", + "kind": "asset_type", + "name": "Source Score", + "public_id": "SourceScore", + "parent_name": "Data Quality Metric", + "attributes": [ + { + "id": "01922077-cbef-7da2-99e4-b9f4a64fb4df", + "kind": "attribute", + "name": "Rows Failed", + "public_id": "RowsFailed", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "01922077-cbef-7da2-99e4-b9f4a64fb4e0", + "kind": "attribute", + "name": "Loaded Rows", + "public_id": "LoadedRows", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "01922077-cbef-7da2-99e4-b9f4a64fb4e1", + "kind": "attribute", + "name": "Measurement", + "public_id": "Measurement", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "01922077-cbef-7da2-99e4-b9f4a64fb4e2", + "kind": "attribute", + "name": "Passing Fraction", + "public_id": "PassingFraction", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "01922077-cbef-7da2-99e4-b9f4a64fb4e3", + "kind": "attribute", + "name": "Score Details", + "public_id": "ScoreDetails", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "01922077-cbef-7da2-99e4-b9f4a64fb4e4", + "kind": "attribute", + "name": "Score Status", + "public_id": "ScoreStatus", + "cardinality": { + "min": 1, + "max": 1 + } + } + ], + "relations": [ + { + "id": "01922077-d905-7ccc-8bb0-aec8281b2457", + "kind": "relation", + "name": "executed by", + "public_id": "DataQualityRuleExecutedByDataQualityMetric", + "cardinality": { + "min": 1, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "Data Quality Rule", + "target_asset_type": "Data Quality Metric" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-000000031206", + "kind": "asset_type", + "name": "Standard", + "public_id": "Standard", + "parent_name": "Policy", + "attributes": [ + { + "id": "3f40e4ee-6fba-464e-b93e-bbdc95472fa7", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "9677781d-1c0c-41ea-8ede-403ea6d5ff9a", + "kind": "attribute", + "name": "Descriptive Example", + "public_id": "DescriptiveExample", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "10bdc2c8-3ab6-4603-a8fc-d8b9c3afa099", + "kind": "attribute", + "name": "Purpose", + "public_id": "Purpose", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "d632405d-6350-467c-bb5b-266dddcd4b6a", + "kind": "attribute", + "name": "Exception Scenario", + "public_id": "ExceptionScenario", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "05899938-d385-4ad0-9f0b-36d157681c9b", + "kind": "attribute", + "name": "Inclusion Scenario", + "public_id": "InclusionScenario", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "5172906f-2fbc-432d-beb7-65bd3f72512e", + "kind": "attribute", + "name": "Last Review Date", + "public_id": "LastReviewDate", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "6d69a7f3-f114-4efc-962f-5305d9ee476b", + "kind": "attribute", + "name": "Note", + "public_id": "Note", + "cardinality": { + "min": 0, + "max": null + } + } + ], + "relations": [ + { + "id": "a667904c-ce63-488d-9150-8f645f0d20a7", + "kind": "relation", + "name": "complies to", + "public_id": "AssetCompliesToGovernanceAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Asset", + "target_asset_type": "Governance Asset" + } + }, + { + "id": "f1003823-8d3b-4e21-a707-cf5a29ce4785", + "kind": "relation", + "name": "complies to", + "public_id": "AssetCompliesToGovernanceAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Asset", + "target_asset_type": "Governance Asset" + } + }, + { + "id": "3f14202e-4273-4d28-9138-c89ea8dd8b7d", + "kind": "relation", + "name": "groups", + "public_id": "GovernanceAssetGroupsGovernanceAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Governance Asset", + "target_asset_type": "Governance Asset" + } + }, + { + "id": "cad61f72-95ec-4591-b9c3-3b96608933c7", + "kind": "relation", + "name": "groups", + "public_id": "GovernanceAssetGroupsGovernanceAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Governance Asset", + "target_asset_type": "Governance Asset" + } + }, + { + "id": "47c385c8-c9dd-4091-a10c-f3eec71c235d", + "kind": "relation", + "name": "is included in", + "public_id": "StandardIsIncludedInPolicy", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Standard", + "target_asset_type": "Policy" + } + }, + { + "id": "cf647d66-bd0c-4b0a-a932-95403778d977", + "kind": "relation", + "name": "is included in", + "public_id": "StandardIsIncludedInPolicy", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Standard", + "target_asset_type": "Policy" + } + }, + { + "id": "f5a7bd6e-ba6a-4df7-8954-9cd307311397", + "kind": "relation", + "name": "is enforced by", + "public_id": "PolicyIsEnforcedByRule", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Policy", + "target_asset_type": "Rule" + } + }, + { + "id": "977dda84-6f63-4047-ac44-cbff67a5da79", + "kind": "relation", + "name": "impacts", + "public_id": "IssueImpactsAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Issue", + "target_asset_type": "Asset" + } + } + ] + }, + { + "id": "00000000-0000-0000-0001-002900000002", + "kind": "asset_type", + "name": "Storage Container", + "public_id": "FileContainer", + "parent_name": "Technology Asset", + "attributes": [ + { + "id": "01922077-9c67-7c31-a0d6-6b7ad5262833", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "01922077-9c67-7c31-a0d6-6b7ad5262834", + "kind": "attribute", + "name": "URL", + "public_id": "Url", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-9c67-7c31-a0d6-6b7ad5262835", + "kind": "attribute", + "name": "Location", + "public_id": "Location", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-9c67-7c31-a0d6-6b7ad5262836", + "kind": "attribute", + "name": "External System Label", + "public_id": "ExternalSystemLabel", + "cardinality": { + "min": 0, + "max": null + } + } + ], + "relations": [ + { + "id": "01922077-9c67-7c31-a0d6-6b7ad5262837", + "kind": "relation", + "name": "contains", + "public_id": "FileStorageContainsFileContainer", + "cardinality": { + "min": 0, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "File Storage", + "target_asset_type": "Storage Container" + } + }, + { + "id": "01922077-9c67-7c31-a0d6-6b7ad5262838", + "kind": "relation", + "name": "contains", + "public_id": "FileContainerContainsFileContainer", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Storage Container", + "target_asset_type": "Storage Container" + } + }, + { + "id": "60e05ac3-f9ef-45bc-bf58-2728d0638150", + "kind": "relation", + "name": "contains", + "public_id": "FileContainerContainsFileContainer", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Storage Container", + "target_asset_type": "Storage Container" + } + }, + { + "id": "01922077-9c67-7c31-a0d6-6b7ad5262839", + "kind": "relation", + "name": "contains", + "public_id": "FileContainerContainsFile", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Storage Container", + "target_asset_type": "File" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-000000031302", + "kind": "asset_type", + "name": "System", + "public_id": "System", + "parent_name": "Technology Asset", + "attributes": [ + { + "id": "4ddd168b-a2e1-48ff-8973-e2014c6a51b8", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "c3f6c4c9-5019-4121-bd71-1d4463fadc88", + "kind": "attribute", + "name": "Application Standards", + "public_id": "ApplicationStandards", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "4cf4cf60-b93a-4d24-90cf-6c96f35ad199", + "kind": "attribute", + "name": "Application Regulation", + "public_id": "ApplicationRegulation", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "ed9ef74b-d17e-4b49-b49b-1bf7230ebb07", + "kind": "attribute", + "name": "Scope", + "public_id": "Scope", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "5d130503-e6f7-4dd0-af89-e74687a69f41", + "kind": "attribute", + "name": "Descriptive Example", + "public_id": "DescriptiveExample", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "8b9284e4-1539-47aa-8e38-cbe09d1e2a4f", + "kind": "attribute", + "name": "Location", + "public_id": "Location", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "c7374b75-23e2-4a70-bc9a-d94b58b3dcd8", + "kind": "attribute", + "name": "Note", + "public_id": "Note", + "cardinality": { + "min": 0, + "max": null + } + } + ], + "relations": [ + { + "id": "21e5ec61-169e-4433-8395-9bfb2d93635a", + "kind": "relation", + "name": "implemented in", + "public_id": "DataAssetImplementedInTechnologyAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Asset", + "target_asset_type": "Technology Asset" + } + }, + { + "id": "32cc7e52-d1f2-43c8-b61c-aa848efb97d7", + "kind": "relation", + "name": "system of record for", + "public_id": "TechnologyAssetSystemOfRecordForBusinessTerm", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Technology Asset", + "target_asset_type": "Business Term" + } + }, + { + "id": "5121140a-604e-48f1-b03a-b7ebd73fac24", + "kind": "relation", + "name": "system of use for", + "public_id": "TechnologyAssetSystemOfUseForBusinessTerm", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Technology Asset", + "target_asset_type": "Business Term" + } + }, + { + "id": "b5e6c309-6ae4-4dc4-8211-afe66b5a1b8b", + "kind": "relation", + "name": "source system for", + "public_id": "TechnologyAssetSourceSystemForBusinessTerm", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Technology Asset", + "target_asset_type": "Business Term" + } + }, + { + "id": "d3551c0d-32dd-4f6d-bb90-c648c9ccab67", + "kind": "relation", + "name": "system of record for", + "public_id": "TechnologyAssetSystemOfRecordForDataAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Technology Asset", + "target_asset_type": "Data Asset" + } + }, + { + "id": "cdd2a9db-8164-4d8e-a064-7578364ac1ae", + "kind": "relation", + "name": "system of use for", + "public_id": "TechnologyAssetSystemOfUseForDataAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Technology Asset", + "target_asset_type": "Data Asset" + } + }, + { + "id": "f455aa03-7cb1-4a2d-8917-2bb9c6fa0649", + "kind": "relation", + "name": "source system for", + "public_id": "TechnologyAssetSourceSystemForDataAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Technology Asset", + "target_asset_type": "Data Asset" + } + }, + { + "id": "15ffefbf-1c86-4cb6-84c8-8f8edfe81141", + "kind": "relation", + "name": "impacts", + "public_id": "IssueImpactsAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Issue", + "target_asset_type": "Asset" + } + }, + { + "id": "e99f644b-f531-4a57-b943-291b18f63842", + "kind": "relation", + "name": "groups", + "public_id": "TechnologyAssetGroupsTechnologyAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Technology Asset", + "target_asset_type": "Technology Asset" + } + }, + { + "id": "898a0b57-ddf2-42f6-b939-c5c00091a0f4", + "kind": "relation", + "name": "groups", + "public_id": "TechnologyAssetGroupsTechnologyAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Technology Asset", + "target_asset_type": "Technology Asset" + } + }, + { + "id": "4f4205eb-e8eb-40a0-88d5-449b37e704f5", + "kind": "relation", + "name": "implements", + "public_id": "SystemImplementsDataModel", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "System", + "target_asset_type": "Data Model" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-000000031007", + "kind": "asset_type", + "name": "Table", + "public_id": "Table", + "parent_name": "Data Structure", + "attributes": [ + { + "id": "cd4a218a-3c50-4694-bc3c-89ea335ad493", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "cd263f6b-bebd-4519-a649-5cf81ede4907", + "kind": "attribute", + "name": "Description from source system", + "public_id": "DescriptionFromSourceSystem", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "019c195a-982f-7173-8924-a7790ae9bf39", + "kind": "attribute", + "name": "Business Name", + "public_id": "BusinessName", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "c10fabb8-98f7-4e4a-8092-9c7180919b59", + "kind": "attribute", + "name": "Table Type", + "public_id": "TableType", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "b01c11e5-9290-43d9-aed5-f608c637764b", + "kind": "attribute", + "name": "Empty values definition override", + "public_id": "EmptyValuesDefinitionOverride", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "1005eeb7-4841-4efb-bb4e-99af106fc43e", + "kind": "attribute", + "name": "Refresh Conflict", + "public_id": "RefreshConflict", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "8d69756c-eb6d-477f-a448-fe40fcf350ad", + "kind": "attribute", + "name": "Profiling Information", + "public_id": "ProfilingInformation", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0317af74-9db2-4223-9313-438a7c87b9aa", + "kind": "attribute", + "name": "Glue database name", + "public_id": "GlueDatabaseName", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "2b718fdc-57eb-47f8-a283-f69b173f2919", + "kind": "attribute", + "name": "Glue table name", + "public_id": "GlueTableName", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-bc0e-7290-9b18-be6c2a365b79", + "kind": "attribute", + "name": "Source Tags", + "public_id": "SourceTags", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "01922077-ef95-7651-92e5-240ef1ad052d", + "kind": "attribute", + "name": "Owner in Source", + "public_id": "OwnerInSource", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-f48e-7ffe-a35f-e4c75e080e4d", + "kind": "attribute", + "name": "URL", + "public_id": "Url", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0196bf61-67e6-7138-98d6-bf64b6c54b0a", + "kind": "attribute", + "name": "Popularity Score", + "public_id": "PopularityScore", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "cb60461f-780d-4a47-9381-0d48cee2a1d4", + "kind": "relation", + "name": "is part of", + "public_id": "ColumnIsPartOfTable", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Column", + "target_asset_type": "Table" + } + }, + { + "id": "2db5cbd8-2931-4daa-97c1-d8661f22f63d", + "kind": "relation", + "name": "contains", + "public_id": "SchemaContainsTable", + "cardinality": { + "min": 0, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "Schema", + "target_asset_type": "Table" + } + }, + { + "id": "feb32423-6b6f-4ab7-bb50-1335602c75ff", + "kind": "relation", + "name": "represents", + "public_id": "BusinessAssetRepresentsDataAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Asset", + "target_asset_type": "Data Asset" + } + }, + { + "id": "026a9432-1a75-4fb2-a985-39c1abef4229", + "kind": "relation", + "name": "implemented in", + "public_id": "DataAssetImplementedInTechnologyAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Asset", + "target_asset_type": "Technology Asset" + } + }, + { + "id": "339ba1eb-3f81-455d-a74e-92662bf34555", + "kind": "relation", + "name": "impacts", + "public_id": "IssueImpactsAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Issue", + "target_asset_type": "Asset" + } + }, + { + "id": "43d3dac8-9479-4311-98c7-6745d6c6376e", + "kind": "relation", + "name": "source of", + "public_id": "DataStructureSourceOfMappingSpecification", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Structure", + "target_asset_type": "Mapping Specification" + } + }, + { + "id": "799b79c3-e8ed-466e-8337-041cea04a07c", + "kind": "relation", + "name": "target of", + "public_id": "DataStructureTargetOfMappingSpecification", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Structure", + "target_asset_type": "Mapping Specification" + } + }, + { + "id": "98b0c1d6-6e1b-4d2c-832e-71d2d064f982", + "kind": "relation", + "name": "contains", + "public_id": "FileContainsTable", + "cardinality": { + "min": 0, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "File", + "target_asset_type": "Table" + } + }, + { + "id": "0177d787-9931-45fa-b37f-4a61fbfd9ab7", + "kind": "relation", + "name": "contains", + "public_id": "FileGroupContainsTable", + "cardinality": { + "min": 0, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "File Group", + "target_asset_type": "Table" + } + }, + { + "id": "01922077-da0d-7774-b223-07f98b8bf78b", + "kind": "relation", + "name": "represents", + "public_id": "DataAssetRepresentsTable", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Asset", + "target_asset_type": "Table" + } + }, + { + "id": "01922077-dac0-70c3-8394-cf2ca926513f", + "kind": "relation", + "name": "contains", + "public_id": "DataplexZoneContainsTable", + "cardinality": { + "min": 0, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "Dataplex Zone", + "target_asset_type": "Table" + } + }, + { + "id": "01922077-e506-74ac-a8e3-cc0530932d6b", + "kind": "relation", + "name": "governed by", + "public_id": "AssetGovernedByGovernanceAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Asset", + "target_asset_type": "Governance Asset" + } + }, + { + "id": "01922078-048f-757d-96f5-29285a4dec39", + "kind": "relation", + "name": "contains", + "public_id": "GcsBucketContainsTable", + "cardinality": { + "min": 0, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "GCS Bucket", + "target_asset_type": "Table" + } + }, + { + "id": "01922078-1244-7c56-9fce-fcba84b379c9", + "kind": "relation", + "name": "is target of", + "public_id": "DataModelContainsTable", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Model", + "target_asset_type": "Table" + } + }, + { + "id": "01922078-1244-7c56-9fce-fcba84b379ca", + "kind": "relation", + "name": "is source for", + "public_id": "TableIsSourceForDatabaseView", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Table", + "target_asset_type": "Database View" + } + }, + { + "id": "01922078-1244-7c56-9fce-fcba84b379cb", + "kind": "relation", + "name": "is source for", + "public_id": "DataAssetIsSourceForBIReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Asset", + "target_asset_type": "BI Report" + } + }, + { + "id": "01922078-1413-7403-bca9-a143ce85e48a", + "kind": "relation", + "name": "contains", + "public_id": "SapDatasphereSpaceContainsDataAsset", + "cardinality": { + "min": 0, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "SAP Datasphere Space", + "target_asset_type": "Data Asset" + } + } + ] + }, + { + "id": "00000000-0000-0000-0001-110000000301", + "kind": "asset_type", + "name": "Tableau Dashboard", + "public_id": "TableauDashboard", + "parent_name": "Tableau View", + "attributes": [ + { + "id": "019c85f6-ae23-7097-a785-e1c1e0c48a6d", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "019c85f6-ae23-7097-a785-e1c1e0c48a6e", + "kind": "attribute", + "name": "URL", + "public_id": "Url", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019c85f6-ae23-7097-a785-e1c1e0c48a6f", + "kind": "attribute", + "name": "Certified", + "public_id": "Certified", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019c85f6-ae23-7097-a785-e1c1e0c48a70", + "kind": "attribute", + "name": "Original Name", + "public_id": "OriginalName", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019c85f6-ae23-7097-a785-e1c1e0c48a71", + "kind": "attribute", + "name": "Report Image", + "public_id": "ReportImage", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019c85f6-ae23-7097-a785-e1c1e0c48a72", + "kind": "attribute", + "name": "Visits count", + "public_id": "VisitsCount", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019c85f6-ae23-7097-a785-e1c1e0c48a73", + "kind": "attribute", + "name": "Document creation date", + "public_id": "DocumentCreationDate", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019c85f6-ae23-7097-a785-e1c1e0c48a74", + "kind": "attribute", + "name": "Document modification date", + "public_id": "DocumentModificationDate", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019c85f6-ae23-7097-a785-e1c1e0c48a75", + "kind": "attribute", + "name": "Visible on server", + "public_id": "VisibleOnServer", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019c85f6-ae23-7097-a785-e1c1e0c48a7e", + "kind": "attribute", + "name": "Owner in Source", + "public_id": "OwnerInSource", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "019c85f6-ae23-7097-a785-e1c1e0c48a76", + "kind": "relation", + "name": "groups", + "public_id": "ReportGroupsReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Report" + } + }, + { + "id": "019c85f6-ae23-7097-a785-e1c1e0c48a77", + "kind": "relation", + "name": "groups", + "public_id": "ReportGroupsReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Report" + } + }, + { + "id": "019c85f6-ae23-7097-a785-e1c1e0c48a78", + "kind": "relation", + "name": "related to", + "public_id": "ReportRelatedToBusinessAsset", + "cardinality": { + "min": 1, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Business Asset" + } + }, + { + "id": "019c85f6-ae23-7097-a785-e1c1e0c48a79", + "kind": "relation", + "name": "related to", + "public_id": "ReportRelatedToBusinessAsset", + "cardinality": { + "min": 1, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Business Asset" + } + }, + { + "id": "019c85f6-ae23-7097-a785-e1c1e0c48a7a", + "kind": "relation", + "name": "uses", + "public_id": "ReportUsesReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Report" + } + }, + { + "id": "019c85f6-ae23-7097-a785-e1c1e0c48a7b", + "kind": "relation", + "name": "uses", + "public_id": "ReportUsesReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Report" + } + }, + { + "id": "019c85f6-ae23-7097-a785-e1c1e0c48a7c", + "kind": "relation", + "name": "uses", + "public_id": "ReportUsesReportAttribute", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Report Attribute" + } + }, + { + "id": "019c85f6-ae23-7097-a785-e1c1e0c48a7d", + "kind": "relation", + "name": "uses", + "public_id": "ReportUsesDataAttribute", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Data Attribute" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-110000000010", + "kind": "asset_type", + "name": "Tableau Data Attribute", + "public_id": "TableauDataAttribute", + "parent_name": "BI Data Attribute", + "attributes": [ + { + "id": "f50aef1a-a833-4183-9edc-c0dd6a3fd8d5", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "e51fe0b2-4106-4200-90b5-027e60cada8d", + "kind": "attribute", + "name": "Technical Data Type", + "public_id": "TechnicalDataType", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "dc879868-6bba-4678-a8cb-8ff300a32e0b", + "kind": "attribute", + "name": "Role in Report", + "public_id": "RoleInReport", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "aa23dff1-9ace-46bb-8ee9-8953c2188747", + "kind": "attribute", + "name": "Calculation Rule", + "public_id": "CalculationRule", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "b42d62bb-d44c-412c-a819-8c55ab288b0d", + "kind": "relation", + "name": "sourced from", + "public_id": "ReportAttributeSourcedFromDataAttribute", + "cardinality": { + "min": 1, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report Attribute", + "target_asset_type": "Data Attribute" + } + }, + { + "id": "cbc8111a-a193-4051-807d-3aaa80035529", + "kind": "relation", + "name": "is source for", + "public_id": "ColumnIsSourceForDataAttribute", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Column", + "target_asset_type": "Data Attribute" + } + }, + { + "id": "2a7a0d75-b42c-4cc3-b470-8d5b05887fd7", + "kind": "relation", + "name": "contains", + "public_id": "DataEntityContainsDataAttribute", + "cardinality": { + "min": 1, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "Data Entity", + "target_asset_type": "Data Attribute" + } + }, + { + "id": "5da74efc-0588-4e84-b3be-0e03542fa07d", + "kind": "relation", + "name": "contains", + "public_id": "BIDataModelContainsBIDataAttribute", + "cardinality": { + "min": 0, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "BI Data Model", + "target_asset_type": "BI Data Attribute" + } + }, + { + "id": "0e3cd03e-b27f-4918-9b40-6e5485a965c9", + "kind": "relation", + "name": "targets", + "public_id": "DataElementTargetsDataElement", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Element", + "target_asset_type": "Data Element" + } + }, + { + "id": "0dfa845a-5de2-4381-932a-72e1970d1430", + "kind": "relation", + "name": "targets", + "public_id": "DataElementTargetsDataElement", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Element", + "target_asset_type": "Data Element" + } + }, + { + "id": "26efe086-9ff6-4769-ba2e-eccb999bc06b", + "kind": "relation", + "name": "uses", + "public_id": "ReportUsesDataAttribute", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Data Attribute" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-110000000009", + "kind": "asset_type", + "name": "Tableau Data Entity", + "public_id": "TableauDataEntity", + "parent_name": "BI Data Entity", + "attributes": [ + { + "id": "89502d1c-8f35-46ba-9761-dd882de2aed6", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": null + } + } + ], + "relations": [ + { + "id": "19ef9e44-7b47-455a-8e5f-0bb9b29dbeb4", + "kind": "relation", + "name": "contains", + "public_id": "DataEntityContainsDataAttribute", + "cardinality": { + "min": 1, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Entity", + "target_asset_type": "Data Attribute" + } + }, + { + "id": "0b648d51-41ac-44f5-a02a-2ca3eb1067ad", + "kind": "relation", + "name": "is part of", + "public_id": "DataEntityIsPartOfDataModel", + "cardinality": { + "min": 1, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Entity", + "target_asset_type": "Data Model" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-110000000008", + "kind": "asset_type", + "name": "Tableau Data Model", + "public_id": "TableauDataModel", + "parent_name": "BI Data Model", + "attributes": [ + { + "id": "02c19eb2-16c2-42e0-9d17-36bda915cb95", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "4a1a836e-47f2-4580-9808-f866ccfb4448", + "kind": "attribute", + "name": "Data Source Type", + "public_id": "DataSourceType", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "8e7a5316-47dc-4a46-8762-91688dfd443e", + "kind": "attribute", + "name": "Certified", + "public_id": "Certified", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "2a0a3859-5933-48a3-b68b-499424630894", + "kind": "attribute", + "name": "Document creation date", + "public_id": "DocumentCreationDate", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "c2a74d34-1e20-4574-9d3d-30de099c3dd5", + "kind": "attribute", + "name": "Document modification date", + "public_id": "DocumentModificationDate", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "da1ad642-c07e-4400-a1ae-047a66a54aee", + "kind": "attribute", + "name": "Original Name", + "public_id": "OriginalName", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-ab0a-70a1-bd59-c4b1f74602a3", + "kind": "attribute", + "name": "Owner in Source", + "public_id": "OwnerInSource", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "27d4be4c-665b-40d6-bcf5-6ef3aa7c3ad3", + "kind": "relation", + "name": "is part of", + "public_id": "DataEntityIsPartOfDataModel", + "cardinality": { + "min": 1, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Entity", + "target_asset_type": "Data Model" + } + }, + { + "id": "31ea74a0-3838-4f95-9534-0878c031479b", + "kind": "relation", + "name": "implements", + "public_id": "SystemImplementsDataModel", + "cardinality": { + "min": 1, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "System", + "target_asset_type": "Data Model" + } + }, + { + "id": "2d4e8664-d721-4f48-8d5c-c1ed1f5ac8d1", + "kind": "relation", + "name": "source system for", + "public_id": "TechnologyAssetSourceSystemForDataAsset", + "cardinality": { + "min": 0, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "Technology Asset", + "target_asset_type": "Data Asset" + } + }, + { + "id": "0d94f172-f949-421c-a1fb-a5879dd8ba52", + "kind": "relation", + "name": "contains", + "public_id": "BIDataModelContainsBIDataAttribute", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "BI Data Model", + "target_asset_type": "BI Data Attribute" + } + }, + { + "id": "ba4ce88b-8751-466b-be50-7e5d006c9b4f", + "kind": "relation", + "name": "contains", + "public_id": "BIFolderContainsDataAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "BI Folder", + "target_asset_type": "Data Asset" + } + }, + { + "id": "4bd7b1b1-0078-496b-88b2-a150714c8ed4", + "kind": "relation", + "name": "contains", + "public_id": "TableauWorkbookContainsTableauDataModel", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Tableau Workbook", + "target_asset_type": "Tableau Data Model" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-110000000006", + "kind": "asset_type", + "name": "Tableau Data Source", + "public_id": "TableauDataSource", + "parent_name": "BI Data Source", + "attributes": [ + { + "id": "94fe044c-f2ee-43ff-b391-79c98d5f8a1d", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "4859ba80-ceca-4782-8b81-aa97fe592470", + "kind": "attribute", + "name": "Certified", + "public_id": "Certified", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "8219e34d-f5c6-4149-91ce-b59a6116527a", + "kind": "attribute", + "name": "Original Name", + "public_id": "OriginalName", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "04597e02-1c55-4e10-a0b1-3c5cda00b5cc", + "kind": "attribute", + "name": "Document creation date", + "public_id": "DocumentCreationDate", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "3f7af0ac-2dbd-4dcd-ad12-db0222157ca8", + "kind": "attribute", + "name": "Document modification date", + "public_id": "DocumentModificationDate", + "cardinality": { + "min": 1, + "max": 1 + } + } + ], + "relations": [ + { + "id": "53806e23-ce3b-4317-a127-810c24ca1f15", + "kind": "relation", + "name": "source", + "public_id": "BusinessDimensionSourceSystem", + "cardinality": { + "min": 1, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "Business Dimension", + "target_asset_type": "System" + } + }, + { + "id": "1671bb80-55cb-440f-9c42-40e1766b9980", + "kind": "relation", + "name": "implements", + "public_id": "SystemImplementsDataSet", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "System", + "target_asset_type": "Data Set" + } + }, + { + "id": "d7ba7f91-e078-4d93-bf9c-c11125bc47de", + "kind": "relation", + "name": "implements", + "public_id": "SystemImplementsDataModel", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "System", + "target_asset_type": "Data Model" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-110000000001", + "kind": "asset_type", + "name": "Tableau Project", + "public_id": "TableauProject", + "parent_name": "BI Folder", + "attributes": [ + { + "id": "47e2596d-2ca5-4207-9470-f36ed01abba6", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "12391fc0-ce06-4caf-99c4-2f81c760f7e6", + "kind": "attribute", + "name": "Original Name", + "public_id": "OriginalName", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "01922077-aae3-738a-841d-bc1316e365ff", + "kind": "attribute", + "name": "Owner in Source", + "public_id": "OwnerInSource", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "5f56cf97-1cbd-4da1-9fd6-59b46e2c953a", + "kind": "relation", + "name": "groups", + "public_id": "BusinessDimensionGroupsReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Dimension", + "target_asset_type": "Report" + } + }, + { + "id": "f22b1e8b-8774-48de-9340-a65b8f76c996", + "kind": "relation", + "name": "source", + "public_id": "BusinessDimensionSourceSystem", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Dimension", + "target_asset_type": "System" + } + }, + { + "id": "4a40ec5a-0328-444e-9995-e2e778ed387c", + "kind": "relation", + "name": "assembles", + "public_id": "BIFolderAssemblesBIFolder", + "cardinality": { + "min": 1, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "BI Folder", + "target_asset_type": "BI Folder" + } + }, + { + "id": "fdd9f374-1546-4ab4-8a34-0190b720b573", + "kind": "relation", + "name": "assembles", + "public_id": "BIFolderAssemblesBIFolder", + "cardinality": { + "min": 1, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "BI Folder", + "target_asset_type": "BI Folder" + } + }, + { + "id": "bbb0f376-5081-4638-b61e-95230f399505", + "kind": "relation", + "name": "contains", + "public_id": "BIFolderContainsDataAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "BI Folder", + "target_asset_type": "Data Asset" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-110000000007", + "kind": "asset_type", + "name": "Tableau Report Attribute", + "public_id": "TableauReportAttribute", + "parent_name": "BI Report Attribute", + "attributes": [ + { + "id": "bae38483-7c97-48b7-837a-08301993dcff", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "eb3d60f0-6f50-45b6-a09e-55843f3bb39a", + "kind": "attribute", + "name": "Original Name", + "public_id": "OriginalName", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "6b111e7f-cf3a-4fcc-bc41-5f57c08546fd", + "kind": "attribute", + "name": "Technical Data Type", + "public_id": "TechnicalDataType", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "f21edd57-de3b-4ca9-bbb9-b65f350ae37f", + "kind": "attribute", + "name": "Role in Report", + "public_id": "RoleInReport", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "e6e61791-869a-4623-b570-e19a069d75f2", + "kind": "attribute", + "name": "Calculation Rule", + "public_id": "CalculationRule", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "8fce3531-f529-4d4c-9dd4-fe11d003b12d", + "kind": "relation", + "name": "contained in", + "public_id": "ReportAttributeContainedInReport", + "cardinality": { + "min": 1, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "Report Attribute", + "target_asset_type": "Report" + } + }, + { + "id": "48370f94-6bfe-49e7-89fb-6efe159a4e9f", + "kind": "relation", + "name": "is source for", + "public_id": "ReportAttributeIsSourceForReportAttribute", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report Attribute", + "target_asset_type": "Report Attribute" + } + }, + { + "id": "011dc778-2910-49bf-b066-4cd97eba1ae0", + "kind": "relation", + "name": "is source for", + "public_id": "ReportAttributeIsSourceForReportAttribute", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report Attribute", + "target_asset_type": "Report Attribute" + } + }, + { + "id": "ef259b90-efd4-448a-bb03-a218497104f4", + "kind": "relation", + "name": "sourced from", + "public_id": "ReportAttributeSourcedFromDataAttribute", + "cardinality": { + "min": 1, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report Attribute", + "target_asset_type": "Data Attribute" + } + }, + { + "id": "d7a0fd51-6e1d-48cc-aea7-77bc28165a43", + "kind": "relation", + "name": "uses", + "public_id": "ReportUsesReportAttribute", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Report Attribute" + } + }, + { + "id": "be47c90a-5235-480d-8efc-1e77ff0a4aa8", + "kind": "relation", + "name": "qualifies", + "public_id": "BusinessQualifierQualifiesAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Qualifier", + "target_asset_type": "Asset" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-110000000005", + "kind": "asset_type", + "name": "Tableau Server", + "public_id": "TableauServer", + "parent_name": "BI Server", + "attributes": [ + { + "id": "853e1a81-6617-45b8-80b9-9bb24a335ca6", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "4c5925d5-ce13-4d58-8620-041bc26da49b", + "kind": "attribute", + "name": "URL", + "public_id": "Url", + "cardinality": { + "min": 1, + "max": 1 + } + } + ], + "relations": [ + { + "id": "3be054d6-24a3-44fe-b237-84cdfe38e382", + "kind": "relation", + "name": "hosts", + "public_id": "ServerHostsBusinessDimension", + "cardinality": { + "min": 1, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Server", + "target_asset_type": "Business Dimension" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-110000000000", + "kind": "asset_type", + "name": "Tableau Site", + "public_id": "TableauSite", + "parent_name": "BI Folder", + "attributes": [ + { + "id": "760b1acf-669c-4440-93f1-db235c57a95e", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "3d011c50-a96e-4734-89e8-b595a12aa9cf", + "kind": "attribute", + "name": "URL", + "public_id": "Url", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "cdd15738-6238-44df-a2b7-585d7c6aec5a", + "kind": "attribute", + "name": "Original Name", + "public_id": "OriginalName", + "cardinality": { + "min": 1, + "max": 1 + } + } + ], + "relations": [ + { + "id": "b963dece-16fe-4eaf-aca9-fefb00c3ffd3", + "kind": "relation", + "name": "assembles", + "public_id": "BIFolderAssemblesBIFolder", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "BI Folder", + "target_asset_type": "BI Folder" + } + }, + { + "id": "0d937e7d-8263-4129-ad59-53584eb2d40f", + "kind": "relation", + "name": "assembles", + "public_id": "BIFolderAssemblesBIFolder", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "BI Folder", + "target_asset_type": "BI Folder" + } + }, + { + "id": "b26d59bb-bf16-47fb-857b-0b44d6ff7eab", + "kind": "relation", + "name": "hosts", + "public_id": "ServerHostsBusinessDimension", + "cardinality": { + "min": 1, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "Server", + "target_asset_type": "Business Dimension" + } + } + ] + }, + { + "id": "00000000-0000-0000-0001-110000000302", + "kind": "asset_type", + "name": "Tableau Story", + "public_id": "TableauStory", + "parent_name": "Tableau View", + "attributes": [ + { + "id": "019c85f6-b54b-763d-b00b-7ba3c1ca94ef", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "019c85f6-b54b-763d-b00b-7ba3c1ca94f0", + "kind": "attribute", + "name": "URL", + "public_id": "Url", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019c85f6-b54b-763d-b00b-7ba3c1ca94f1", + "kind": "attribute", + "name": "Certified", + "public_id": "Certified", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019c85f6-b54b-763d-b00b-7ba3c1ca94f2", + "kind": "attribute", + "name": "Original Name", + "public_id": "OriginalName", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019c85f6-b54b-763d-b00b-7ba3c1ca94f3", + "kind": "attribute", + "name": "Report Image", + "public_id": "ReportImage", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019c85f6-b54b-763d-b00b-7ba3c1ca94f4", + "kind": "attribute", + "name": "Visits count", + "public_id": "VisitsCount", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019c85f6-b54b-763d-b00b-7ba3c1ca94f5", + "kind": "attribute", + "name": "Document creation date", + "public_id": "DocumentCreationDate", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019c85f6-b54b-763d-b00b-7ba3c1ca94f6", + "kind": "attribute", + "name": "Document modification date", + "public_id": "DocumentModificationDate", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019c85f6-b54b-763d-b00b-7ba3c1ca94f7", + "kind": "attribute", + "name": "Visible on server", + "public_id": "VisibleOnServer", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019c85f6-b54b-763d-b00b-7ba3c1ca9500", + "kind": "attribute", + "name": "Owner in Source", + "public_id": "OwnerInSource", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "019c85f6-b54b-763d-b00b-7ba3c1ca94f8", + "kind": "relation", + "name": "groups", + "public_id": "ReportGroupsReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Report" + } + }, + { + "id": "019c85f6-b54b-763d-b00b-7ba3c1ca94f9", + "kind": "relation", + "name": "groups", + "public_id": "ReportGroupsReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Report" + } + }, + { + "id": "019c85f6-b54b-763d-b00b-7ba3c1ca94fa", + "kind": "relation", + "name": "related to", + "public_id": "ReportRelatedToBusinessAsset", + "cardinality": { + "min": 1, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Business Asset" + } + }, + { + "id": "019c85f6-b54b-763d-b00b-7ba3c1ca94fb", + "kind": "relation", + "name": "related to", + "public_id": "ReportRelatedToBusinessAsset", + "cardinality": { + "min": 1, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Business Asset" + } + }, + { + "id": "019c85f6-b54b-763d-b00b-7ba3c1ca94fc", + "kind": "relation", + "name": "uses", + "public_id": "ReportUsesReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Report" + } + }, + { + "id": "019c85f6-b54b-763d-b00b-7ba3c1ca94fd", + "kind": "relation", + "name": "uses", + "public_id": "ReportUsesReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Report" + } + }, + { + "id": "019c85f6-b54b-763d-b00b-7ba3c1ca94fe", + "kind": "relation", + "name": "uses", + "public_id": "ReportUsesReportAttribute", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Report Attribute" + } + }, + { + "id": "019c85f6-b54b-763d-b00b-7ba3c1ca94ff", + "kind": "relation", + "name": "uses", + "public_id": "ReportUsesDataAttribute", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Data Attribute" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-110000000003", + "kind": "asset_type", + "name": "Tableau View", + "public_id": "TableauView", + "parent_name": "BI Report", + "attributes": [ + { + "id": "80aa8e31-a69c-43e4-bb4a-315080f32f8a", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "6083847c-391a-4bb1-9530-7e2233829b6a", + "kind": "attribute", + "name": "URL", + "public_id": "Url", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "3ecf7af6-81ac-4a02-b022-ba9dd1ae1eda", + "kind": "attribute", + "name": "Certified", + "public_id": "Certified", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "9fab6988-59a9-4818-9876-e7a8548f6b21", + "kind": "attribute", + "name": "Original Name", + "public_id": "OriginalName", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "d8144ef7-86b8-4c3e-8418-a3bc26844296", + "kind": "attribute", + "name": "Report Image", + "public_id": "ReportImage", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "31fad8b9-308c-46e1-a162-5ddb28115c2d", + "kind": "attribute", + "name": "Visits count", + "public_id": "VisitsCount", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "6aa25f68-f594-4052-9019-028adcfc6637", + "kind": "attribute", + "name": "Document creation date", + "public_id": "DocumentCreationDate", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "d85ce078-36f0-4699-aa82-2b35f30a9c7a", + "kind": "attribute", + "name": "Document modification date", + "public_id": "DocumentModificationDate", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "a043c706-4b55-4704-99b9-6c4aa6de0108", + "kind": "attribute", + "name": "Visible on server", + "public_id": "VisibleOnServer", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-aacd-7edc-9e7e-42ccbec36408", + "kind": "attribute", + "name": "Owner in Source", + "public_id": "OwnerInSource", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "44cfee8c-336e-4fae-bbcc-8e4a2e8faf41", + "kind": "relation", + "name": "groups", + "public_id": "ReportGroupsReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Report" + } + }, + { + "id": "31799477-e4c0-4a39-9e94-93a797be3fe1", + "kind": "relation", + "name": "groups", + "public_id": "ReportGroupsReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Report" + } + }, + { + "id": "f27c889e-b2a5-4524-a34a-aa764f6b7465", + "kind": "relation", + "name": "related to", + "public_id": "ReportRelatedToBusinessAsset", + "cardinality": { + "min": 1, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Business Asset" + } + }, + { + "id": "b98814db-c0fe-4d3f-be46-be81da214b68", + "kind": "relation", + "name": "related to", + "public_id": "ReportRelatedToBusinessAsset", + "cardinality": { + "min": 1, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Business Asset" + } + }, + { + "id": "b5b5a0cc-04df-43f8-aa74-9896b4e0ab4f", + "kind": "relation", + "name": "uses", + "public_id": "ReportUsesReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Report" + } + }, + { + "id": "fe47439e-05bd-40f2-ac23-2408e4d71bc4", + "kind": "relation", + "name": "uses", + "public_id": "ReportUsesReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Report" + } + }, + { + "id": "cce58fff-c34c-42dd-8269-c28f2891ff35", + "kind": "relation", + "name": "uses", + "public_id": "ReportUsesReportAttribute", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Report Attribute" + } + }, + { + "id": "30df09ee-a064-4ef8-b2ac-57e1d8f4ddf5", + "kind": "relation", + "name": "uses", + "public_id": "ReportUsesDataAttribute", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Data Attribute" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-110000000002", + "kind": "asset_type", + "name": "Tableau Workbook", + "public_id": "TableauWorkbook", + "parent_name": "BI Report", + "attributes": [ + { + "id": "427090f0-b81d-40c6-abc1-c59afa3fa493", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "7d3d2ce8-0666-4bfe-be90-c93fdf951da5", + "kind": "attribute", + "name": "Certified", + "public_id": "Certified", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "957dd6fc-cf3f-4aeb-9e26-f055b98a09fe", + "kind": "attribute", + "name": "Original Name", + "public_id": "OriginalName", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "c14e8db5-4081-48fd-bba2-876e44c0ce83", + "kind": "attribute", + "name": "Report Image", + "public_id": "ReportImage", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "b68c17c8-91f4-437c-afaa-46704c13c4f1", + "kind": "attribute", + "name": "Document size", + "public_id": "DocumentSize", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "61c42646-fe79-4b8d-a93c-a82519c4a7bf", + "kind": "attribute", + "name": "Document creation date", + "public_id": "DocumentCreationDate", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "30eaae13-178b-418c-8db5-8c81617bcde1", + "kind": "attribute", + "name": "Document modification date", + "public_id": "DocumentModificationDate", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "f7434ce3-da61-44fa-8aba-98440536056a", + "kind": "attribute", + "name": "URL", + "public_id": "Url", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922077-aaf8-7d4f-9ce5-8444152f73e5", + "kind": "attribute", + "name": "Owner in Source", + "public_id": "OwnerInSource", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019c195a-8e30-7017-b55b-c4848bdcb8e5", + "kind": "attribute", + "name": "Visits count", + "public_id": "VisitsCount", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "b2a9483c-7696-4b1a-baf1-5b7ed1961175", + "kind": "relation", + "name": "groups", + "public_id": "ReportGroupsReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Report" + } + }, + { + "id": "b78591ef-c586-456c-84b0-a64dfb4fff9f", + "kind": "relation", + "name": "groups", + "public_id": "ReportGroupsReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Report" + } + }, + { + "id": "42cc63e5-e6da-4520-a852-4eb42241b754", + "kind": "relation", + "name": "contained in", + "public_id": "ReportAttributeContainedInReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report Attribute", + "target_asset_type": "Report" + } + }, + { + "id": "023dc0b0-bf7f-4510-b9df-a4a8e9817885", + "kind": "relation", + "name": "groups", + "public_id": "BusinessDimensionGroupsReport", + "cardinality": { + "min": 1, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Dimension", + "target_asset_type": "Report" + } + }, + { + "id": "b1076bd7-b9f8-4681-8047-195f47b130eb", + "kind": "relation", + "name": "related to", + "public_id": "ReportRelatedToBusinessAsset", + "cardinality": { + "min": 1, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Business Asset" + } + }, + { + "id": "11aafb44-3003-4f85-ae48-7470a8f9fc47", + "kind": "relation", + "name": "related to", + "public_id": "ReportRelatedToBusinessAsset", + "cardinality": { + "min": 1, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Business Asset" + } + }, + { + "id": "acbf8483-91bd-400e-9127-1b94b7be717a", + "kind": "relation", + "name": "contains", + "public_id": "TableauWorkbookContainsTableauDataModel", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Tableau Workbook", + "target_asset_type": "Tableau Data Model" + } + } + ] + }, + { + "id": "00000000-0000-0000-0001-110000000300", + "kind": "asset_type", + "name": "Tableau Worksheet", + "public_id": "TableauWorksheet", + "parent_name": "Tableau View", + "attributes": [ + { + "id": "019c85f6-b1e3-762b-891b-deaf78eccf49", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "019c85f6-b1e3-762b-891b-deaf78eccf4a", + "kind": "attribute", + "name": "URL", + "public_id": "Url", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019c85f6-b1e3-762b-891b-deaf78eccf4b", + "kind": "attribute", + "name": "Certified", + "public_id": "Certified", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019c85f6-b1e3-762b-891b-deaf78eccf4c", + "kind": "attribute", + "name": "Original Name", + "public_id": "OriginalName", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019c85f6-b1e3-762b-891b-deaf78eccf4d", + "kind": "attribute", + "name": "Report Image", + "public_id": "ReportImage", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019c85f6-b1e3-762b-891b-deaf78eccf4e", + "kind": "attribute", + "name": "Visits count", + "public_id": "VisitsCount", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019c85f6-b1e3-762b-891b-deaf78eccf4f", + "kind": "attribute", + "name": "Document creation date", + "public_id": "DocumentCreationDate", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019c85f6-b1e3-762b-891b-deaf78eccf50", + "kind": "attribute", + "name": "Document modification date", + "public_id": "DocumentModificationDate", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019c85f6-b1e3-762b-891b-deaf78eccf51", + "kind": "attribute", + "name": "Visible on server", + "public_id": "VisibleOnServer", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "019c85f6-b1e3-762b-891b-deaf78eccf5a", + "kind": "attribute", + "name": "Owner in Source", + "public_id": "OwnerInSource", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "019c85f6-b1e3-762b-891b-deaf78eccf52", + "kind": "relation", + "name": "groups", + "public_id": "ReportGroupsReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Report" + } + }, + { + "id": "019c85f6-b1e3-762b-891b-deaf78eccf53", + "kind": "relation", + "name": "groups", + "public_id": "ReportGroupsReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Report" + } + }, + { + "id": "019c85f6-b1e3-762b-891b-deaf78eccf54", + "kind": "relation", + "name": "related to", + "public_id": "ReportRelatedToBusinessAsset", + "cardinality": { + "min": 1, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Business Asset" + } + }, + { + "id": "019c85f6-b1e3-762b-891b-deaf78eccf55", + "kind": "relation", + "name": "related to", + "public_id": "ReportRelatedToBusinessAsset", + "cardinality": { + "min": 1, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Business Asset" + } + }, + { + "id": "019c85f6-b1e3-762b-891b-deaf78eccf56", + "kind": "relation", + "name": "uses", + "public_id": "ReportUsesReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Report" + } + }, + { + "id": "019c85f6-b1e3-762b-891b-deaf78eccf57", + "kind": "relation", + "name": "uses", + "public_id": "ReportUsesReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Report" + } + }, + { + "id": "019c85f6-b1e3-762b-891b-deaf78eccf58", + "kind": "relation", + "name": "uses", + "public_id": "ReportUsesReportAttribute", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Report Attribute" + } + }, + { + "id": "019c85f6-b1e3-762b-891b-deaf78eccf59", + "kind": "relation", + "name": "uses", + "public_id": "ReportUsesDataAttribute", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Data Attribute" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-000000031301", + "kind": "asset_type", + "name": "Technology Asset", + "public_id": "TechnologyAsset", + "parent_name": "Asset", + "attributes": [ + { + "id": "287d2e8b-2ac4-425f-b0b5-78f330ad1d4a", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "9a2b47e6-f5fe-4e27-97fe-e95175f05253", + "kind": "attribute", + "name": "Application Standards", + "public_id": "ApplicationStandards", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "753e4124-2406-4f58-a579-057e3d022700", + "kind": "attribute", + "name": "Application Regulation", + "public_id": "ApplicationRegulation", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "c9db6a5d-f71a-4166-8c97-9a5236cf69ff", + "kind": "attribute", + "name": "Scope", + "public_id": "Scope", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "bd9affa9-c411-46c9-9755-4f148f2d058b", + "kind": "attribute", + "name": "Descriptive Example", + "public_id": "DescriptiveExample", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "6b8ad791-2948-48ee-96dd-3981c2a77255", + "kind": "attribute", + "name": "Location", + "public_id": "Location", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "bc70e254-7934-4a39-83e5-04b7b61aaa96", + "kind": "attribute", + "name": "Note", + "public_id": "Note", + "cardinality": { + "min": 0, + "max": null + } + } + ], + "relations": [ + { + "id": "7c51302a-374a-479f-9380-5b39d4829914", + "kind": "relation", + "name": "implemented in", + "public_id": "DataAssetImplementedInTechnologyAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Asset", + "target_asset_type": "Technology Asset" + } + }, + { + "id": "ce19f5af-b935-4301-b574-fc8059fa4d84", + "kind": "relation", + "name": "system of record for", + "public_id": "TechnologyAssetSystemOfRecordForBusinessTerm", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Technology Asset", + "target_asset_type": "Business Term" + } + }, + { + "id": "eb76c546-96bc-4fe7-b0ad-ef1b27489b5e", + "kind": "relation", + "name": "system of use for", + "public_id": "TechnologyAssetSystemOfUseForBusinessTerm", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Technology Asset", + "target_asset_type": "Business Term" + } + }, + { + "id": "5a7ddcce-ba5c-4cac-99b1-85e2413312b6", + "kind": "relation", + "name": "source system for", + "public_id": "TechnologyAssetSourceSystemForBusinessTerm", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Technology Asset", + "target_asset_type": "Business Term" + } + }, + { + "id": "fbd80dc1-f9bf-474c-9410-eac65f68b283", + "kind": "relation", + "name": "system of record for", + "public_id": "TechnologyAssetSystemOfRecordForDataAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Technology Asset", + "target_asset_type": "Data Asset" + } + }, + { + "id": "931431bd-c396-4eaf-a15a-62ecd63b05fc", + "kind": "relation", + "name": "system of use for", + "public_id": "TechnologyAssetSystemOfUseForDataAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Technology Asset", + "target_asset_type": "Data Asset" + } + }, + { + "id": "2c7f5f12-39ea-4644-9ac8-e73617c858bd", + "kind": "relation", + "name": "source system for", + "public_id": "TechnologyAssetSourceSystemForDataAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Technology Asset", + "target_asset_type": "Data Asset" + } + }, + { + "id": "dc936d76-ec97-4f22-8953-a2e36793cecd", + "kind": "relation", + "name": "impacts", + "public_id": "IssueImpactsAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Issue", + "target_asset_type": "Asset" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-100000000115", + "kind": "asset_type", + "name": "ThoughtSpot Answer", + "public_id": "ThoughtSpotAnswer", + "parent_name": "BI Report", + "attributes": [ + { + "id": "0199b496-15c5-79f9-9463-7cf5d787395f", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0199b496-15c5-79f9-9463-7cf5d7873960", + "kind": "attribute", + "name": "Description from source system", + "public_id": "DescriptionFromSourceSystem", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0199b496-15c5-79f9-9463-7cf5d7873961", + "kind": "attribute", + "name": "Owner in Source", + "public_id": "OwnerInSource", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0199b496-15c5-79f9-9463-7cf5d7873962", + "kind": "attribute", + "name": "Creation Date in Source", + "public_id": "CreationDateInSource", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0199b496-15c5-79f9-9463-7cf5d7873963", + "kind": "attribute", + "name": "Modification Date in Source", + "public_id": "ModificationDateInSource", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0199b496-15c5-79f9-9463-7cf5d7873964", + "kind": "attribute", + "name": "Source Tags", + "public_id": "SourceTags", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0199b496-15c5-79f9-9463-7cf5d7873965", + "kind": "attribute", + "name": "ThoughtSpot Question", + "public_id": "ThoughtSpotQuestion", + "cardinality": { + "min": 0, + "max": null + } + } + ], + "relations": [ + { + "id": "0199b496-15c5-79f9-9463-7cf5d7873966", + "kind": "relation", + "name": "groups", + "public_id": "ReportGroupsReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Report" + } + }, + { + "id": "0199b496-1de3-77b1-abb3-fc01c6eeacaa", + "kind": "relation", + "name": "groups", + "public_id": "BusinessDimensionGroupsReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Dimension", + "target_asset_type": "Report" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-100000000116", + "kind": "asset_type", + "name": "ThoughtSpot Answer Visualization", + "public_id": "ThoughtSpotAnswerVisualization", + "parent_name": "BI Report", + "attributes": [ + { + "id": "0199b496-144f-7c30-bd6b-86363f2890f6", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0199b496-144f-7c30-bd6b-86363f2890f7", + "kind": "attribute", + "name": "Description from source system", + "public_id": "DescriptionFromSourceSystem", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0199b496-144f-7c30-bd6b-86363f2890f8", + "kind": "attribute", + "name": "Table Type", + "public_id": "TableType", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0199b496-144f-7c30-bd6b-86363f2890f9", + "kind": "attribute", + "name": "ThoughtSpot Chart Type", + "public_id": "ThoughtSpotChartType", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0199b496-144f-7c30-bd6b-86363f2890fa", + "kind": "attribute", + "name": "Creation Date in Source", + "public_id": "CreationDateInSource", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0199b496-144f-7c30-bd6b-86363f2890fb", + "kind": "attribute", + "name": "Modification Date in Source", + "public_id": "ModificationDateInSource", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0199b496-144f-7c30-bd6b-86363f2890fc", + "kind": "attribute", + "name": "Source Tags", + "public_id": "SourceTags", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "0199b496-144f-7c30-bd6b-86363f2890fd", + "kind": "relation", + "name": "uses", + "public_id": "ReportUsesDataAttribute", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Data Attribute" + } + }, + { + "id": "0199b496-1db5-7486-bf14-6c3ce6db7bd6", + "kind": "relation", + "name": "groups", + "public_id": "ReportGroupsReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Report" + } + }, + { + "id": "0199b496-1db5-7486-bf14-6c3ce6db7bd7", + "kind": "relation", + "name": "uses", + "public_id": "ReportUsesReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Report" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-100000000112", + "kind": "asset_type", + "name": "ThoughtSpot Connection", + "public_id": "ThoughtSpotConnection", + "parent_name": "BI Data Source", + "attributes": [ + { + "id": "0199b496-1a5c-799c-82dd-9730f695eb3d", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0199b496-1a5c-799c-82dd-9730f695eb3e", + "kind": "attribute", + "name": "Description from source system", + "public_id": "DescriptionFromSourceSystem", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0199b496-1a5c-799c-82dd-9730f695eb3f", + "kind": "attribute", + "name": "Creation Date in Source", + "public_id": "CreationDateInSource", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0199b496-1a5c-799c-82dd-9730f695eb40", + "kind": "attribute", + "name": "Modification Date in Source", + "public_id": "ModificationDateInSource", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0199b496-1a5c-799c-82dd-9730f695eb41", + "kind": "attribute", + "name": "ThoughtSpot Configuration", + "public_id": "ThoughtSpotConfiguration", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "0199b496-1a5c-799c-82dd-9730f695eb42", + "kind": "attribute", + "name": "Source Tags", + "public_id": "SourceTags", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "0199b496-1a5c-799c-82dd-9730f695eb43", + "kind": "relation", + "name": "source", + "public_id": "BusinessDimensionSourceSystem", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Dimension", + "target_asset_type": "System" + } + }, + { + "id": "0199b496-1a5c-799c-82dd-9730f695eb44", + "kind": "relation", + "name": "source system for", + "public_id": "TechnologyAssetSourceSystemForDataAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Technology Asset", + "target_asset_type": "Data Asset" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-100000000119", + "kind": "asset_type", + "name": "ThoughtSpot Data Attribute", + "public_id": "ThoughtSpotDataAttribute", + "parent_name": "BI Data Attribute", + "attributes": [ + { + "id": "0199b496-0ffd-7b30-bc68-1de3682c712c", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0199b496-0ffe-7b3e-bcfa-1c1da459e993", + "kind": "attribute", + "name": "Description from source system", + "public_id": "DescriptionFromSourceSystem", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0199b496-0ffe-7b3e-bcfa-1c1da459e994", + "kind": "attribute", + "name": "Creation Date in Source", + "public_id": "CreationDateInSource", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0199b496-0ffe-7b3e-bcfa-1c1da459e995", + "kind": "attribute", + "name": "Modification Date in Source", + "public_id": "ModificationDateInSource", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0199b496-0ffe-7b3e-bcfa-1c1da459e996", + "kind": "attribute", + "name": "Technical Data Type", + "public_id": "TechnicalDataType", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0199b496-0ffe-7b3e-bcfa-1c1da459e997", + "kind": "attribute", + "name": "Source Tags", + "public_id": "SourceTags", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0199b496-0ffe-7b3e-bcfa-1c1da459e998", + "kind": "attribute", + "name": "Role in Report", + "public_id": "RoleInReport", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "0199b496-0ffe-7b3e-bcfa-1c1da459e999", + "kind": "relation", + "name": "targets", + "public_id": "DataElementTargetsDataElement", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Element", + "target_asset_type": "Data Element" + } + }, + { + "id": "0199b496-1d25-7eb0-b094-6c5259f48ba1", + "kind": "relation", + "name": "contains", + "public_id": "BIDataModelContainsBIDataAttribute", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "BI Data Model", + "target_asset_type": "BI Data Attribute" + } + }, + { + "id": "0199b496-1d25-7eb0-b094-6c5259f48ba2", + "kind": "relation", + "name": "contains", + "public_id": "DataEntityContainsDataAttribute", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Entity", + "target_asset_type": "Data Attribute" + } + }, + { + "id": "0199b496-1d25-7eb0-b094-6c5259f48ba3", + "kind": "relation", + "name": "uses", + "public_id": "ReportUsesDataAttribute", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Data Attribute" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-100000000118", + "kind": "asset_type", + "name": "ThoughtSpot Data Entity", + "public_id": "ThoughtSpotDataEntity", + "parent_name": "BI Data Entity", + "attributes": [ + { + "id": "0199b496-1196-7aa7-987a-6fb98d7370fb", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0199b496-1197-7454-8338-c80bb1a58cdf", + "kind": "attribute", + "name": "Description from source system", + "public_id": "DescriptionFromSourceSystem", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0199b496-1197-7454-8338-c80bb1a58ce0", + "kind": "attribute", + "name": "Creation Date in Source", + "public_id": "CreationDateInSource", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0199b496-1197-7454-8338-c80bb1a58ce1", + "kind": "attribute", + "name": "Modification Date in Source", + "public_id": "ModificationDateInSource", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0199b496-1197-7454-8338-c80bb1a58ce2", + "kind": "attribute", + "name": "Source Type", + "public_id": "SourceType", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0199b496-1197-7454-8338-c80bb1a58ce3", + "kind": "attribute", + "name": "Source Tags", + "public_id": "SourceTags", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "0199b496-1197-7454-8338-c80bb1a58ce4", + "kind": "relation", + "name": "contains", + "public_id": "DataEntityContainsDataAttribute", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Entity", + "target_asset_type": "Data Attribute" + } + }, + { + "id": "0199b496-1d65-75cb-8a8e-3c2ec4b54c7b", + "kind": "relation", + "name": "source system for", + "public_id": "TechnologyAssetSourceSystemForDataAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Technology Asset", + "target_asset_type": "Data Asset" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-100000000117", + "kind": "asset_type", + "name": "ThoughtSpot Data Model", + "public_id": "ThoughtSpotDataModel", + "parent_name": "BI Data Model", + "attributes": [ + { + "id": "0199b496-12fe-72c3-8905-54b6676596ce", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0199b496-12fe-72c3-8905-54b6676596cf", + "kind": "attribute", + "name": "Description from source system", + "public_id": "DescriptionFromSourceSystem", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0199b496-12fe-72c3-8905-54b6676596d0", + "kind": "attribute", + "name": "Creation Date in Source", + "public_id": "CreationDateInSource", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0199b496-12fe-72c3-8905-54b6676596d1", + "kind": "attribute", + "name": "Modification Date in Source", + "public_id": "ModificationDateInSource", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0199b496-12fe-72c3-8905-54b6676596d2", + "kind": "attribute", + "name": "Source Type", + "public_id": "SourceType", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0199b496-12fe-72c3-8905-54b6676596d3", + "kind": "attribute", + "name": "Source Tags", + "public_id": "SourceTags", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "0199b496-12fe-72c3-8905-54b6676596d4", + "kind": "relation", + "name": "contains", + "public_id": "BIDataModelContainsBIDataAttribute", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "BI Data Model", + "target_asset_type": "BI Data Attribute" + } + }, + { + "id": "0199b496-1d96-718e-b7f8-1a556f1d9cdd", + "kind": "relation", + "name": "contains", + "public_id": "BIFolderContainsDataAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "BI Folder", + "target_asset_type": "Data Asset" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-100000000114", + "kind": "asset_type", + "name": "ThoughtSpot Liveboard", + "public_id": "ThoughtSpotLiveboard", + "parent_name": "BI Report", + "attributes": [ + { + "id": "0199b496-1737-746f-a7b5-603c3a5c0ea8", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0199b496-1737-746f-a7b5-603c3a5c0ea9", + "kind": "attribute", + "name": "Description from source system", + "public_id": "DescriptionFromSourceSystem", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0199b496-1737-746f-a7b5-603c3a5c0eaa", + "kind": "attribute", + "name": "URL", + "public_id": "Url", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0199b496-1737-746f-a7b5-603c3a5c0eab", + "kind": "attribute", + "name": "Owner in Source", + "public_id": "OwnerInSource", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0199b496-1737-746f-a7b5-603c3a5c0eac", + "kind": "attribute", + "name": "Creation Date in Source", + "public_id": "CreationDateInSource", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0199b496-1737-746f-a7b5-603c3a5c0ead", + "kind": "attribute", + "name": "Modification Date in Source", + "public_id": "ModificationDateInSource", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0199b496-1737-746f-a7b5-603c3a5c0eae", + "kind": "attribute", + "name": "State", + "public_id": "State", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0199b496-1737-746f-a7b5-603c3a5c0eaf", + "kind": "attribute", + "name": "Source Tags", + "public_id": "SourceTags", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "0199b496-1737-746f-a7b5-603c3a5c0eb0", + "kind": "relation", + "name": "uses", + "public_id": "ReportUsesReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Report", + "target_asset_type": "Report" + } + }, + { + "id": "0199b496-1dfd-7494-a587-ad9a5dc4880f", + "kind": "relation", + "name": "groups", + "public_id": "BusinessDimensionGroupsReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Dimension", + "target_asset_type": "Report" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-100000000113", + "kind": "asset_type", + "name": "ThoughtSpot Org", + "public_id": "ThoughtSpotOrg", + "parent_name": "BI Folder", + "attributes": [ + { + "id": "0199b496-18bb-7a7e-ba1f-cd3d7b6dc9cc", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0199b496-18bb-7a7e-ba1f-cd3d7b6dc9cd", + "kind": "attribute", + "name": "Description from source system", + "public_id": "DescriptionFromSourceSystem", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0199b496-18bb-7a7e-ba1f-cd3d7b6dc9ce", + "kind": "attribute", + "name": "Creation Date in Source", + "public_id": "CreationDateInSource", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0199b496-18bb-7a7e-ba1f-cd3d7b6dc9cf", + "kind": "attribute", + "name": "Modification Date in Source", + "public_id": "ModificationDateInSource", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "0199b496-18bb-7a7e-ba1f-cd3d7b6dc9d0", + "kind": "relation", + "name": "groups", + "public_id": "BusinessDimensionGroupsReport", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Dimension", + "target_asset_type": "Report" + } + }, + { + "id": "0199b496-18bb-7a7e-ba1f-cd3d7b6dc9d2", + "kind": "relation", + "name": "contains", + "public_id": "BIFolderContainsDataAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "BI Folder", + "target_asset_type": "Data Asset" + } + }, + { + "id": "0199b496-1e18-79b4-adbe-36a3a2ca748f", + "kind": "relation", + "name": "hosts", + "public_id": "ServerHostsBusinessDimension", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Server", + "target_asset_type": "Business Dimension" + } + }, + { + "id": "0199b496-1e18-79b4-adbe-36a3a2ca7490", + "kind": "relation", + "name": "source", + "public_id": "BusinessDimensionSourceSystem", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Dimension", + "target_asset_type": "System" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-100000000111", + "kind": "asset_type", + "name": "ThoughtSpot Tenant", + "public_id": "ThoughtSpotTenant", + "parent_name": "BI Server", + "attributes": [ + { + "id": "0199b496-1be2-735b-b67a-b569e596834a", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0199b496-1be2-735b-b67a-b569e596834b", + "kind": "attribute", + "name": "URL", + "public_id": "Url", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [ + { + "id": "0199b496-1be2-735b-b67a-b569e596834c", + "kind": "relation", + "name": "groups", + "public_id": "TechnologyAssetGroupsTechnologyAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Technology Asset", + "target_asset_type": "Technology Asset" + } + }, + { + "id": "0199b496-1be2-735b-b67a-b569e596834d", + "kind": "relation", + "name": "hosts", + "public_id": "ServerHostsBusinessDimension", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Server", + "target_asset_type": "Business Dimension" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-100000000076", + "kind": "asset_type", + "name": "Transformation Model", + "public_id": "TransformationModel", + "parent_name": "Model", + "attributes": [ + { + "id": "01957b35-c738-7d56-a5ec-9bb225e026f2", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": 1 + } + } + ], + "relations": [] + }, + { + "id": "00000000-0000-0000-0000-090000010013", + "kind": "asset_type", + "name": "User Defined Rule Score", + "public_id": "UserDefinedRuleScore", + "parent_name": "Data Quality Metric", + "attributes": [ + { + "id": "01922077-c765-7e17-b578-167af3fc7236", + "kind": "attribute", + "name": "Rows Failed", + "public_id": "RowsFailed", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "01922077-c765-7e17-b578-167af3fc7237", + "kind": "attribute", + "name": "Exception Scenario", + "public_id": "ExceptionScenario", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "01922077-c765-7e17-b578-167af3fc7238", + "kind": "attribute", + "name": "Loaded Rows", + "public_id": "LoadedRows", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "01922077-c765-7e17-b578-167af3fc7239", + "kind": "attribute", + "name": "Measurement", + "public_id": "Measurement", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "01922077-c765-7e17-b578-167af3fc723a", + "kind": "attribute", + "name": "Passing Fraction", + "public_id": "PassingFraction", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "01922077-c765-7e17-b578-167af3fc723b", + "kind": "attribute", + "name": "Score Status", + "public_id": "ScoreStatus", + "cardinality": { + "min": 1, + "max": 1 + } + }, + { + "id": "01922077-c765-7e17-b578-167af3fc723c", + "kind": "attribute", + "name": "Score Details", + "public_id": "ScoreDetails", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "01922077-c765-7e17-b578-167af3fc723d", + "kind": "attribute", + "name": "Rule Weight", + "public_id": "RuleWeight", + "cardinality": { + "min": 1, + "max": 1 + } + } + ], + "relations": [ + { + "id": "01922077-d867-7084-99fe-a3d90a18c55d", + "kind": "relation", + "name": "executed by", + "public_id": "DataQualityRuleExecutedByDataQualityMetric", + "cardinality": { + "min": 1, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "Data Quality Rule", + "target_asset_type": "Data Quality Metric" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-000000005119", + "kind": "asset_type", + "name": "Validation Rule", + "public_id": "ValidationRule", + "parent_name": "Rule", + "attributes": [ + { + "id": "9892a36c-0fcd-4c65-bff9-50cf4381e4b8", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "560f2a6a-ff0a-4b62-8961-502eadc40aa7", + "kind": "attribute", + "name": "Validation Script", + "public_id": "ValidationScript", + "cardinality": { + "min": 1, + "max": 1 + } + } + ], + "relations": [ + { + "id": "4b6422db-b168-4b00-97de-e70702a08d13", + "kind": "relation", + "name": "impacts", + "public_id": "IssueImpactsAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Issue", + "target_asset_type": "Asset" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-000000031403", + "kind": "asset_type", + "name": "Vendor", + "public_id": "Vendor", + "parent_name": "Party", + "attributes": [ + { + "id": "01922078-0163-7c4e-b606-ededc92b8d58", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "01922078-0163-7c4e-b606-ededc92b8d59", + "kind": "attribute", + "name": "Party Role Type", + "public_id": "PartyRoleType", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "01922078-0163-7c4e-b606-ededc92b8d5c", + "kind": "attribute", + "name": "Contact Person Name", + "public_id": "ContactPersonName", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "01922078-0163-7c4e-b606-ededc92b8d5d", + "kind": "attribute", + "name": "Contact Person Email", + "public_id": "ContactPersonEmail", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "01922078-0163-7c4e-b606-ededc92b8d5e", + "kind": "attribute", + "name": "Contact Person Telephone", + "public_id": "ContactPersonTelephone", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "01922078-0163-7c4e-b606-ededc92b8d5f", + "kind": "attribute", + "name": "Contact Person Address", + "public_id": "ContactPersonAddress", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "01922078-0163-7c4e-b606-ededc92b8d60", + "kind": "attribute", + "name": "DPO Name", + "public_id": "DpoName", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "01922078-0163-7c4e-b606-ededc92b8d61", + "kind": "attribute", + "name": "DPO Email", + "public_id": "DpoEmail", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "01922078-0163-7c4e-b606-ededc92b8d62", + "kind": "attribute", + "name": "DPO Telephone", + "public_id": "DpoTelephone", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "01922078-0163-7c4e-b606-ededc92b8d63", + "kind": "attribute", + "name": "DPO Address", + "public_id": "DpoAddress", + "cardinality": { + "min": 0, + "max": null + } + }, + { + "id": "01922078-0163-7c4e-b606-ededc92b8d64", + "kind": "attribute", + "name": "Due Diligence", + "public_id": "DueDiligence", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "01922078-0163-7c4e-b606-ededc92b8d66", + "kind": "attribute", + "name": "Certificates", + "public_id": "Certificates", + "cardinality": { + "min": 1, + "max": null + } + }, + { + "id": "01922078-0164-7021-b623-29d084815016", + "kind": "attribute", + "name": "Note", + "public_id": "Note", + "cardinality": { + "min": 0, + "max": null + } + } + ], + "relations": [ + { + "id": "01922077-f5fa-7a99-b66f-743643aae6dd", + "kind": "relation", + "name": "is provided by", + "public_id": "AIModelProvidedByVendor", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "AI Model Version", + "target_asset_type": "Vendor" + } + }, + { + "id": "01922078-0163-7c4e-b606-ededc92b8d5a", + "kind": "relation", + "name": "groups", + "public_id": "BusinessAssetGroupsBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Asset", + "target_asset_type": "Business Asset" + } + }, + { + "id": "01922078-0163-7c4e-b606-ededc92b8d5b", + "kind": "relation", + "name": "groups", + "public_id": "BusinessAssetGroupsBusinessAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Asset", + "target_asset_type": "Business Asset" + } + }, + { + "id": "01922078-0163-7c4e-b606-ededc92b8d65", + "kind": "relation", + "name": "complies to", + "public_id": "AssetCompliesToGovernanceAsset", + "cardinality": { + "min": 1, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Asset", + "target_asset_type": "Governance Asset" + } + }, + { + "id": "01922078-0163-7c4e-b606-ededc92b8d67", + "kind": "relation", + "name": "is requested by", + "public_id": "DataSharingAgreementIsRequestedByBusinessDimension", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Sharing Agreement", + "target_asset_type": "Business Dimension" + } + }, + { + "id": "01922078-0164-7021-b623-29d084815017", + "kind": "relation", + "name": "is located in", + "public_id": "BusinessDimensionIsLocatedInJurisdiction", + "cardinality": { + "min": 1, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Dimension", + "target_asset_type": "Jurisdiction" + } + }, + { + "id": "01922078-0164-7021-b623-29d084815018", + "kind": "relation", + "name": "receives service/product by", + "public_id": "LineOfBusinessReceivesServiceProductByParty", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Line of Business", + "target_asset_type": "Party" + } + }, + { + "id": "01922078-0164-7021-b623-29d084815019", + "kind": "relation", + "name": "is accepted by", + "public_id": "DataSharingAgreementIsAcceptedByBusinessDimension", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Data Sharing Agreement", + "target_asset_type": "Business Dimension" + } + }, + { + "id": "01922078-0164-7021-b623-29d08481501a", + "kind": "relation", + "name": "recipient", + "public_id": "BusinessProcessRecipientParty", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Process", + "target_asset_type": "Party" + } + }, + { + "id": "01922078-0164-7021-b623-29d08481501b", + "kind": "relation", + "name": "processor", + "public_id": "BusinessProcessProcessorParty", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Process", + "target_asset_type": "Party" + } + }, + { + "id": "01922078-0164-7021-b623-29d08481501c", + "kind": "relation", + "name": "controller", + "public_id": "BusinessProcessControllerParty", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Process", + "target_asset_type": "Party" + } + }, + { + "id": "01922078-0164-7021-b623-29d08481501d", + "kind": "relation", + "name": "joint controller", + "public_id": "BusinessProcessJointControllerParty", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Business Process", + "target_asset_type": "Party" + } + }, + { + "id": "01922078-0164-7021-b623-29d08481501e", + "kind": "relation", + "name": "is owned by", + "public_id": "TechnologyAssetIsOwnedByParty", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Technology Asset", + "target_asset_type": "Party" + } + }, + { + "id": "01922078-0164-7021-b623-29d08481501f", + "kind": "relation", + "name": "is potentially impacted by", + "public_id": "AssetIsPotentiallyImpactedByRisk", + "cardinality": { + "min": 1, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Asset", + "target_asset_type": "Risk" + } + }, + { + "id": "0194c707-2a22-78a4-9174-6286e3f22dcb", + "kind": "relation", + "name": "provides", + "public_id": "ProviderOfDataProduct", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Vendor", + "target_asset_type": "Data Product" + } + }, + { + "id": "019ccde7-d1f2-738a-9a7e-e4021197c4a2", + "kind": "relation", + "name": "is provided by", + "public_id": "BaseModelProvidedByVendor", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "AI Base Model", + "target_asset_type": "Vendor" + } + } + ] + }, + { + "id": "00000000-0000-0000-0000-000000031404", + "kind": "asset_type", + "name": "Vertex AI Model Version", + "public_id": "VertexAIModel", + "parent_name": "AI Model Version", + "attributes": [ + { + "id": "01922078-04ab-7441-9fbd-9bcfaa4ed7f7", + "kind": "attribute", + "name": "Description", + "public_id": "Description", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922078-04ab-7441-9fbd-9bcfaa4ed7f8", + "kind": "attribute", + "name": "Model Accuracy", + "public_id": "ModelAccuracy", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922078-04ab-7441-9fbd-9bcfaa4ed7f9", + "kind": "attribute", + "name": "Model Precision", + "public_id": "ModelPrecision", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922078-04ab-7441-9fbd-9bcfaa4ed7fa", + "kind": "attribute", + "name": "Mean Squared Error", + "public_id": "MeanSquaredError", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922078-04ab-7441-9fbd-9bcfaa4ed7fb", + "kind": "attribute", + "name": "Mean Absolute Error", + "public_id": "MeanAbsoluteError", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922078-04ab-7441-9fbd-9bcfaa4ed7fc", + "kind": "attribute", + "name": "Model Type", + "public_id": "ModelType", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922078-04ab-7441-9fbd-9bcfaa4ed7fe", + "kind": "attribute", + "name": "Feature Importance", + "public_id": "FeatureImportance", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922078-04ab-7441-9fbd-9bcfaa4ed800", + "kind": "attribute", + "name": "Version", + "public_id": "Version", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922078-04ab-7441-9fbd-9bcfaa4ed801", + "kind": "attribute", + "name": "Description from source system", + "public_id": "DescriptionFromSourceSystem", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "01922078-04ab-7441-9fbd-9bcfaa4ed802", + "kind": "attribute", + "name": "Repository", + "public_id": "Repository", + "cardinality": { + "min": 0, + "max": 1 + } + }, + { + "id": "0199b495-e7b5-7e01-8df0-8ff9a8836171", + "kind": "attribute", + "name": "Required Content Filtering", + "public_id": "ContentFilter", + "cardinality": { + "min": 0, + "max": null + } + } + ], + "relations": [ + { + "id": "01922078-04ab-7441-9fbd-9bcfaa4ed7ff", + "kind": "relation", + "name": "uses", + "public_id": "AIUseCaseUsesAIModel", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "AI Use Case", + "target_asset_type": "AI Model Version" + } + }, + { + "id": "01922078-04ab-7441-9fbd-9bcfaa4ed803", + "kind": "relation", + "name": "trained by", + "public_id": "AIModelTrainedByAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "AI Model Version", + "target_asset_type": "Asset" + } + }, + { + "id": "01922078-04ab-7441-9fbd-9bcfaa4ed806", + "kind": "relation", + "name": "is provided by", + "public_id": "AIModelProvidedByVendor", + "cardinality": { + "min": 0, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "AI Model Version", + "target_asset_type": "Vendor" + } + }, + { + "id": "01922078-04ab-7441-9fbd-9bcfaa4ed807", + "kind": "relation", + "name": "uses", + "public_id": "AIModelUsesAIModel", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "AI Model Version", + "target_asset_type": "AI Model Version" + } + }, + { + "id": "01922078-04ab-7441-9fbd-9bcfaa4ed808", + "kind": "relation", + "name": "uses", + "public_id": "AIModelUsesAIModel", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "AI Model Version", + "target_asset_type": "AI Model Version" + } + }, + { + "id": "01922078-0cbe-708b-a754-0d28ef6dfdd8", + "kind": "relation", + "name": "complies to", + "public_id": "AssetCompliesToGovernanceAsset", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "Asset", + "target_asset_type": "Governance Asset" + } + }, + { + "id": "01992462-0f1d-7328-a064-ed773a41e5f6", + "kind": "relation", + "name": "contains", + "public_id": "AIModelContainsFileContainer", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "AI Model Version", + "target_asset_type": "Storage Container" + } + }, + { + "id": "01992462-1e2c-7769-a782-7780a95dfeca", + "kind": "relation", + "name": "deploys", + "public_id": "AIProjectDeploysAIModel", + "cardinality": { + "min": 0, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "AI Project", + "target_asset_type": "AI Model Version" + } + }, + { + "id": "019ccde7-cd57-70a3-bd29-14088a1c6ab9", + "kind": "relation", + "name": "has version", + "public_id": "ModelHasVersion", + "cardinality": { + "min": 0, + "max": 1 + }, + "edge": { + "direction": null, + "source_asset_type": "AI Base Model", + "target_asset_type": "AI Model Version" + } + }, + { + "id": "019ccde7-cd58-7521-9b3b-a034799f9adf", + "kind": "relation", + "name": "is deployed by", + "public_id": "ModelVersionIsDeployedByModelDeployment", + "cardinality": { + "min": 0, + "max": null + }, + "edge": { + "direction": null, + "source_asset_type": "AI Model Version", + "target_asset_type": "AI Model Deployment" + } + } + ] + } + ], + "views": [ + { + "id": "a4a92ff7-9af5-481d-83c1-b957807c0a91", + "name": "Access Requests", + "location": "catalog|access-requests", + "type": "ASSETTABLE", + "assignment_asset_types": [] + }, + { + "id": "58b13641-15aa-4efc-bb3a-c4068dde3935", + "name": "Acronyms", + "location": "glossary", + "type": "ASSETTABLE", + "assignment_asset_types": [] + }, + { + "id": "28d5eabf-4d27-490a-a59a-98687eca9c55", + "name": "All Data Assets", + "location": "catalog|data-dictionary", + "type": "ASSETTABLE", + "assignment_asset_types": [] + }, + { + "id": "752a04b5-1c05-4d32-98e4-d422ab492ef1", + "name": "All Glossaries", + "location": "glossary|glossaries", + "type": "DOMAINTABLE", + "assignment_asset_types": [] + }, + { + "id": "846d55c7-5efd-4f2e-a223-d2e7eb106f0a", + "name": "All Governance Assets", + "location": "policy-manager", + "type": "ASSETTABLE", + "assignment_asset_types": [] + }, + { + "id": "b773fc26-d09e-45d1-8a82-cf36ba8cdfd1", + "name": "All Hierarchies", + "location": "reference-data|hierarchies", + "type": "DOMAINTABLE", + "assignment_asset_types": [] + }, + { + "id": "a35adb6b-794d-45c0-aea8-8b03df3eaea9", + "name": "All Issues", + "location": "data-helpdesk", + "type": "ASSETTABLE", + "assignment_asset_types": [] + }, + { + "id": "c57a1955-ca72-4771-a1b1-bbcec84c13e9", + "name": "All Technology Assets", + "location": "catalog|technology-assets", + "type": "ASSETTABLE", + "assignment_asset_types": [] + }, + { + "id": "4ef0e45c-f775-4342-b0ea-bc69dd3e58f0", + "name": "All assets", + "location": "global-view", + "type": "ASSETTABLE", + "assignment_asset_types": [] + }, + { + "id": "675ee672-70af-412b-bc6d-3a19778c3eca", + "name": "All business assets", + "location": "glossary", + "type": "ASSETTABLE", + "assignment_asset_types": [] + }, + { + "id": "00000000-0000-0000-0000-000000040018", + "name": "All reports", + "location": "catalog|reports", + "type": "ASSETTABLE", + "assignment_asset_types": [] + }, + { + "id": "ca344719-7c7a-4bfa-8bf4-bdc3d2d84d12", + "name": "All schemas", + "location": "catalog|data-dictionary", + "type": "ASSETTABLE", + "assignment_asset_types": [] + }, + { + "id": "c03b47a9-764d-4176-8d80-e743682044c9", + "name": "Approved assets", + "location": "glossary", + "type": "ASSETTABLE", + "assignment_asset_types": [] + }, + { + "id": "70abeb27-661e-4dca-b682-8aecbf99cb37", + "name": "Business Lineage", + "location": "diagram", + "type": "DIAGRAM", + "assignment_asset_types": [ + "Mapping Specification", + "Data Structure", + "Business Asset" + ] + }, + { + "id": "6154c36b-234d-4bbc-93fd-af015a5d9cb1", + "name": "Business Process", + "location": "stewardship", + "type": "ASSETTABLE", + "assignment_asset_types": [] + }, + { + "id": "239f570a-ad57-4ee2-a725-3f264cca0da8", + "name": "Business Terms", + "location": "glossary", + "type": "ASSETTABLE", + "assignment_asset_types": [] + }, + { + "id": "00000000-0000-0000-0000-000000040034", + "name": "Catalog Lineage 2020.12", + "location": "diagram", + "type": "DIAGRAM", + "assignment_asset_types": [ + "Mapping Specification", + "Business Term", + "Schema", + "Data Usage", + "Data Set", + "Table", + "Column", + "Business Dimension", + "Technology Asset", + "System", + "Data Model", + "Data Attribute", + "Server", + "Data Entity", + "Report", + "File", + "Report Attribute", + "Directory", + "File Group", + "S3 Bucket", + "Field Mapping" + ] + }, + { + "id": "00000000-0000-0000-0000-000000040033", + "name": "Catalog Lineage 5.7", + "location": "diagram", + "type": "DIAGRAM", + "assignment_asset_types": [ + "Mapping Specification", + "Business Term", + "Schema", + "Data Usage", + "Data Set", + "Table", + "Column", + "Business Dimension", + "Technology Asset", + "System", + "Data Model", + "Data Attribute", + "Server", + "Data Entity", + "Report", + "File", + "Report Attribute", + "Directory", + "File Group", + "S3 Bucket", + "Field Mapping" + ] + }, + { + "id": "aab62bea-4741-4c05-bb10-8a89cebf03d0", + "name": "Code Sets", + "location": "reference-data", + "type": "ASSETTABLE", + "assignment_asset_types": [] + }, + { + "id": "312e181b-6a7a-4aca-83cc-6af43405be0b", + "name": "Code Value Hierarchy with Code Set and Business Terms", + "location": "diagram", + "type": "DIAGRAM", + "assignment_asset_types": [ + "Code Value", + "Code Set", + "Business Term" + ] + }, + { + "id": "2ab0b0fe-d70f-431f-b0cf-d6fff38f45ab", + "name": "Code Values", + "location": "reference-data", + "type": "ASSETTABLE", + "assignment_asset_types": [] + }, + { + "id": "00000000-0000-0000-0000-000000110002", + "name": "Dashboard", + "location": "Dashboard|Content", + "type": "DASHBOARD", + "assignment_asset_types": [] + }, + { + "id": "d5a83564-7f08-4cca-9493-36277eab9fc1", + "name": "Data Category", + "location": "stewardship", + "type": "ASSETTABLE", + "assignment_asset_types": [] + }, + { + "id": "00000000-0000-0000-2000-000000000001", + "name": "Data Marketplace", + "location": "QuickFilter|DataMarketplace|Content", + "type": "SEARCH", + "assignment_asset_types": [] + }, + { + "id": "095929af-389c-4e8e-8184-2eadde5c9ef2", + "name": "Data Quality", + "location": "data-helpdesk|data-quality", + "type": "ASSETTABLE", + "assignment_asset_types": [] + }, + { + "id": "dbd41dc7-383a-40be-9568-26238c00f0e7", + "name": "Data Quality Dimensions", + "location": "data-helpdesk|data-quality", + "type": "ASSETTABLE", + "assignment_asset_types": [] + }, + { + "id": "00000000-0000-0000-2000-000000000002", + "name": "Data Sets", + "location": "QuickFilter|DataMarketplace|Content", + "type": "SEARCH", + "assignment_asset_types": [] + }, + { + "id": "6ee3b8d4-ab89-4f62-92c3-8307de4b0b9f", + "name": "Data Sets", + "location": "catalog|data-sets", + "type": "ASSETTABLE", + "assignment_asset_types": [] + }, + { + "id": "a859b3a3-73f4-48b8-a527-a6d7b7ed0b6e", + "name": "Data Sources", + "location": "catalog|data-sources", + "type": "ASSETTABLE", + "assignment_asset_types": [] + }, + { + "id": "97874496-b80b-477b-902a-d025b1dc04e9", + "name": "Groups Hierarchy", + "location": "diagram", + "type": "DIAGRAM", + "assignment_asset_types": [ + "Business Asset" + ] + }, + { + "id": "00000000-0000-0000-0000-000000040040", + "name": "Guided Stewardship - Data Concept", + "location": "diagram", + "type": "DIAGRAM", + "assignment_asset_types": [ + "Data Concept" + ] + }, + { + "id": "00000000-0000-0000-0000-000000040041", + "name": "Guided Stewardship View", + "location": "diagram", + "type": "DIAGRAM", + "assignment_asset_types": [ + "Data Model", + "Data Entity", + "Data Attribute", + "Line of Business", + "Data Domain" + ] + }, + { + "id": "0627298c-90b1-45dd-ac00-f1a9bdbdfb9d", + "name": "In Progress", + "location": "glossary", + "type": "ASSETTABLE", + "assignment_asset_types": [] + }, + { + "id": "8afa144f-edb8-4ad6-b1f9-03cd1c8549f3", + "name": "Issue tracking", + "location": "diagram", + "type": "DIAGRAM", + "assignment_asset_types": [ + "Issue", + "Governance Asset" + ] + }, + { + "id": "b06e59ef-ddc4-4b2d-b6d5-56ca5163e5bc", + "name": "Line of Business", + "location": "stewardship", + "type": "ASSETTABLE", + "assignment_asset_types": [] + }, + { + "id": "a06f1049-3780-4a35-8a13-02a4831ea700", + "name": "My Issues", + "location": "data-helpdesk", + "type": "ASSETTABLE", + "assignment_asset_types": [] + }, + { + "id": "6ac818ff-41f0-4b3b-9260-68a80894bf8d", + "name": "New Issues", + "location": "data-helpdesk", + "type": "ASSETTABLE", + "assignment_asset_types": [] + }, + { + "id": "01993e9d-84b8-762f-b6f7-c33cf4327f46", + "name": "PFM-wide Content Types", + "location": "domain-assets", + "type": "ASSETTABLE", + "assignment_asset_types": [] + }, + { + "id": "10bbcb65-f10c-4ec3-b720-dc06f878dde1", + "name": "Physical Data Connector", + "location": "physical-data-connector", + "type": "ASSETTABLE", + "assignment_asset_types": [] + }, + { + "id": "e087281f-ae85-4c84-94f6-ed4c4eaf5939", + "name": "Policies & Standards", + "location": "policy-manager", + "type": "ASSETTABLE", + "assignment_asset_types": [] + }, + { + "id": "00000000-0000-0000-2001-000000000007", + "name": "QUICK ACCESS", + "location": "QuickAccess|Tabs", + "type": "SEARCH", + "assignment_asset_types": [] + }, + { + "id": "00000000-0000-0000-2000-000000000003", + "name": "Reports", + "location": "QuickFilter|DataMarketplace|Content", + "type": "SEARCH", + "assignment_asset_types": [] + }, + { + "id": "b58fa4f7-f575-484b-9b97-959f99000abc", + "name": "Rules", + "location": "policy-manager", + "type": "ASSETTABLE", + "assignment_asset_types": [] + }, + { + "id": "00000000-0000-0000-0000-000000110003", + "name": "Steward Dashboard", + "location": "Dashboard|Content", + "type": "DASHBOARD", + "assignment_asset_types": [] + }, + { + "id": "b20678f7-dbdf-44f4-9622-cbf99f126910", + "name": "Summary Table Columns", + "location": "catalog-table-contains-columns-summary", + "type": "ASSETTABLE", + "assignment_asset_types": [] + }, + { + "id": "00000000-0000-0000-2000-000000000004", + "name": "Tables", + "location": "QuickFilter|DataMarketplace|Content", + "type": "SEARCH", + "assignment_asset_types": [] + }, + { + "id": "c29e729f-38b1-4f1e-ad3e-e8bd6d39c300", + "name": "Tables", + "location": "catalog|data-dictionary", + "type": "ASSETTABLE", + "assignment_asset_types": [] + }, + { + "id": "00000000-0000-0000-0000-000000040030", + "name": "Tags", + "location": "SearchFilter|Content", + "type": "SEARCH", + "assignment_asset_types": [] + }, + { + "id": "3ffac9dc-60b9-4d86-96d7-53f72635dff1", + "name": "Technical Lineage", + "location": "diagram", + "type": "DIAGRAM", + "assignment_asset_types": [ + "Column", + "Field Mapping", + "Table", + "Business Term", + "Mapping Specification" + ] + }, + { + "id": "d8949eb8-64ed-4bf3-a627-baa1a297e077", + "name": "catalog-schema-contains-tables-summary", + "location": "catalog-schema-contains-tables-summary", + "type": "ASSETTABLE", + "assignment_asset_types": [] + }, + { + "id": "16f5e4a8-82d4-4e71-ad50-eb3191747ef5", + "name": "catalog-table-business-context-summary", + "location": "catalog-table-business-context-summary", + "type": "ASSETTABLE", + "assignment_asset_types": [] + }, + { + "id": "00000000-0000-0000-2003-000000000001", + "name": "search-tab-group-definition", + "location": "Search|TabGroups", + "type": "SEARCH", + "assignment_asset_types": [] + }, + { + "id": "00000000-0000-0000-2002-000000000001", + "name": "uncurated-search-tab", + "location": "UncuratedSearch|Tab", + "type": "SEARCH", + "assignment_asset_types": [] + } + ] +} \ No newline at end of file diff --git a/uniWork/lutino-collibra-metamodel.mmd b/uniWork/lutino-collibra-metamodel.mmd new file mode 100644 index 0000000..9d6a062 --- /dev/null +++ b/uniWork/lutino-collibra-metamodel.mmd @@ -0,0 +1,1290 @@ +graph TD + N00000000000000000001002800000003["ADLS Container"] + N00000000000000000001002900000002["Storage Container"] + N00000000000000000001002900000002 -->|inherits| N00000000000000000001002800000003 + N00000000000000000001002800000003 -->|FileContainerContainsFileContainer| N00000000000000000001002900000002 + N00000000000000000000000000031304["File"] + N00000000000000000001002800000003 -->|FileContainerContainsFile| N00000000000000000000000000031304 + N00000000000000000001002800000001["ADLS File System"] + N00000000000000000001002900000001["File Storage"] + N00000000000000000001002900000001 -->|inherits| N00000000000000000001002800000001 + N00000000000000000001002800000001 -->|FileStorageContainsFileContainer| N00000000000000000001002900000002 + N00000000000000000001002800000002["ADLS Storage Account"] + N00000000000000000001002900000002 -->|inherits| N00000000000000000001002800000002 + N00000000000000000001002800000002 -->|FileStorageContainsFileContainer| N00000000000000000001002900000002 + N00000000000000000001002800000002 -->|FileContainerContainsFileContainer| N00000000000000000001002900000002 + N00000000000000000000000000031450["AI Agent"] + N00000000000000000000000000031301["Technology Asset"] + N00000000000000000000000000031301 -->|inherits| N00000000000000000000000000031450 + N00000000000000000000000000031401["AI Use Case"] + N00000000000000000000000000031450 -->|AIUseCaseUsesAIAgent| N00000000000000000000000000031401 + N00000000000000000000000000031402["AI Model Version"] + N00000000000000000000000000031450 -->|AIAgentUsesAIModel| N00000000000000000000000000031402 + N00000000000000000000000000031450 -->|AIAgentUsesAIAgent| N00000000000000000000000000031450 + N00000000000000000000000000031450 -->|AIAgentContainsFileContainer| N00000000000000000001002900000002 + N00000000000000000000000000031422["AI Base Model"] + N00000000000000000000000000031301 -->|inherits| N00000000000000000000000000031422 + N00000000000000000000000000031201["Governance Asset"] + N00000000000000000000000000031422 -->|AssetCompliesToGovernanceAsset| N00000000000000000000000000031201 + N00000000000000000000000000031422 -->|FoundationalAIModelUsesFoundationalAIModel| N00000000000000000000000000031422 + N00000000000000000000000000031422 -->|ModelHasVersion| N00000000000000000000000000031402 + N00000000000000000000000000031422 -->|AIUseCaseUsesBaseModel| N00000000000000000000000000031401 + N00000000000000000000000000031403["Vendor"] + N00000000000000000000000000031422 -->|BaseModelProvidedByVendor| N00000000000000000000000000031403 + N00000000000000000000000000031501["AI Endpoint"] + N00000000000000000000000000031301 -->|inherits| N00000000000000000000000000031501 + N00000000000000000000000000031500["AI Model Deployment"] + N00000000000000000000000000031501 -->|DeploymentsExposedThroughEndpoint| N00000000000000000000000000031500 + N00000000000000000000000000031301 -->|inherits| N00000000000000000000000000031500 + N00000000000000000000000000031500 -->|ModelVersionIsDeployedByModelDeployment| N00000000000000000000000000031402 + N00000000000000000000000000031500 -->|DeploymentsExposedThroughEndpoint| N00000000000000000000000000031501 + N00000000000000000000000000031502["AI Monitor"] + N00000000000000000000000000031500 -->|DeploymentMonitoredByAIMonitor| N00000000000000000000000000031502 + N00000000000000000000000000031301 -->|inherits| N00000000000000000000000000031402 + N00000000000000000000000000031402 -->|AIUseCaseUsesAIModel| N00000000000000000000000000031401 + N00000000000000000000000000031402 -->|AIModelProvidedByVendor| N00000000000000000000000000031403 + N00000000000000000000000000031402 -->|AIModelUsesAIModel| N00000000000000000000000000031402 + N00000000000000000000000000031402 -->|AssetCompliesToGovernanceAsset| N00000000000000000000000000031201 + N00000000000000000000000000031402 -->|AIAgentUsesAIModel| N00000000000000000000000000031450 + N00000000000000000000000000031420["AI Project"] + N00000000000000000000000000031402 -->|AIProjectDeploysAIModel| N00000000000000000000000000031420 + N00000000000000000000000000031402 -->|AIModelContainsFileContainer| N00000000000000000001002900000002 + N00000000000000000000000000031402 -->|ModelHasVersion| N00000000000000000000000000031422 + N00000000000000000000000000031402 -->|ModelVersionIsDeployedByModelDeployment| N00000000000000000000000000031500 + N00000000000000000000000000031201 -->|inherits| N00000000000000000000000000031502 + N00000000000000000000000000031502 -->|DeploymentMonitoredByAIMonitor| N00000000000000000000000000031500 + N00000000000000000000000000031301 -->|inherits| N00000000000000000000000000031420 + N00000000000000000000000000031420 -->|AIProjectDeploysAIModel| N00000000000000000000000000031402 + N00000000000000000000000000031420 -->|AIUseCaseUsesAIProject| N00000000000000000000000000031401 + N00000000000000000000000000031101["Business Asset"] + N00000000000000000000000000031101 -->|inherits| N00000000000000000000000000031401 + N00000000000000000000000000031305["Assessment Review"] + N00000000000000000000000000031401 -->|AssetIsAssessedByAssessmentReview| N00000000000000000000000000031305 + N00000000000000000000000000031401 -->|AIUseCaseUsesAIModel| N00000000000000000000000000031402 + N00000000000000000000000000031401 -->|AssetCompliesToGovernanceAsset| N00000000000000000000000000031201 + N00000000000000000000000000031401 -->|AIUseCaseUsesAIAgent| N00000000000000000000000000031450 + N00000000000000000000000000031401 -->|AIUseCaseUsesAIProject| N00000000000000000000000000031420 + N00000000000000000000000000031401 -->|AIUseCaseUsesBaseModel| N00000000000000000000000000031422 + N00000000000000000000000000031408["AWS Bedrock AI Model Version"] + N00000000000000000000000000031402 -->|inherits| N00000000000000000000000000031408 + N00000000000000000000000000031408 -->|AIUseCaseUsesAIModel| N00000000000000000000000000031402 + N00000000000000000000000000031408 -->|AIModelProvidedByVendor| N00000000000000000000000000031403 + N00000000000000000000000000031408 -->|AIModelUsesAIModel| N00000000000000000000000000031402 + N00000000000000000000000000031408 -->|AssetCompliesToGovernanceAsset| N00000000000000000000000000031201 + N00000000000000000000000000031408 -->|AIModelContainsFileContainer| N00000000000000000001002900000002 + N00000000000000000000000000031408 -->|AIProjectDeploysAIModel| N00000000000000000000000000031402 + N00000000000000000000000000031408 -->|ModelHasVersion| N00000000000000000000000000031402 + N00000000000000000000000000031408 -->|ModelVersionIsDeployedByModelDeployment| N00000000000000000000000000031500 + N00000000000000000000000000031406["AWS Sagemaker AI Model Version"] + N00000000000000000000000000031402 -->|inherits| N00000000000000000000000000031406 + N00000000000000000000000000031406 -->|AIUseCaseUsesAIModel| N00000000000000000000000000031402 + N00000000000000000000000000031406 -->|AIModelProvidedByVendor| N00000000000000000000000000031403 + N00000000000000000000000000031406 -->|AIModelUsesAIModel| N00000000000000000000000000031402 + N00000000000000000000000000031406 -->|AssetCompliesToGovernanceAsset| N00000000000000000000000000031201 + N00000000000000000000000000031406 -->|AIModelContainsFileContainer| N00000000000000000001002900000002 + N00000000000000000000000000031406 -->|AIProjectDeploysAIModel| N00000000000000000000000000031402 + N00000000000000000000000000031406 -->|ModelHasVersion| N00000000000000000000000000031402 + N00000000000000000000000000031406 -->|ModelVersionIsDeployedByModelDeployment| N00000000000000000000000000031500 + N00000000000000000000000000011003["Acronym"] + N00000000000000000000000000011001["Business Term"] + N00000000000000000000000000011001 -->|inherits| N00000000000000000000000000011003 + N00000000000000000000090000010014["Adaptive Rule Score"] + N00000000000000000000000000031107["Data Quality Metric"] + N00000000000000000000000000031107 -->|inherits| N00000000000000000000090000010014 + N00000000000000000000090000010014 -->|DataQualityRuleExecutedByDataQualityMetric| N00000000000000000000000000031107 + N00000000000000000000000000031201 -->|inherits| N00000000000000000000000000031305 + N00000000000000000000000000031305 -->|AssessmentReviewIsARetakeOfAssessmentReview| N00000000000000000000000000031305 + N00000000000000000000000000031451["Azure AI Foundry Agent"] + N00000000000000000000000000031450 -->|inherits| N00000000000000000000000000031451 + N00000000000000000000000000031451 -->|AIUseCaseUsesAIAgent| N00000000000000000000000000031450 + N00000000000000000000000000031451 -->|AIAgentUsesAIModel| N00000000000000000000000000031402 + N00000000000000000000000000031451 -->|AIAgentUsesAIAgent| N00000000000000000000000000031450 + N00000000000000000000000000031451 -->|AIAgentContainsFileContainer| N00000000000000000001002900000002 + N00000000000000000000000000031411["Azure AI Foundry Model Version"] + N00000000000000000000000000031402 -->|inherits| N00000000000000000000000000031411 + N00000000000000000000000000031411 -->|AIUseCaseUsesAIModel| N00000000000000000000000000031402 + N00000000000000000000000000031411 -->|AIModelProvidedByVendor| N00000000000000000000000000031403 + N00000000000000000000000000031411 -->|AIModelUsesAIModel| N00000000000000000000000000031402 + N00000000000000000000000000031411 -->|AssetCompliesToGovernanceAsset| N00000000000000000000000000031201 + N00000000000000000000000000031411 -->|AIAgentUsesAIModel| N00000000000000000000000000031402 + N00000000000000000000000000031411 -->|AIModelContainsFileContainer| N00000000000000000001002900000002 + N00000000000000000000000000031411 -->|AIProjectDeploysAIModel| N00000000000000000000000000031402 + N00000000000000000000000000031411 -->|ModelHasVersion| N00000000000000000000000000031402 + N00000000000000000000000000031411 -->|ModelVersionIsDeployedByModelDeployment| N00000000000000000000000000031500 + N00000000000000000000000000031421["Azure AI Foundry Project"] + N00000000000000000000000000031420 -->|inherits| N00000000000000000000000000031421 + N00000000000000000000000000031421 -->|AIProjectDeploysAIModel| N00000000000000000000000000031402 + N00000000000000000000000000031421 -->|AIUseCaseUsesAIProject| N00000000000000000000000000031420 + N00000000000000000000000000031407["Azure AI Model Version"] + N00000000000000000000000000031402 -->|inherits| N00000000000000000000000000031407 + N00000000000000000000000000031407 -->|AIUseCaseUsesAIModel| N00000000000000000000000000031402 + N00000000000000000000000000031407 -->|AIModelProvidedByVendor| N00000000000000000000000000031403 + N00000000000000000000000000031407 -->|AIModelUsesAIModel| N00000000000000000000000000031402 + N00000000000000000000000000031407 -->|AssetCompliesToGovernanceAsset| N00000000000000000000000000031201 + N00000000000000000000000000031407 -->|AIModelContainsFileContainer| N00000000000000000001002900000002 + N00000000000000000000000000031407 -->|AIProjectDeploysAIModel| N00000000000000000000000000031402 + N00000000000000000000000000031407 -->|ModelHasVersion| N00000000000000000000000000031402 + N00000000000000000000000000031407 -->|ModelVersionIsDeployedByModelDeployment| N00000000000000000000000000031500 + N00000000000000000000090000000006["BI Data Attribute"] + N00000000000000000000000000031005["Data Attribute"] + N00000000000000000000000000031005 -->|inherits| N00000000000000000000090000000006 + N00000000000000000000090000000007["BI Data Entity"] + N00000000000000000000000000031004["Data Entity"] + N00000000000000000000000000031004 -->|inherits| N00000000000000000000090000000007 + N00000000000000000000090000000007 -->|DataEntityContainsDataAttribute| N00000000000000000000000000031005 + N00000000000000000000000000031002["Data Asset"] + N00000000000000000000090000000007 -->|BusinessAssetRepresentsDataAsset| N00000000000000000000000000031002 + N00000000000000000000090000000007 -->|DataAssetImplementedInTechnologyAsset| N00000000000000000000000000031301 + N00000000000000000000090000000007 -->|AssetGovernedByGovernanceAsset| N00000000000000000000000000031201 + N00000000000000000000000000031030["Mapping Specification"] + N00000000000000000000090000000007 -->|DataStructureSourceOfMappingSpecification| N00000000000000000000000000031030 + N00000000000000000000090000000007 -->|DataStructureTargetOfMappingSpecification| N00000000000000000000000000031030 + N00000000000000000000000000031003["Data Model"] + N00000000000000000000090000000007 -->|DataEntityIsPartOfDataModel| N00000000000000000000000000031003 + N00000000000000000000090000000008["BI Data Model"] + N00000000000000000000000000031003 -->|inherits| N00000000000000000000090000000008 + N00000000000000000000090000000009["BI Data Set"] + N00000000000000000001000400000001["Data Set"] + N00000000000000000001000400000001 -->|inherits| N00000000000000000000090000000009 + N00000000000000000000090000000005["BI Data Source"] + N00000000000000000000000000031302["System"] + N00000000000000000000000000031302 -->|inherits| N00000000000000000000090000000005 + N00000000000000000000090000000002["BI Folder"] + N00000000000000000000000000031105["Business Dimension"] + N00000000000000000000000000031105 -->|inherits| N00000000000000000000090000000002 + N00000000000000000000090000000003["BI Report"] + N00000000000000000000000000031102["Report"] + N00000000000000000000000000031102 -->|inherits| N00000000000000000000090000000003 + N00000000000000000000090000000003 -->|ReportAttributeContainedInReport| N00000000000000000000000000031102 + N00000000000000000000090000000003 -->|BusinessAssetGroupsBusinessAsset| N00000000000000000000000000031101 + N00000000000000000000090000000003 -->|LineOfBusinessAssociatesBusinessAsset| N00000000000000000000000000031101 + N00000000000000000000090000000003 -->|BusinessProcessProducesBusinessAsset| N00000000000000000000000000031101 + N00000000000000000000090000000003 -->|BIReportContainsBIDataModel| N00000000000000000000090000000008 + N00000000000000000000090000000003 -->|BusinessDimensionGroupsReport| N00000000000000000000000000031102 + N00000000000000000000090000000003 -->|DataAssetIsSourceForBIReport| N00000000000000000000000000031002 + N00000000000000000000090000000003 -->|ReportRelatedToBusinessAsset| N00000000000000000000000000031101 + N00000000000000000000090000000003 -->|ReportGroupsReport| N00000000000000000000000000031102 + N00000000000000000000090000000003 -->|ReportUsesDataAttribute| N00000000000000000000000000031005 + N00000000000000000000090000000004["BI Report Attribute"] + N00000000000000000000000000031027["Report Attribute"] + N00000000000000000000000000031027 -->|inherits| N00000000000000000000090000000004 + N00000000000000000000090000000004 -->|ReportAttributeContainedInReport| N00000000000000000000000000031102 + N00000000000000000000090000000004 -->|BusinessAssetRepresentsDataAsset| N00000000000000000000000000031002 + N00000000000000000000090000000004 -->|ReportAttributeSourcedFromDataAttribute| N00000000000000000000000000031005 + N00000000000000000000090000000001["BI Server"] + N00000000000000000000110000000004["Server"] + N00000000000000000000110000000004 -->|inherits| N00000000000000000000090000000001 + N00000000000000000000000000031101 -->|BusinessAssetGroupsBusinessAsset| N00000000000000000000000000031101 + N00000000000000000000000000031101 -->|BusinessAssetRepresentsDataAsset| N00000000000000000000000000031002 + N00000000000000000000000000031101 -->|BusinessAssetHasAcronymAcronym| N00000000000000000000000000011003 + N00000000000000000000000000031110["Line of Business"] + N00000000000000000000000000031101 -->|LineOfBusinessAssociatesBusinessAsset| N00000000000000000000000000031110 + N00000000000000000000000000031103["Business Process"] + N00000000000000000000000000031101 -->|BusinessProcessProducesBusinessAsset| N00000000000000000000000000031103 + N00000000000000000000000000031101 -->|AssetCompliesToGovernanceAsset| N00000000000000000000000000031201 + N00000000000000000000000000031101 -->|BusinessProcessConsumesBusinessAsset| N00000000000000000000000000031103 + N00000000000000000000000000031101 -->|DataSetRelatedToBusinessAsset| N00000000000000000001000400000001 + N00000000000000000000000000031101 -->|inherits| N00000000000000000000000000031105 + N00000000000000000000000000031105 -->|inherits| N00000000000000000000000000031103 + N00000000000000000000000000031103 -->|BusinessAssetGroupsBusinessAsset| N00000000000000000000000000031101 + N00000000000000000000000000031103 -->|BusinessAssetRepresentsDataAsset| N00000000000000000000000000031002 + N00000000000000000000000000031103 -->|BusinessAssetHasAcronymAcronym| N00000000000000000000000000011003 + N00000000000000000000000000031103 -->|LineOfBusinessAssociatesBusinessAsset| N00000000000000000000000000031101 + N00000000000000000000000000031103 -->|BusinessProcessProducesBusinessAsset| N00000000000000000000000000031101 + N00000000000000000000000000031103 -->|AssetCompliesToGovernanceAsset| N00000000000000000000000000031201 + N00000000000000000000000000031103 -->|BusinessProcessConsumesBusinessAsset| N00000000000000000000000000031101 + N00000000000000000000000000031103 -->|DataSetRelatedToBusinessAsset| N00000000000000000000000000031101 + N00000000000000000000000000031103 -->|AssetIsAssessedByAssessmentReview| N00000000000000000000000000031305 + N00000000000000000000000000031115["Business Qualifier"] + N00000000000000000000000000031101 -->|inherits| N00000000000000000000000000031115 + N00000000000000000000000000031115 -->|BusinessAssetGroupsBusinessAsset| N00000000000000000000000000031101 + N00000000000000000000000000031115 -->|BusinessAssetRepresentsDataAsset| N00000000000000000000000000031002 + N00000000000000000000000000031115 -->|BusinessAssetHasAcronymAcronym| N00000000000000000000000000011003 + N00000000000000000000000000031115 -->|LineOfBusinessAssociatesBusinessAsset| N00000000000000000000000000031101 + N00000000000000000000000000031115 -->|BusinessProcessProducesBusinessAsset| N00000000000000000000000000031101 + N00000000000000000000000000031115 -->|AssetCompliesToGovernanceAsset| N00000000000000000000000000031201 + N00000000000000000000000000031115 -->|BusinessProcessConsumesBusinessAsset| N00000000000000000000000000031101 + N00000000000000000000000000031115 -->|DataSetRelatedToBusinessAsset| N00000000000000000000000000031101 + N00000000000000000000000000031204["Business Rule"] + N00000000000000000000000000031203["Rule"] + N00000000000000000000000000031203 -->|inherits| N00000000000000000000000000031204 + N00000000000000000000000000031204 -->|GovernanceAssetGroupsGovernanceAsset| N00000000000000000000000000031201 + N00000000000000000000000000031204 -->|AssetCompliesToGovernanceAsset| N00000000000000000000000000031201 + N00000000000000000000000000031204 -->|AssetGovernedByGovernanceAsset| N00000000000000000000000000031201 + N00000000000000000000000000031204 -->|PolicyIsEnforcedByRule| N00000000000000000000000000031203 + N00000000000000000000000000031204 -->|RuleIsImplementedByBusinessRule| N00000000000000000000000000031203 + N00000000000000000000000000031101 -->|inherits| N00000000000000000000000000011001 + N00000000000000000000000000011001 -->|BusinessTermSynonymBusinessTerm| N00000000000000000000000000011001 + N00000000000000000000000000011001 -->|BusinessAssetHasAcronymAcronym| N00000000000000000000000000011003 + N00000000000000000000000000021001["Code Value"] + N00000000000000000000000000011001 -->|BusinessTermHasCodeCodeValue| N00000000000000000000000000021001 + N00000000000000000000000000011001 -->|BusinessAssetGroupsBusinessAsset| N00000000000000000000000000031101 + N00000000000000000000000000011001 -->|BusinessAssetRepresentsDataAsset| N00000000000000000000000000031002 + N00000000000000000000000000011001 -->|BusinessTermAllowedValueBusinessTerm| N00000000000000000000000000011001 + N00000000000000000000000000011001 -->|TechnologyAssetSystemOfRecordForBusinessTerm| N00000000000000000000000000031301 + N00000000000000000000000000011001 -->|TechnologyAssetSystemOfUseForBusinessTerm| N00000000000000000000000000031301 + N00000000000000000000000000011001 -->|TechnologyAssetSourceSystemForBusinessTerm| N00000000000000000000000000031301 + N00000000000000000000000000011001 -->|LineOfBusinessAssociatesBusinessAsset| N00000000000000000000000000031101 + N00000000000000000000000000011001 -->|BusinessProcessProducesBusinessAsset| N00000000000000000000000000031101 + N00000000000000000000000000011001 -->|DataSetRelatedToBusinessAsset| N00000000000000000000000000031101 + N00000000000000000000000000011001 -->|ReportRelatedToBusinessAsset| N00000000000000000000000000031101 + N00000000000000000000000000021002["Code Set"] + N00000000000000000000000000031002 -->|inherits| N00000000000000000000000000021002 + N00000000000000000000000000021002 -->|CodeValueIsPartOfCodeSet| N00000000000000000000000000021001 + N00000000000000000000000000031026["Data Element"] + N00000000000000000000000000021002 -->|DataElementAllowedValueSetCodeSet| N00000000000000000000000000031026 + N00000000000000000000000000021002 -->|DataAssetImplementedInTechnologyAsset| N00000000000000000000000000031301 + N00000000000000000000000000031031["Crosswalk"] + N00000000000000000000000000021002 -->|CodeSetSourceOfCrosswalk| N00000000000000000000000000031031 + N00000000000000000000000000021002 -->|CodeSetTargetOfCrosswalk| N00000000000000000000000000031031 + N00000000000000000000000000031002 -->|inherits| N00000000000000000000000000021001 + N00000000000000000000000000021001 -->|CodeValueGroupsCodeValue| N00000000000000000000000000021001 + N00000000000000000000000000021001 -->|CodeValueIsPartOfCodeSet| N00000000000000000000000000021002 + N00000000000000000000000000021001 -->|BusinessTermHasCodeCodeValue| N00000000000000000000000000011001 + N00000000000000000000000000021001 -->|DataElementAllowedValueCodeValue| N00000000000000000000000000031026 + N00000000000000000000000000021001 -->|DataAssetImplementedInTechnologyAsset| N00000000000000000000000000031301 + N00000000000000000000000000031008["Column"] + N00000000000000000000000000031026 -->|inherits| N00000000000000000000000000031008 + N00000000000000000000000000031007["Table"] + N00000000000000000000000000031008 -->|ColumnIsPartOfTable| N00000000000000000000000000031007 + N00000000000000000000000000031008 -->|DataElementAllowedValueCodeValue| N00000000000000000000000000021001 + N00000000000000000000000000031008 -->|DataElementAllowedValueSetCodeSet| N00000000000000000000000000021002 + N00000000000000000000000000031008 -->|BusinessAssetRepresentsDataAsset| N00000000000000000000000000031002 + N00000000000000000000000000031008 -->|DataAssetImplementedInTechnologyAsset| N00000000000000000000000000031301 + N00000000000000000000000000031008 -->|DataSetContainsDataElement| N00000000000000000000000000031026 + N00000000000000000000000000031008 -->|ColumnIsSourceForDataAttribute| N00000000000000000000000000031005 + N00000000000000000000000000031008 -->|DataAttributeRepresentsColumn| N00000000000000000000000000031005 + N00000000000000000000000000031008 -->|DataElementTargetsDataElement| N00000000000000000000000000031026 + N00000000000000000000000000031205["Data Quality Rule"] + N00000000000000000000000000031008 -->|DataQualityRuleGovernsColumn| N00000000000000000000000000031205 + N00000000000000000000000000031008 -->|AssetGovernedByGovernanceAsset| N00000000000000000000000000031201 + N00000000000000000000000000031008 -->|DataCategoryCategorizesDataAsset| N00000000000000000000000000031002 + Nc0e00000000000000000000000039040["Control"] + N00000000000000000000000000031201 -->|inherits| Nc0e00000000000000000000000039040 + Nc0e00000000000000000000000039040 -->|GovernanceAssetGroupsGovernanceAsset| N00000000000000000000000000031201 + Nc0e00000000000000000000000039040 -->|AssetCompliesToGovernanceAsset| N00000000000000000000000000031201 + Nc0e00000000000000000000000039035["Risk"] + Nc0e00000000000000000000000039040 -->|ControlMitigatesRisk| Nc0e00000000000000000000000039035 + N00000000000000000000000000011007["Critical Data Element"] + N00000000000000000000000000011001 -->|inherits| N00000000000000000000000000011007 + N00000000000000000000000000031104["Measure"] + N00000000000000000000000000011007 -->|MeasureIsCalculatedUsingCriticalDataElement| N00000000000000000000000000031104 + N00000000000000000000000000011007 -->|ReportContainsCriticalDataElement| N00000000000000000000000000031102 + N00000000000000000000000000011007 -->|LineOfBusinessAssociatesBusinessAsset| N00000000000000000000000000031101 + N00000000000000000000000000011007 -->|BusinessProcessProducesBusinessAsset| N00000000000000000000000000031101 + N00000000000000000000000000011007 -->|BusinessProcessConsumesBusinessAsset| N00000000000000000000000000031101 + N00000000000000000000000000011007 -->|BusinessAssetRepresentsDataAsset| N00000000000000000000000000031002 + N00000000000000000000000000031002 -->|inherits| N00000000000000000000000000031031 + N00000000000000000000000000031031 -->|CodeSetSourceOfCrosswalk| N00000000000000000000000000021002 + N00000000000000000000000000031031 -->|CodeSetTargetOfCrosswalk| N00000000000000000000000000021002 + N00000000000000000000000000031002 -->|BusinessAssetRepresentsDataAsset| N00000000000000000000000000031101 + N00000000000000000000000000031002 -->|DataAssetImplementedInTechnologyAsset| N00000000000000000000000000031301 + N00000000000000000000000000031002 -->|DataAssetRepresentsTable| N00000000000000000000000000031007 + N00000000000000000000000000031026 -->|inherits| N00000000000000000000000000031005 + N00000000000000000000000000031005 -->|DataElementAllowedValueCodeValue| N00000000000000000000000000021001 + N00000000000000000000000000031005 -->|DataElementAllowedValueSetCodeSet| N00000000000000000000000000021002 + N00000000000000000000000000031005 -->|BusinessAssetRepresentsDataAsset| N00000000000000000000000000031002 + N00000000000000000000000000031005 -->|DataEntityContainsDataAttribute| N00000000000000000000000000031004 + N00000000000000000000000000031005 -->|DataAssetImplementedInTechnologyAsset| N00000000000000000000000000031301 + N00000000000000000000000000031005 -->|DataAttributeRepresentsColumn| N00000000000000000000000000031008 + N00000000000000000000000000031005 -->|DataCategoryCategorizesDataAsset| N00000000000000000000000000031002 + N00000000000000000000000000031005 -->|MeasureIsCalculatedUsingDataElement| N00000000000000000000000000031026 + N00000000000000000000000000031109["Data Category"] + N00000000000000000000000000031105 -->|inherits| N00000000000000000000000000031109 + N00000000000000000000000000031109 -->|BusinessAssetGroupsBusinessAsset| N00000000000000000000000000031101 + N00000000000000000000000000031109 -->|BusinessAssetRepresentsDataAsset| N00000000000000000000000000031002 + N00000000000000000000000000031109 -->|BusinessAssetHasAcronymAcronym| N00000000000000000000000000011003 + N00000000000000000000000000031109 -->|LineOfBusinessAssociatesBusinessAsset| N00000000000000000000000000031101 + N00000000000000000000000000031109 -->|BusinessProcessProducesBusinessAsset| N00000000000000000000000000031101 + N00000000000000000000000000031109 -->|AssetCompliesToGovernanceAsset| N00000000000000000000000000031201 + N00000000000000000000000000031109 -->|BusinessProcessConsumesBusinessAsset| N00000000000000000000000000031101 + N00000000000000000000000000031109 -->|DataSetRelatedToBusinessAsset| N00000000000000000000000000031101 + N00000000000000000000000000031109 -->|DataCategoryCategorizesDataAsset| N00000000000000000000000000031002 + N00000000000000000000000000050000["Data Product"] + N00000000000000000000000000031109 -->|DataProductExposesDataCategory| N00000000000000000000000000050000 + N00000000000000000000000000031113["Data Concept"] + N00000000000000000000000000031105 -->|inherits| N00000000000000000000000000031113 + N00000000000000000000000000031113 -->|BusinessAssetGroupsBusinessAsset| N00000000000000000000000000031101 + N00000000000000000000000000050003["Data Contract"] + N00000000000000000000000000031201 -->|inherits| N00000000000000000000000000050003 + N00000000000000000000000000050004["Data Product Port"] + N00000000000000000000000000050003 -->|DataContractGovernsFunctioningOfOutputPort| N00000000000000000000000000050004 + N00000000000000000000000000050003 -->|DataContractPrescribesProvisioningOfDataAttribute| N00000000000000000000000000031005 + N00000000000000000000000000031114["Data Domain"] + N00000000000000000000000000031105 -->|inherits| N00000000000000000000000000031114 + N00000000000000000000000000031114 -->|BusinessAssetGroupsBusinessAsset| N00000000000000000000000000031101 + N00000000000000000000000000031114 -->|DataDomainHasSubtypeDataDomain| N00000000000000000000000000031114 + N00000000000000000000000000031002 -->|inherits| N00000000000000000000000000031026 + N00000000000000000000000000031026 -->|DataElementAllowedValueCodeValue| N00000000000000000000000000021001 + N00000000000000000000000000031026 -->|DataElementAllowedValueSetCodeSet| N00000000000000000000000000021002 + N00000000000000000000000000031025["Data Structure"] + N00000000000000000000000000031026 -->|DataElementIsPartOfDataStructure| N00000000000000000000000000031025 + N00000000000000000000000000031026 -->|BusinessAssetRepresentsDataAsset| N00000000000000000000000000031002 + N00000000000000000000000000031026 -->|DataAssetImplementedInTechnologyAsset| N00000000000000000000000000031301 + N00000000000000000000000000031026 -->|DataSetContainsDataElement| N00000000000000000001000400000001 + N00000000000000000000000000031026 -->|AssetGovernedByGovernanceAsset| N00000000000000000000000000031201 + N00000000000000000000000000031025 -->|inherits| N00000000000000000000000000031004 + N00000000000000000000000000031004 -->|DataEntityContainsDataAttribute| N00000000000000000000000000031005 + N00000000000000000000000000031004 -->|BusinessAssetRepresentsDataAsset| N00000000000000000000000000031002 + N00000000000000000000000000031004 -->|DataAssetImplementedInTechnologyAsset| N00000000000000000000000000031301 + N00000000000000000000000000031004 -->|AssetGovernedByGovernanceAsset| N00000000000000000000000000031201 + N00000000000000000000000000031004 -->|DataStructureSourceOfMappingSpecification| N00000000000000000000000000031030 + N00000000000000000000000000031004 -->|DataStructureTargetOfMappingSpecification| N00000000000000000000000000031030 + N00000000000000000000000000031004 -->|DataEntityIsPartOfDataModel| N00000000000000000000000000031003 + N00000000000000000000000000031004 -->|DataAssetRepresentsTable| N00000000000000000000000000031007 + N00000000000000000000000000031001["Data Issue"] + N00000000000000000000000000031111["Issue"] + N00000000000000000000000000031111 -->|inherits| N00000000000000000000000000031001 + N00000000000000000000100000000075["Model"] + N00000000000000000000100000000075 -->|inherits| N00000000000000000000000000031003 + N00000000000000000000000000031003 -->|BusinessAssetRepresentsDataAsset| N00000000000000000000000000031002 + N00000000000000000000000000031003 -->|DataAssetImplementedInTechnologyAsset| N00000000000000000000000000031301 + N00000000000000000000000000031003 -->|DataEntityIsPartOfDataModel| N00000000000000000000000000031004 + N00000000000000000000000000031003 -->|DataStructureSourceOfMappingSpecification| N00000000000000000000000000031030 + N00000000000000000000000000031003 -->|DataStructureTargetOfMappingSpecification| N00000000000000000000000000031030 + N00000000000000000000000000031003 -->|SystemImplementsDataModel| N00000000000000000000000000031302 + N00000000000000000000000000031116["Data Notebook"] + N00000000000000000000000000031102 -->|inherits| N00000000000000000000000000031116 + N00000000000000000000000000031006["Database"] + N00000000000000000000000000031116 -->|DataQueriedInNotebook| N00000000000000000000000000031006 + N00000000000000000000000000031116 -->|DataProductIsExplainedInDataNotebook| N00000000000000000000000000050000 + N00000000000000000000000000031101 -->|inherits| N00000000000000000000000000050000 + N00000000000000000000000000050000 -->|DataProductHasOutputPort| N00000000000000000000000000050004 + N00000000000000000000000000050000 -->|InputPortForDataProduct| N00000000000000000000000000050004 + N00000000000000000000000000050000 -->|ProviderOfDataProduct| N00000000000000000000000000031403 + N00000000000000000000000000050000 -->|DataProductRelatesToMeasure| N00000000000000000000000000031104 + N00000000000000000000000000050000 -->|DataProductRelatesToBusinessTerm| N00000000000000000000000000011001 + N00000000000000000000000000050000 -->|DataProductIsExplainedInDataNotebook| N00000000000000000000000000031116 + N00000000000000000000000000050000 -->|DataProductRelatesToDataDomain| N00000000000000000000000000031114 + N00000000000000000000000000050001["Data Product Input Port"] + N00000000000000000000000000050004 -->|inherits| N00000000000000000000000000050001 + N00000000000000000000000000050001 -->|InputPortForDataProduct| N00000000000000000000000000050000 + N00000000000000000000000000050002["Data Product Output Port"] + N00000000000000000000000000050004 -->|inherits| N00000000000000000000000000050002 + N00000000000000000000000000050002 -->|DataProductHasOutputPort| N00000000000000000000000000050004 + N00000000000000000000000000050002 -->|DataContractGovernsFunctioningOfOutputPort| N00000000000000000000000000050004 + N00000000000000000000000000031002 -->|inherits| N00000000000000000000000000050004 + N00000000000000000000000000050004 -->|InputPortForDataProduct| N00000000000000000000000000050000 + N00000000000000000000000000050004 -->|DataProductHasOutputPort| N00000000000000000000000000050000 + N00000000000000000000000000050004 -->|DataContractGovernsFunctioningOfOutputPort| N00000000000000000000000000050003 + N00000000000000000000000000050004 -->|DataProductPortIsImplementedBySystem| N00000000000000000000000000031302 + N00000000000000000000000000031108["Data Quality Dimension"] + N00000000000000000000000000031201 -->|inherits| N00000000000000000000000000031108 + N00000000000000000000090000010012["Data Quality Job"] + N00000000000000000000000000031002 -->|inherits| N00000000000000000000090000010012 + N00000000000000000000090000010012 -->|DataAssetContainsColumn| N00000000000000000000000000031008 + N00000000000000000000090000010012 -->|DataQualityRuleGovernsDataQualityJob| N00000000000000000000000000031205 + N00000000000000000000000000031203 -->|inherits| N00000000000000000000000000031107 + N00000000000000000000000000031107 -->|AssetCompliesToGovernanceAsset| N00000000000000000000000000031201 + N00000000000000000000000000031107 -->|DataQualityRuleExecutedByDataQualityMetric| N00000000000000000000000000031205 + N00000000000000000000000000031107 -->|GovernanceAssetViolatedByIssue| N00000000000000000000000000031111 + N00000000000000000000000000031203 -->|inherits| N00000000000000000000000000031205 + N00000000000000000000000000031205 -->|PolicyIsEnforcedByRule| N00000000000000000000000000031203 + N00000000000000000000000000031205 -->|RuleIsImplementedByBusinessRule| N00000000000000000000000000031204 + N00000000000000000000000000031205 -->|DataQualityRuleAllowedValueSetCodeSet| N00000000000000000000000000021002 + N00000000000000000000000000031205 -->|DataQualityRuleAllowedValueCodeValue| N00000000000000000000000000021001 + N00000000000000000000000000031205 -->|DataQualityRuleExecutedByDataQualityMetric| N00000000000000000000000000031107 + N00000000000000000000000000031205 -->|DataQualityRuleClassifiedByDataQualityDimension| N00000000000000000000000000031108 + N00000000000000000000000000031205 -->|AssetCompliesToGovernanceAsset| N00000000000000000000000000031201 + N00000000000000000000000000031205 -->|AssetGovernedByGovernanceAsset| N00000000000000000000000000031201 + N00000000000000000000000000031205 -->|GovernanceAssetResolvesIssue| N00000000000000000000000000031111 + N00000000000000000000000000031205 -->|DataQualityRuleGovernsDataQualityJob| N00000000000000000000090000010012 + N00000000000000000000000000031205 -->|DataQualityRuleGovernsColumn| N00000000000000000000000000031008 + N00000000000000000000000000031002 -->|inherits| N00000000000000000001000400000001 + N00000000000000000001000400000001 -->|DataSetContainsDataElement| N00000000000000000000000000031026 + N00000000000000000001000400000001 -->|DataSetRelatedToBusinessAsset| N00000000000000000000000000031101 + N00000000000000000000000000031231["Data Sharing Agreement"] + N00000000000000000000000000031201 -->|inherits| N00000000000000000000000000031231 + N00000000000000000000000000031231 -->|DataSharingAgreementIsRequestedByBusinessDimension| N00000000000000000000000000031105 + N00000000000000000000000000031131["Data Usage"] + N00000000000000000000000000031231 -->|DataUsageIsRequiredByDataSharingAgreement| N00000000000000000000000000031131 + N00000000000000000000000000031002 -->|inherits| N00000000000000000000000000031025 + N00000000000000000000000000031025 -->|BusinessAssetRepresentsDataAsset| N00000000000000000000000000031002 + N00000000000000000000000000031025 -->|DataAssetImplementedInTechnologyAsset| N00000000000000000000000000031301 + Nc0e00000000000000000000000039031["Data Subject Category"] + N00000000000000000000000000031105 -->|inherits| Nc0e00000000000000000000000039031 + Nc0e00000000000000000000000039031 -->|BusinessAssetGroupsBusinessAsset| N00000000000000000000000000031101 + Nc0e00000000000000000000000039031 -->|AssetCompliesToGovernanceAsset| N00000000000000000000000000031201 + Nc0e00000000000000000000000039031 -->|DataSubjectCategoryHasInformationInDataSet| N00000000000000000001000400000001 + Nc0e00000000000000000000000039031 -->|BusinessProcessProcessesInformationAboutDataSubjectCategory| N00000000000000000000000000031103 + Nc0e00000000000000000000000039031 -->|DataSharingAgreementAllowsProcessingForDataSubjectCategory| N00000000000000000000000000031231 + N00000000000000000000000000031002 -->|inherits| N00000000000000000000000000031131 + N00000000000000000000000000031131 -->|DataAssetImplementedInTechnologyAsset| N00000000000000000000000000031301 + N00000000000000000000000000031131 -->|DataUsageIsRequiredByDataSharingAgreement| N00000000000000000000000000031231 + N00000000000000000000000000031301 -->|inherits| N00000000000000000000000000031006 + N00000000000000000001000400000002["Schema"] + N00000000000000000000000000031006 -->|TechnologyAssetHasSchema| N00000000000000000001000400000002 + N00000000000000000000000000031006 -->|DataAssetImplementedInTechnologyAsset| N00000000000000000000000000031301 + N00000000000000000000000000031006 -->|TechnologyAssetGroupsTechnologyAsset| N00000000000000000000000000031301 + N00000000000000000000000000031006 -->|TableIsPartOfDatabase| N00000000000000000000000000031007 + N00000000000000000000000000031006 -->|TechnologyAssetSourceSystemForDataAsset| N00000000000000000000000000031002 + N00000000000000000000000000031006 -->|AssetGovernedByGovernanceAsset| N00000000000000000000000000031201 + N00000000000000000001000400000009["Database View"] + N00000000000000000000000000031007 -->|inherits| N00000000000000000001000400000009 + N00000000000000000001000400000009 -->|ColumnIsPartOfTable| N00000000000000000000000000031007 + N00000000000000000001000400000009 -->|SchemaContainsTable| N00000000000000000000000000031007 + N00000000000000000001000400000009 -->|BusinessAssetRepresentsDataAsset| N00000000000000000000000000031002 + N00000000000000000001000400000009 -->|DataAssetImplementedInTechnologyAsset| N00000000000000000000000000031301 + N00000000000000000001000400000009 -->|DataStructureSourceOfMappingSpecification| N00000000000000000000000000031030 + N00000000000000000001000400000009 -->|DataStructureTargetOfMappingSpecification| N00000000000000000000000000031030 + N00000000000000000001000400000009 -->|FileContainsTable| N00000000000000000000000000031007 + N00000000000000000001000400000009 -->|FileGroupContainsTable| N00000000000000000000000000031007 + N00000000000000000001000400000009 -->|DataAssetRepresentsTable| N00000000000000000000000000031007 + N00000000000000000001000400000009 -->|DataModelContainsTable| N00000000000000000000000000031007 + N00000000000000000001000400000009 -->|TableIsSourceForDatabaseView| N00000000000000000000000000031007 + N00000000000000000001000400000009 -->|DataAssetIsSourceForBIReport| N00000000000000000000090000000003 + N00000000000000000001000400000009 -->|SapDatasphereSpaceContainsDataAsset| N00000000000000000000000000031002 + N00000000000000000000000000031405["Databricks AI Model Version"] + N00000000000000000000000000031402 -->|inherits| N00000000000000000000000000031405 + N00000000000000000000000000031405 -->|AIUseCaseUsesAIModel| N00000000000000000000000000031402 + N00000000000000000000000000031405 -->|AIModelProvidedByVendor| N00000000000000000000000000031403 + N00000000000000000000000000031405 -->|AIModelUsesAIModel| N00000000000000000000000000031402 + N00000000000000000000000000031405 -->|AssetCompliesToGovernanceAsset| N00000000000000000000000000031201 + N00000000000000000000000000031405 -->|AIModelContainsFileContainer| N00000000000000000001002900000002 + N00000000000000000000000000031405 -->|AIProjectDeploysAIModel| N00000000000000000000000000031402 + N00000000000000000000000000031405 -->|ModelHasVersion| N00000000000000000000000000031402 + N00000000000000000000000000031405 -->|ModelVersionIsDeployedByModelDeployment| N00000000000000000000000000031500 + N00000000000000000000000000031413["Databricks Schema"] + N00000000000000000001000400000002 -->|inherits| N00000000000000000000000000031413 + N00000000000000000000000000031412["Databricks Volume"] + N00000000000000000000000000031413 -->|DatabricksSchemaContainsDatabricksVolume| N00000000000000000000000000031412 + N00000000000000000000000000031413 -->|SchemaContainsTable| N00000000000000000000000000031007 + N00000000000000000000000000031413 -->|TechnologyAssetHasSchema| N00000000000000000001000400000002 + N00000000000000000001002900000002 -->|inherits| N00000000000000000000000000031412 + N00000000000000000000000000031412 -->|FileContainerContainsFileContainer| N00000000000000000001002900000002 + N00000000000000000000000000031412 -->|FileStorageContainsFileContainer| N00000000000000000001002900000002 + N00000000000000000000000000031412 -->|DatabricksSchemaContainsDatabricksVolume| N00000000000000000000000000031413 + N00000000000000000001110000000401["Dataplex Lake"] + N00000000000000000000000000031002 -->|inherits| N00000000000000000001110000000401 + N00000000000000000001110000000400["GCP Project"] + N00000000000000000001110000000401 -->|GcpProjectGroupsDataplexLake| N00000000000000000001110000000400 + N00000000000000000001110000000402["Dataplex Zone"] + N00000000000000000001110000000401 -->|DataplexLakeContainsDataplexZone| N00000000000000000001110000000402 + N00000000000000000000000000031002 -->|inherits| N00000000000000000001110000000402 + N00000000000000000001110000000402 -->|DataplexLakeContainsDataplexZone| N00000000000000000001110000000401 + N00000000000000000001110000000402 -->|DataplexZoneContainsTable| N00000000000000000000000000031007 + N00000000000000000001110000000402 -->|DataplexZoneContainsSchema| N00000000000000000001000400000002 + N00000000000000000001002700000002["GCS Bucket"] + N00000000000000000001110000000402 -->|DataplexZoneContainsGcsBucket| N00000000000000000001002700000002 + N00000000000000000000000000031303["Directory"] + N00000000000000000001002900000002 -->|inherits| N00000000000000000000000000031303 + N00000000000000000000000000031303 -->|FileContainerContainsFileContainer| N00000000000000000001002900000002 + N00000000000000000001002400000002["File Group"] + N00000000000000000000000000031303 -->|DirectoryContainsFileGroup| N00000000000000000001002400000002 + N00000000000000000000000000031303 -->|DirectoryContainsDirectory| N00000000000000000000000000031303 + N00000000000000000000000000031303 -->|FileContainerContainsFile| N00000000000000000000000000031304 + N00000000000000000000000000031303 -->|DataAssetImplementedInTechnologyAsset| N00000000000000000000000000031301 + N00000000000000000000000000031303 -->|TechnologyAssetSystemOfRecordForBusinessTerm| N00000000000000000000000000011001 + N00000000000000000000000000031303 -->|TechnologyAssetSystemOfUseForBusinessTerm| N00000000000000000000000000011001 + N00000000000000000000000000031303 -->|TechnologyAssetSourceSystemForBusinessTerm| N00000000000000000000000000011001 + N00000000000000000000000000031303 -->|TechnologyAssetSystemOfRecordForDataAsset| N00000000000000000000000000031002 + N00000000000000000000000000031303 -->|TechnologyAssetSystemOfUseForDataAsset| N00000000000000000000000000031002 + N00000000000000000000000000031303 -->|TechnologyAssetSourceSystemForDataAsset| N00000000000000000000000000031002 + N00000000000000000000090000010021["Duplicate Score"] + N00000000000000000000000000031107 -->|inherits| N00000000000000000000090000010021 + N00000000000000000000090000010021 -->|DataQualityRuleExecutedByDataQualityMetric| N00000000000000000000000000031107 + N00000000000000000000110000000021["Fabric Capacity"] + N00000000000000000001002900000002 -->|inherits| N00000000000000000000110000000021 + N00000000000000000000110000000021 -->|TechnologyAssetGroupsTechnologyAsset| N00000000000000000000000000031301 + N00000000000000000000110000000023["Fabric Lakehouse"] + N00000000000000000001002900000002 -->|inherits| N00000000000000000000110000000023 + N00000000000000000000110000000023 -->|FileContainerContainsFileContainer| N00000000000000000001002900000002 + N00000000000000000000110000000024["Fabric Warehouse"] + N00000000000000000000000000031301 -->|inherits| N00000000000000000000110000000024 + N00000000000000000000110000000024 -->|TechnologyAssetGroupsTechnologyAsset| N00000000000000000000000000031301 + N00000000000000000000110000000024 -->|TechnologyAssetHasSchema| N00000000000000000001000400000002 + N00000000000000000000110000000022["Fabric Workspace"] + N00000000000000000001002900000002 -->|inherits| N00000000000000000000110000000022 + N00000000000000000000110000000022 -->|TechnologyAssetGroupsTechnologyAsset| N00000000000000000000000000031301 + N00000000000000000000110000000022 -->|FileContainerContainsFileContainer| N00000000000000000001002900000002 + N00000000000000000001000400000008["Field"] + N00000000000000000000000000031026 -->|inherits| N00000000000000000001000400000008 + N00000000000000000001000400000008 -->|FileContainsField| N00000000000000000000000000031304 + N00000000000000000000000000031301 -->|inherits| N00000000000000000000000000031304 + N00000000000000000000000000031304 -->|FileContainsField| N00000000000000000001000400000008 + N00000000000000000000000000031304 -->|FileContainerContainsFile| N00000000000000000001002900000002 + N00000000000000000000000000031304 -->|DataAssetImplementedInTechnologyAsset| N00000000000000000000000000031301 + N00000000000000000000000000031304 -->|FileContainsTable| N00000000000000000000000000031007 + N00000000000000000000000000031301 -->|inherits| N00000000000000000001002400000002 + N00000000000000000001002400000002 -->|FileGroupContainsTable| N00000000000000000000000000031007 + N00000000000000000001002400000002 -->|DirectoryContainsFileGroup| N00000000000000000000000000031303 + N00000000000000000000000000031302 -->|inherits| N00000000000000000001002900000001 + N00000000000000000001002900000001 -->|FileStorageContainsFileContainer| N00000000000000000001002900000002 + N00000000000000000001000400000003["Foreign Key"] + N00000000000000000000000000031002 -->|inherits| N00000000000000000001000400000003 + N00000000000000000000000000031301 -->|inherits| N00000000000000000001110000000400 + N00000000000000000001110000000400 -->|GcpProjectGroupsDataplexLake| N00000000000000000001110000000401 + N00000000000000000001002900000002 -->|inherits| N00000000000000000001002700000002 + N00000000000000000001002700000002 -->|FileStorageContainsFileContainer| N00000000000000000001002900000002 + N00000000000000000001002700000002 -->|FileContainerContainsFileContainer| N00000000000000000001002900000002 + N00000000000000000001002700000002 -->|FileContainerContainsFile| N00000000000000000000000000031304 + N00000000000000000001002700000002 -->|DataplexZoneContainsGcsBucket| N00000000000000000001110000000402 + N00000000000000000001002700000002 -->|GcsBucketContainsTable| N00000000000000000000000000031007 + N00000000000000000001002700000001["GCS File System"] + N00000000000000000001002900000001 -->|inherits| N00000000000000000001002700000001 + N00000000000000000001002700000001 -->|FileStorageContainsFileContainer| N00000000000000000001002900000002 + N00000000000000000000000000031201 -->|GovernanceAssetGroupsGovernanceAsset| N00000000000000000000000000031201 + N00000000000000000000000000031201 -->|GovernanceAssetViolatedByIssue| N00000000000000000000000000031111 + N00000000000000000000000000031201 -->|GovernanceAssetResolvesIssue| N00000000000000000000000000031111 + N00000000000000000000000000031111 -->|GovernanceAssetViolatedByIssue| N00000000000000000000000000031201 + N00000000000000000000000000031111 -->|GovernanceAssetResolvesIssue| N00000000000000000000000000031201 + N00000000000000000000000000031112["Issue Category"] + N00000000000000000000000000031111 -->|IssueCategorizedByIssueCategory| N00000000000000000000000000031112 + N00000000000000000000000000031201 -->|inherits| N00000000000000000000000000031112 + N00000000000000000000000000031112 -->|AssetCompliesToGovernanceAsset| N00000000000000000000000000031201 + N00000000000000000000000000031112 -->|GovernanceAssetGroupsGovernanceAsset| N00000000000000000000000000031201 + N00000000000000000000000000031112 -->|GovernanceAssetViolatedByIssue| N00000000000000000000000000031111 + N00000000000000000000000000031112 -->|GovernanceAssetResolvesIssue| N00000000000000000000000000031111 + Nc0e00000000000000000000000039008["Jurisdiction"] + N00000000000000000000000000031105 -->|inherits| Nc0e00000000000000000000000039008 + Nc0e00000000000000000000000039008 -->|BusinessAssetGroupsBusinessAsset| N00000000000000000000000000031101 + Nc0e00000000000000000000000039008 -->|BusinessDimensionIsLocatedInJurisdiction| N00000000000000000000000000031105 + Nc0e00000000000000000000000039008 -->|DataSharingAgreementLocationOfProcessingJurisdiction| N00000000000000000000000000031231 + Nc0e00000000000000000000000039008 -->|TechnologyAssetIsHostedInJurisdiction| N00000000000000000000000000031301 + N00000000000000000000000000011002["KPI"] + N00000000000000000000000000031104 -->|inherits| N00000000000000000000000000011002 + N00000000000000000000000000011002 -->|BusinessAssetHasAcronymAcronym| N00000000000000000000000000011003 + N00000000000000000000000000011002 -->|BusinessAssetGroupsBusinessAsset| N00000000000000000000000000031101 + N00000000000000000000000000011002 -->|BusinessAssetRepresentsDataAsset| N00000000000000000000000000031002 + N00000000000000000000000000011002 -->|AssetGovernedByGovernanceAsset| N00000000000000000000000000031201 + Nc0e00000000000000000000000039042["Legal Basis"] + N00000000000000000000000000031201 -->|inherits| Nc0e00000000000000000000000039042 + Nc0e00000000000000000000000039042 -->|AssetCompliesToGovernanceAsset| N00000000000000000000000000031201 + Nc0e00000000000000000000000039042 -->|LegalBasisDeterminesLawfulnessOfBusinessProcess| N00000000000000000000000000031103 + N00000000000000000000000000031105 -->|inherits| N00000000000000000000000000031110 + N00000000000000000000000000031110 -->|BusinessAssetGroupsBusinessAsset| N00000000000000000000000000031101 + N00000000000000000000000000031110 -->|BusinessAssetRepresentsDataAsset| N00000000000000000000000000031002 + N00000000000000000000000000031110 -->|BusinessAssetHasAcronymAcronym| N00000000000000000000000000011003 + N00000000000000000000000000031110 -->|LineOfBusinessAssociatesBusinessAsset| N00000000000000000000000000031101 + N00000000000000000000000000031110 -->|BusinessProcessProducesBusinessAsset| N00000000000000000000000000031101 + N00000000000000000000000000031110 -->|AssetCompliesToGovernanceAsset| N00000000000000000000000000031201 + N00000000000000000000000000031110 -->|BusinessProcessConsumesBusinessAsset| N00000000000000000000000000031101 + N00000000000000000000000000031110 -->|DataSetRelatedToBusinessAsset| N00000000000000000000000000031101 + N00000000000000000000100000000013["Looker Dashboard"] + N00000000000000000000090000000003 -->|inherits| N00000000000000000000100000000013 + N00000000000000000000100000000013 -->|ReportUsesReport| N00000000000000000000000000031102 + N00000000000000000000100000000013 -->|BusinessDimensionGroupsReport| N00000000000000000000000000031102 + N00000000000000000000100000000013 -->|ReportGroupsReport| N00000000000000000000000000031102 + N00000000000000000000100000000013 -->|ReportRelatedToBusinessAsset| N00000000000000000000000000031101 + N00000000000000000000100000000017["Looker Data Set"] + N00000000000000000000090000000009 -->|inherits| N00000000000000000000100000000017 + N00000000000000000000100000000017 -->|TechnologyAssetSourceSystemForDataAsset| N00000000000000000000000000031002 + N00000000000000000000100000000017 -->|DataSetContainsDataElement| N00000000000000000000000000031026 + N00000000000000000000100000000018["Looker Data Set Column"] + N00000000000000000000090000000006 -->|inherits| N00000000000000000000100000000018 + N00000000000000000000100000000018 -->|DataSetContainsDataElement| N00000000000000000000000000031026 + N00000000000000000000100000000018 -->|ColumnIsSourceForDataAttribute| N00000000000000000000000000031005 + N00000000000000000000100000000018 -->|DataElementTargetsDataElement| N00000000000000000000000000031026 + N00000000000000000000100000000018 -->|ReportAttributeSourcedFromDataAttribute| N00000000000000000000000000031005 + N00000000000000000000100000000012["Looker Folder"] + N00000000000000000000090000000002 -->|inherits| N00000000000000000000100000000012 + N00000000000000000000100000000012 -->|ServerHostsBusinessDimension| N00000000000000000000000000031105 + N00000000000000000000100000000012 -->|BIFolderAssemblesBIFolder| N00000000000000000000090000000002 + N00000000000000000000100000000012 -->|BusinessDimensionGroupsReport| N00000000000000000000000000031102 + N00000000000000000000100000000014["Looker Look"] + N00000000000000000000090000000003 -->|inherits| N00000000000000000000100000000014 + N00000000000000000000100000000014 -->|ReportUsesReport| N00000000000000000000000000031102 + N00000000000000000000100000000014 -->|BusinessDimensionGroupsReport| N00000000000000000000000000031102 + N00000000000000000000100000000014 -->|ReportGroupsReport| N00000000000000000000000000031102 + N00000000000000000000100000000014 -->|ReportRelatedToBusinessAsset| N00000000000000000000000000031101 + N00000000000000000000100000000016["Looker Query"] + N00000000000000000000090000000003 -->|inherits| N00000000000000000000100000000016 + N00000000000000000000100000000016 -->|ReportUsesReport| N00000000000000000000000000031102 + N00000000000000000000100000000016 -->|ReportAttributeContainedInReport| N00000000000000000000000000031102 + N00000000000000000000100000000016 -->|ReportGroupsReport| N00000000000000000000000000031102 + N00000000000000000000100000000016 -->|ReportRelatedToBusinessAsset| N00000000000000000000000000031101 + N00000000000000000000100000000016 -->|BusinessDimensionGroupsReport| N00000000000000000000000000031102 + N00000000000000000000100000000019["Looker Report Attribute"] + N00000000000000000000090000000004 -->|inherits| N00000000000000000000100000000019 + N00000000000000000000100000000019 -->|ReportAttributeContainedInReport| N00000000000000000000000000031102 + N00000000000000000000100000000019 -->|ReportAttributeIsSourceForReportAttribute| N00000000000000000000000000031027 + N00000000000000000000100000000019 -->|ReportAttributeSourcedFromDataAttribute| N00000000000000000000000000031005 + N00000000000000000000100000000011["Looker Tenant"] + N00000000000000000000090000000001 -->|inherits| N00000000000000000000100000000011 + N00000000000000000000100000000011 -->|ServerHostsBusinessDimension| N00000000000000000000000000031105 + N00000000000000000000100000000011 -->|TechnologyAssetSourceSystemForDataAsset| N00000000000000000000000000031002 + N00000000000000000000100000000015["Looker Tile"] + N00000000000000000000090000000003 -->|inherits| N00000000000000000000100000000015 + N00000000000000000000100000000015 -->|ReportUsesReport| N00000000000000000000000000031102 + N00000000000000000000100000000015 -->|ReportRelatedToBusinessAsset| N00000000000000000000000000031101 + N00000000000000000000100000000015 -->|BusinessDimensionGroupsReport| N00000000000000000000000000031102 + N00000000000000000000000000031410["MLflow AI Model Version"] + N00000000000000000000000000031402 -->|inherits| N00000000000000000000000000031410 + N00000000000000000000000000031410 -->|AIUseCaseUsesAIModel| N00000000000000000000000000031402 + N00000000000000000000000000031410 -->|AIModelProvidedByVendor| N00000000000000000000000000031403 + N00000000000000000000000000031410 -->|AIModelUsesAIModel| N00000000000000000000000000031402 + N00000000000000000000000000031410 -->|AssetCompliesToGovernanceAsset| N00000000000000000000000000031201 + N00000000000000000000000000031410 -->|AIModelContainsFileContainer| N00000000000000000001002900000002 + N00000000000000000000000000031410 -->|AIProjectDeploysAIModel| N00000000000000000000000000031402 + N00000000000000000000000000031410 -->|ModelHasVersion| N00000000000000000000000000031402 + N00000000000000000000000000031410 -->|ModelVersionIsDeployedByModelDeployment| N00000000000000000000000000031500 + N00000000000000000000000000039045["Managed Control"] + N00000000000000000000000000031201 -->|inherits| N00000000000000000000000000039045 + N00000000000000000000000000031202["Policy"] + N00000000000000000000000000039045 -->|ManagedControlEnforcesPolicy| N00000000000000000000000000031202 + N00000000000000000000000000039045 -->|ManagedControlMitigatesRisk| Nc0e00000000000000000000000039035 + N00000000000000000000000000031002 -->|inherits| N00000000000000000000000000031030 + N00000000000000000000000000031030 -->|DataStructureSourceOfMappingSpecification| N00000000000000000000000000031025 + N00000000000000000000000000031030 -->|DataStructureTargetOfMappingSpecification| N00000000000000000000000000031025 + N00000000000000000000000000031101 -->|inherits| N00000000000000000000000000031104 + N00000000000000000000000000031104 -->|BusinessAssetGroupsBusinessAsset| N00000000000000000000000000031101 + N00000000000000000000000000031104 -->|BusinessAssetRepresentsDataAsset| N00000000000000000000000000031002 + N00000000000000000000000000031104 -->|BusinessAssetHasAcronymAcronym| N00000000000000000000000000011003 + N00000000000000000000000000031104 -->|LineOfBusinessAssociatesBusinessAsset| N00000000000000000000000000031101 + N00000000000000000000000000031104 -->|BusinessProcessProducesBusinessAsset| N00000000000000000000000000031101 + N00000000000000000000000000031104 -->|AssetCompliesToGovernanceAsset| N00000000000000000000000000031201 + N00000000000000000000000000031104 -->|BusinessProcessConsumesBusinessAsset| N00000000000000000000000000031101 + N00000000000000000000000000031104 -->|DataSetRelatedToBusinessAsset| N00000000000000000000000000031101 + N00000000000000000000000000031104 -->|MeasureIsCalculatedUsingDataElement| N00000000000000000000000000031026 + N00000000000000000000000000031104 -->|MeasureIsCalculatedUsingCriticalDataElement| N00000000000000000000000000011007 + N00000000000000000000100000000047["MicroStrategy Data Attribute"] + N00000000000000000000090000000006 -->|inherits| N00000000000000000000100000000047 + N00000000000000000000100000000047 -->|BIDataModelContainsBIDataAttribute| N00000000000000000000090000000006 + N00000000000000000000100000000047 -->|ReportAttributeSourcedFromDataAttribute| N00000000000000000000000000031005 + N00000000000000000000100000000047 -->|DataElementTargetsDataElement| N00000000000000000000000000031026 + N00000000000000000000100000000047 -->|DataEntityContainsDataAttribute| N00000000000000000000000000031005 + N00000000000000000000100000000047 -->|ReportUsesDataAttribute| N00000000000000000000000000031005 + N00000000000000000000100000000048["MicroStrategy Data Entity"] + N00000000000000000000090000000007 -->|inherits| N00000000000000000000100000000048 + N00000000000000000000100000000048 -->|DataEntityContainsDataAttribute| N00000000000000000000000000031005 + N00000000000000000000100000000048 -->|BusinessAssetRepresentsDataAsset| N00000000000000000000000000031002 + N00000000000000000000100000000048 -->|DataAssetImplementedInTechnologyAsset| N00000000000000000000000000031301 + N00000000000000000000100000000048 -->|AssetGovernedByGovernanceAsset| N00000000000000000000000000031201 + N00000000000000000000100000000048 -->|DataStructureSourceOfMappingSpecification| N00000000000000000000000000031030 + N00000000000000000000100000000048 -->|DataStructureTargetOfMappingSpecification| N00000000000000000000000000031030 + N00000000000000000000100000000048 -->|DataEntityIsPartOfDataModel| N00000000000000000000000000031003 + N00000000000000000000100000000046["MicroStrategy Data Model"] + N00000000000000000000090000000008 -->|inherits| N00000000000000000000100000000046 + N00000000000000000000100000000046 -->|BIDataModelContainsBIDataAttribute| N00000000000000000000090000000006 + N00000000000000000000100000000046 -->|DataAssetIsSourceForBIReport| N00000000000000000000090000000003 + N00000000000000000000100000000049["MicroStrategy Document"] + N00000000000000000000090000000003 -->|inherits| N00000000000000000000100000000049 + N00000000000000000000100000000049 -->|ReportAttributeContainedInReport| N00000000000000000000000000031102 + N00000000000000000000100000000049 -->|BusinessAssetGroupsBusinessAsset| N00000000000000000000000000031101 + N00000000000000000000100000000049 -->|LineOfBusinessAssociatesBusinessAsset| N00000000000000000000000000031101 + N00000000000000000000100000000049 -->|BusinessProcessProducesBusinessAsset| N00000000000000000000000000031101 + N00000000000000000000100000000049 -->|BIReportContainsBIDataModel| N00000000000000000000090000000008 + N00000000000000000000100000000049 -->|BusinessDimensionGroupsReport| N00000000000000000000000000031102 + N00000000000000000000100000000049 -->|DataAssetIsSourceForBIReport| N00000000000000000000090000000003 + N00000000000000000000100000000049 -->|ReportRelatedToBusinessAsset| N00000000000000000000000000031101 + N00000000000000000000100000000049 -->|ReportGroupsReport| N00000000000000000000000000031102 + N00000000000000000000100000000049 -->|ReportUsesDataAttribute| N00000000000000000000000000031005 + N00000000000000000000100000000043["MicroStrategy Dossier"] + N00000000000000000000090000000003 -->|inherits| N00000000000000000000100000000043 + N00000000000000000000100000000043 -->|ReportGroupsReport| N00000000000000000000000000031102 + N00000000000000000000100000000043 -->|ReportAttributeContainedInReport| N00000000000000000000000000031102 + N00000000000000000000100000000043 -->|ReportRelatedToBusinessAsset| N00000000000000000000000000031101 + N00000000000000000000100000000043 -->|BusinessDimensionGroupsReport| N00000000000000000000000000031102 + N00000000000000000000100000000042["MicroStrategy Folder"] + N00000000000000000000090000000002 -->|inherits| N00000000000000000000100000000042 + N00000000000000000000100000000042 -->|BIFolderAssemblesBIFolder| N00000000000000000000090000000002 + N00000000000000000000100000000042 -->|BusinessDimensionGroupsReport| N00000000000000000000000000031102 + N00000000000000000000100000000042 -->|BIFolderContainsDataAsset| N00000000000000000000000000031002 + N00000000000000000000100000000041["MicroStrategy Project"] + N00000000000000000000090000000002 -->|inherits| N00000000000000000000100000000041 + N00000000000000000000100000000041 -->|BIFolderAssemblesBIFolder| N00000000000000000000090000000002 + N00000000000000000000100000000041 -->|ServerHostsBusinessDimension| N00000000000000000000000000031105 + N00000000000000000000100000000044["MicroStrategy Report"] + N00000000000000000000090000000003 -->|inherits| N00000000000000000000100000000044 + N00000000000000000000100000000044 -->|ReportGroupsReport| N00000000000000000000000000031102 + N00000000000000000000100000000044 -->|ReportAttributeContainedInReport| N00000000000000000000000000031102 + N00000000000000000000100000000044 -->|ReportRelatedToBusinessAsset| N00000000000000000000000000031101 + N00000000000000000000100000000044 -->|BusinessDimensionGroupsReport| N00000000000000000000000000031102 + N00000000000000000000100000000044 -->|BIReportContainsBIDataModel| N00000000000000000000090000000008 + N00000000000000000000100000000044 -->|DataAssetIsSourceForBIReport| N00000000000000000000090000000003 + N00000000000000000000100000000044 -->|ReportUsesDataAttribute| N00000000000000000000000000031005 + N00000000000000000000100000000045["MicroStrategy Report Attribute"] + N00000000000000000000090000000004 -->|inherits| N00000000000000000000100000000045 + N00000000000000000000100000000045 -->|ReportAttributeContainedInReport| N00000000000000000000000000031102 + N00000000000000000000100000000045 -->|ReportAttributeSourcedFromDataAttribute| N00000000000000000000000000031005 + N00000000000000000000100000000045 -->|BusinessAssetRepresentsDataAsset| N00000000000000000000000000031002 + N00000000000000000000100000000040["MicroStrategy Server"] + N00000000000000000000090000000001 -->|inherits| N00000000000000000000100000000040 + N00000000000000000000100000000040 -->|ServerHostsBusinessDimension| N00000000000000000000000000031105 + N00000000000000000000100000000050["MicroStrategy Visualisation"] + N00000000000000000000090000000004 -->|inherits| N00000000000000000000100000000050 + N00000000000000000000100000000050 -->|ReportAttributeContainedInReport| N00000000000000000000000000031102 + N00000000000000000000100000000050 -->|BusinessAssetRepresentsDataAsset| N00000000000000000000000000031002 + N00000000000000000000100000000050 -->|ReportAttributeSourcedFromDataAttribute| N00000000000000000000000000031005 + N00000000000000000000110000000020["Microsoft Tenant"] + N00000000000000000000110000000004 -->|inherits| N00000000000000000000110000000020 + N00000000000000000000110000000020 -->|TechnologyAssetGroupsTechnologyAsset| N00000000000000000000000000031301 + N00000000000000000000000000031025 -->|inherits| N00000000000000000000100000000075 + N00000000000000000000090000010015["Outlier Score"] + N00000000000000000000000000031107 -->|inherits| N00000000000000000000090000010015 + N00000000000000000000090000010015 -->|DataQualityRuleExecutedByDataQualityMetric| N00000000000000000000000000031107 + Nc0e00000000000000000000000000261["Party"] + N00000000000000000000000000031105 -->|inherits| Nc0e00000000000000000000000000261 + Nc0e00000000000000000000000000261 -->|BusinessAssetGroupsBusinessAsset| N00000000000000000000000000031101 + Nc0e00000000000000000000000000261 -->|AssetCompliesToGovernanceAsset| N00000000000000000000000000031201 + Nc0e00000000000000000000000000261 -->|DataSharingAgreementIsRequestedByBusinessDimension| N00000000000000000000000000031105 + Nc0e00000000000000000000000000261 -->|BusinessDimensionIsLocatedInJurisdiction| Nc0e00000000000000000000000039008 + Nc0e00000000000000000000000000261 -->|LineOfBusinessReceivesServiceProductByParty| N00000000000000000000000000031110 + Nc0e00000000000000000000000000261 -->|DataSharingAgreementIsAcceptedByBusinessDimension| N00000000000000000000000000031105 + Nc0e00000000000000000000000000261 -->|BusinessProcessRecipientParty| N00000000000000000000000000031103 + Nc0e00000000000000000000000000261 -->|BusinessProcessProcessorParty| N00000000000000000000000000031103 + Nc0e00000000000000000000000000261 -->|BusinessProcessControllerParty| N00000000000000000000000000031103 + Nc0e00000000000000000000000000261 -->|BusinessProcessJointControllerParty| N00000000000000000000000000031103 + Nc0e00000000000000000000000000261 -->|TechnologyAssetIsOwnedByParty| N00000000000000000000000000031301 + Nc0e00000000000000000000000000261 -->|AssetIsPotentiallyImpactedByRisk| Nc0e00000000000000000000000039035 + N00000000000000000000090000010016["Pattern Score"] + N00000000000000000000000000031107 -->|inherits| N00000000000000000000090000010016 + N00000000000000000000090000010016 -->|DataQualityRuleExecutedByDataQualityMetric| N00000000000000000000000000031107 + N00000000000000000000000000031201 -->|inherits| N00000000000000000000000000031202 + N00000000000000000000000000031202 -->|GovernanceAssetGroupsGovernanceAsset| N00000000000000000000000000031201 + N00000000000000000000000000031202 -->|AssetCompliesToGovernanceAsset| N00000000000000000000000000031201 + N00000000000000000000000000031206["Standard"] + N00000000000000000000000000031202 -->|StandardIsIncludedInPolicy| N00000000000000000000000000031206 + N00000000000000000000000000031202 -->|PolicyIsEnforcedByRule| N00000000000000000000000000031203 + N00000000000000000000000000031202 -->|ManagedControlEnforcesPolicy| N00000000000000000000000000039045 + N00000000000000000000100000000002["Power BI Capacity"] + N00000000000000000000090000000002 -->|inherits| N00000000000000000000100000000002 + N00000000000000000000100000000002 -->|ServerHostsBusinessDimension| N00000000000000000000000000031105 + N00000000000000000000100000000002 -->|BIFolderAssemblesBIFolder| N00000000000000000000090000000002 + N00000000000000000000100000000008["Power BI Column"] + N00000000000000000000090000000006 -->|inherits| N00000000000000000000100000000008 + N00000000000000000000100000000008 -->|ColumnIsSourceForDataAttribute| N00000000000000000000000000031005 + N00000000000000000000100000000008 -->|DataElementTargetsDataElement| N00000000000000000000000000031026 + N00000000000000000000100000000008 -->|BIDataModelContainsBIDataAttribute| N00000000000000000000090000000006 + N00000000000000000000100000000008 -->|DataEntityContainsDataAttribute| N00000000000000000000000000031005 + N00000000000000000000100000000004["Power BI Dashboard"] + N00000000000000000000090000000003 -->|inherits| N00000000000000000000100000000004 + N00000000000000000000100000000004 -->|BusinessDimensionGroupsReport| N00000000000000000000000000031102 + N00000000000000000000100000000004 -->|ReportUsesReport| N00000000000000000000000000031102 + N00000000000000000000100000000004 -->|ReportRelatedToBusinessAsset| N00000000000000000000000000031101 + N00000000000000000000100000000010["Power BI Data Flow"] + N00000000000000000000090000000008 -->|inherits| N00000000000000000000100000000010 + N00000000000000000000100000000010 -->|BIFolderContainsDataAsset| N00000000000000000000000000031002 + N00000000000000000000100000000010 -->|DataEntityIsPartOfDataModel| N00000000000000000000000000031003 + N00000000000000000000100000000010 -->|BIDataModelContainsBIDataAttribute| N00000000000000000000090000000006 + N00000000000000000000100000000010 -->|BIDataModelIsSourceForBIDataModel| N00000000000000000000090000000008 + N00000000000000000000100000000052["Power BI Data Mart"] + N00000000000000000000090000000008 -->|inherits| N00000000000000000000100000000052 + N00000000000000000000100000000052 -->|BIDataModelIsSourceForBIDataModel| N00000000000000000000090000000008 + N00000000000000000000100000000052 -->|DataAssetIsSourceForBIReport| N00000000000000000000090000000003 + N00000000000000000000100000000052 -->|BIFolderContainsDataAsset| N00000000000000000000000000031002 + N00000000000000000000100000000007["Power BI Data Model"] + N00000000000000000000090000000008 -->|inherits| N00000000000000000000100000000007 + N00000000000000000000100000000007 -->|DataAssetIsSourceForBIReport| N00000000000000000000090000000003 + N00000000000000000000100000000007 -->|BIFolderContainsDataAsset| N00000000000000000000000000031002 + N00000000000000000000100000000007 -->|DataEntityIsPartOfDataModel| N00000000000000000000000000031003 + N00000000000000000000100000000007 -->|BIDataModelContainsBIDataAttribute| N00000000000000000000090000000006 + N00000000000000000000100000000007 -->|TechnologyAssetSourceSystemForDataAsset| N00000000000000000000000000031002 + N00000000000000000000100000000007 -->|BIDataModelIsSourceForBIDataModel| N00000000000000000000090000000008 + N00000000000000000000100000000020["Power BI Folder"] + N00000000000000000000090000000002 -->|inherits| N00000000000000000000100000000020 + N00000000000000000000100000000020 -->|BIFolderAssemblesBIFolder| N00000000000000000000090000000002 + N00000000000000000000100000000020 -->|BusinessDimensionGroupsReport| N00000000000000000000000000031102 + N00000000000000000000100000000020 -->|BIFolderContainsDataAsset| N00000000000000000000000000031002 + N00000000000000000000100000000020 -->|ServerHostsBusinessDimension| N00000000000000000000000000031105 + N00000000000000000000100000000021["Power BI KPI"] + N00000000000000000000090000000003 -->|inherits| N00000000000000000000100000000021 + N00000000000000000000100000000021 -->|ReportAttributeContainedInReport| N00000000000000000000000000031102 + N00000000000000000000100000000021 -->|ReportRelatedToBusinessAsset| N00000000000000000000000000031101 + N00000000000000000000100000000021 -->|DataAssetIsSourceForBIReport| N00000000000000000000090000000003 + N00000000000000000000100000000021 -->|BusinessDimensionGroupsReport| N00000000000000000000000000031102 + N00000000000000000000100000000022["Power BI Parameter"] + N00000000000000000000090000000004 -->|inherits| N00000000000000000000100000000022 + N00000000000000000000100000000022 -->|ReportAttributeContainedInReport| N00000000000000000000000000031102 + N00000000000000000000100000000022 -->|BusinessAssetRepresentsDataAsset| N00000000000000000000000000031002 + N00000000000000000000100000000022 -->|ReportAttributeSourcedFromDataAttribute| N00000000000000000000000000031005 + N00000000000000000000100000000006["Power BI Report"] + N00000000000000000000090000000003 -->|inherits| N00000000000000000000100000000006 + N00000000000000000000100000000006 -->|BusinessDimensionGroupsReport| N00000000000000000000000000031102 + N00000000000000000000100000000006 -->|ReportUsesReport| N00000000000000000000000000031102 + N00000000000000000000100000000006 -->|ReportRelatedToBusinessAsset| N00000000000000000000000000031101 + N00000000000000000000100000000006 -->|DataAssetIsSourceForBIReport| N00000000000000000000090000000003 + N00000000000000000000100000000001["Power BI Server"] + N00000000000000000000090000000001 -->|inherits| N00000000000000000000100000000001 + N00000000000000000000100000000001 -->|ServerHostsBusinessDimension| N00000000000000000000000000031105 + N00000000000000000000100000000009["Power BI Table"] + N00000000000000000000090000000007 -->|inherits| N00000000000000000000100000000009 + N00000000000000000000100000000009 -->|DataEntityIsPartOfDataModel| N00000000000000000000000000031003 + N00000000000000000000100000000009 -->|DataEntityContainsDataAttribute| N00000000000000000000000000031005 + N00000000000000000000100000000005["Power BI Tile"] + N00000000000000000000090000000003 -->|inherits| N00000000000000000000100000000005 + N00000000000000000000100000000005 -->|BusinessDimensionGroupsReport| N00000000000000000000000000031102 + N00000000000000000000100000000005 -->|ReportUsesReport| N00000000000000000000000000031102 + N00000000000000000000100000000005 -->|ReportRelatedToBusinessAsset| N00000000000000000000000000031101 + N00000000000000000000100000000005 -->|DataAssetIsSourceForBIReport| N00000000000000000000090000000003 + N00000000000000000000100000000003["Power BI Workspace"] + N00000000000000000000090000000002 -->|inherits| N00000000000000000000100000000003 + N00000000000000000000100000000003 -->|BIFolderAssemblesBIFolder| N00000000000000000000090000000002 + N00000000000000000000100000000003 -->|BusinessDimensionGroupsReport| N00000000000000000000000000031102 + N00000000000000000000100000000003 -->|BIFolderContainsDataAsset| N00000000000000000000000000031002 + Nc0e00000000000000000000000039043["Processing Category"] + N00000000000000000000000000031105 -->|inherits| Nc0e00000000000000000000000039043 + Nc0e00000000000000000000000039043 -->|BusinessAssetGroupsBusinessAsset| N00000000000000000000000000031101 + Nc0e00000000000000000000000039043 -->|AssetCompliesToGovernanceAsset| N00000000000000000000000000031201 + Nc0e00000000000000000000000039043 -->|BusinessProcessIsCategorisedByProcessingCategory| N00000000000000000000000000031103 + Nc0e00000000000000000000000039021["Purpose"] + N00000000000000000000000000031201 -->|inherits| Nc0e00000000000000000000000039021 + Nc0e00000000000000000000000039021 -->|GovernanceAssetGroupsGovernanceAsset| N00000000000000000000000000031201 + Nc0e00000000000000000000000039021 -->|AssetCompliesToGovernanceAsset| N00000000000000000000000000031201 + Nc0e00000000000000000000000039021 -->|PurposeIsReasonForBusinessProcess| N00000000000000000000000000031103 + Nc0e00000000000000000000000039021 -->|DataUsageHasPurposePurpose| N00000000000000000000000000031131 + Nc0e00000000000000000000000039021 -->|DataSharingAgreementPurposeOfProcessingPurpose| N00000000000000000000000000031231 + N00000000000000000000100000000088["Qlik Data Attribute"] + N00000000000000000000090000000006 -->|inherits| N00000000000000000000100000000088 + N00000000000000000000100000000088 -->|DataElementTargetsDataElement| N00000000000000000000000000031026 + N00000000000000000000100000000087["Qlik Data Entity"] + N00000000000000000000090000000007 -->|inherits| N00000000000000000000100000000087 + N00000000000000000000100000000087 -->|DataEntityContainsDataAttribute| N00000000000000000000000000031005 + N00000000000000000000100000000086["Qlik Data Model"] + N00000000000000000000090000000008 -->|inherits| N00000000000000000000100000000086 + N00000000000000000000100000000086 -->|DataEntityIsPartOfDataModel| N00000000000000000000000000031003 + N00000000000000000000100000000082["Qlik Sense Application"] + N00000000000000000000090000000003 -->|inherits| N00000000000000000000100000000082 + N00000000000000000000100000000082 -->|ReportGroupsReport| N00000000000000000000000000031102 + N00000000000000000000100000000082 -->|BIReportContainsBIDataModel| N00000000000000000000090000000008 + N00000000000000000000100000000080["Qlik Server"] + N00000000000000000000090000000001 -->|inherits| N00000000000000000000100000000080 + N00000000000000000000100000000080 -->|ServerHostsBusinessDimension| N00000000000000000000000000031105 + N00000000000000000000100000000083["Qlik Sheet"] + N00000000000000000000090000000003 -->|inherits| N00000000000000000000100000000083 + N00000000000000000000100000000083 -->|ReportUsesReport| N00000000000000000000000000031102 + N00000000000000000000100000000081["Qlik Space"] + N00000000000000000000090000000002 -->|inherits| N00000000000000000000100000000081 + N00000000000000000000100000000081 -->|BusinessDimensionGroupsReport| N00000000000000000000000000031102 + N00000000000000000000100000000085["Qlik Story"] + N00000000000000000000090000000003 -->|inherits| N00000000000000000000100000000085 + N00000000000000000000100000000085 -->|ReportUsesReport| N00000000000000000000000000031102 + N00000000000000000000100000000084["Qlik Visualization"] + N00000000000000000000090000000003 -->|inherits| N00000000000000000000100000000084 + N00000000000000000000100000000084 -->|ReportUsesDataAttribute| N00000000000000000000000000031005 + N00000000000000000000090000010020["Record Score"] + N00000000000000000000000000031107 -->|inherits| N00000000000000000000090000010020 + N00000000000000000000090000010020 -->|DataQualityRuleExecutedByDataQualityMetric| N00000000000000000000000000031107 + Nc0e00000000000000000000000039014["Regulation"] + N00000000000000000000000000031202 -->|inherits| Nc0e00000000000000000000000039014 + Nc0e00000000000000000000000039014 -->|AssetCompliesToGovernanceAsset| N00000000000000000000000000031201 + N00000000000000000000000000031101 -->|inherits| N00000000000000000000000000031102 + N00000000000000000000000000031102 -->|ReportAttributeContainedInReport| N00000000000000000000000000031027 + N00000000000000000000000000031102 -->|BusinessAssetGroupsBusinessAsset| N00000000000000000000000000031101 + N00000000000000000000000000031102 -->|LineOfBusinessAssociatesBusinessAsset| N00000000000000000000000000031101 + N00000000000000000000000000031102 -->|BusinessProcessProducesBusinessAsset| N00000000000000000000000000031101 + N00000000000000000000000000031102 -->|ReportContainsCriticalDataElement| N00000000000000000000000000011007 + N00000000000000000000000000031026 -->|inherits| N00000000000000000000000000031027 + N00000000000000000000000000031027 -->|ReportAttributeContainedInReport| N00000000000000000000000000031102 + N00000000000000000000000000031027 -->|BusinessAssetRepresentsDataAsset| N00000000000000000000000000031002 + N00000000000000000000000000031027 -->|ReportAttributeSourcedFromDataAttribute| N00000000000000000000000000031005 + N00000000000000000000000000031201 -->|inherits| Nc0e00000000000000000000000039035 + Nc0e00000000000000000000000039035 -->|GovernanceAssetGroupsGovernanceAsset| N00000000000000000000000000031201 + Nc0e00000000000000000000000039035 -->|AssetCompliesToGovernanceAsset| N00000000000000000000000000031201 + Nc0e00000000000000000000000039035 -->|ControlMitigatesRisk| Nc0e00000000000000000000000039040 + Nc0e00000000000000000000000039035 -->|ManagedControlMitigatesRisk| N00000000000000000000000000039045 + N00000000000000000000000000031201 -->|inherits| N00000000000000000000000000031203 + N00000000000000000000000000031203 -->|AssetCompliesToGovernanceAsset| N00000000000000000000000000031201 + N00000000000000000000000000031203 -->|GovernanceAssetGroupsGovernanceAsset| N00000000000000000000000000031201 + N00000000000000000000000000031203 -->|GovernanceAssetViolatedByIssue| N00000000000000000000000000031111 + N00000000000000000000000000031203 -->|GovernanceAssetResolvesIssue| N00000000000000000000000000031111 + N00000000000000000001002400000001["S3 Bucket"] + N00000000000000000001002900000002 -->|inherits| N00000000000000000001002400000001 + N00000000000000000001002400000001 -->|FileContainerContainsFileContainer| N00000000000000000001002900000002 + N00000000000000000001002400000001 -->|FileStorageContainsFileContainer| N00000000000000000001002900000002 + N00000000000000000001002400000000["S3 File System"] + N00000000000000000001002900000001 -->|inherits| N00000000000000000001002400000000 + N00000000000000000001002400000000 -->|FileStorageContainsFileContainer| N00000000000000000001002900000002 + N00000000000000000000100000000067["SAC Data Attribute"] + N00000000000000000000090000000006 -->|inherits| N00000000000000000000100000000067 + N00000000000000000000100000000067 -->|DataEntityContainsDataAttribute| N00000000000000000000000000031005 + N00000000000000000000100000000067 -->|DataElementTargetsDataElement| N00000000000000000000000000031026 + N00000000000000000000100000000067 -->|DataAssetGroupsDataAsset| N00000000000000000000000000031002 + N00000000000000000000100000000066["SAC Data Entity"] + N00000000000000000000090000000007 -->|inherits| N00000000000000000000100000000066 + N00000000000000000000100000000066 -->|DataEntityIsPartOfDataModel| N00000000000000000000000000031003 + N00000000000000000000100000000066 -->|DataEntityContainsDataAttribute| N00000000000000000000000000031005 + N00000000000000000000100000000066 -->|DataAssetGroupsDataAsset| N00000000000000000000000000031002 + N00000000000000000000100000000065["SAC Data Model"] + N00000000000000000000090000000008 -->|inherits| N00000000000000000000100000000065 + N00000000000000000000100000000065 -->|BIFolderContainsDataAsset| N00000000000000000000000000031002 + N00000000000000000000100000000065 -->|DataAssetIsSourceForBIReport| N00000000000000000000090000000003 + N00000000000000000000100000000065 -->|BIDataModelIsSourceForBIDataModel| N00000000000000000000090000000008 + N00000000000000000000100000000065 -->|DataEntityIsPartOfDataModel| N00000000000000000000000000031003 + N00000000000000000000100000000065 -->|DataAssetGroupsDataAsset| N00000000000000000000000000031002 + N00000000000000000000100000000065 -->|BusinessAssetRepresentsDataAsset| N00000000000000000000000000031002 + N00000000000000000000100000000062["SAC Folder"] + N00000000000000000000090000000002 -->|inherits| N00000000000000000000100000000062 + N00000000000000000000100000000062 -->|FileContainerAssemblesBIFolder| N00000000000000000000090000000002 + N00000000000000000000100000000062 -->|BIFolderAssemblesBIFolder| N00000000000000000000090000000002 + N00000000000000000000100000000062 -->|BusinessDimensionGroupsReport| N00000000000000000000000000031102 + N00000000000000000000100000000062 -->|BIFolderContainsDataAsset| N00000000000000000000000000031002 + N00000000000000000000100000000064["SAC Insight"] + N00000000000000000000090000000003 -->|inherits| N00000000000000000000100000000064 + N00000000000000000000100000000064 -->|BusinessDimensionGroupsReport| N00000000000000000000000000031102 + N00000000000000000000100000000064 -->|ReportUsesReport| N00000000000000000000000000031102 + N00000000000000000000100000000064 -->|DataAssetIsSourceForBIReport| N00000000000000000000090000000003 + N00000000000000000000100000000064 -->|ReportRelatedToBusinessAsset| N00000000000000000000000000031101 + N00000000000000000000100000000063["SAC Story"] + N00000000000000000000090000000003 -->|inherits| N00000000000000000000100000000063 + N00000000000000000000100000000063 -->|BusinessDimensionGroupsReport| N00000000000000000000000000031102 + N00000000000000000000100000000063 -->|ReportUsesReport| N00000000000000000000000000031102 + N00000000000000000000100000000063 -->|DataAssetIsSourceForBIReport| N00000000000000000000090000000003 + N00000000000000000000100000000063 -->|ReportRelatedToBusinessAsset| N00000000000000000000000000031101 + N00000000000000000000000000031409["SAP AI Model Version"] + N00000000000000000000000000031402 -->|inherits| N00000000000000000000000000031409 + N00000000000000000000000000031409 -->|AIUseCaseUsesAIModel| N00000000000000000000000000031402 + N00000000000000000000000000031409 -->|AIModelProvidedByVendor| N00000000000000000000000000031403 + N00000000000000000000000000031409 -->|AssetCompliesToGovernanceAsset| N00000000000000000000000000031201 + N00000000000000000000000000031409 -->|AIModelContainsFileContainer| N00000000000000000001002900000002 + N00000000000000000000000000031409 -->|AIProjectDeploysAIModel| N00000000000000000000000000031402 + N00000000000000000000000000031409 -->|ModelHasVersion| N00000000000000000000000000031402 + N00000000000000000000000000031409 -->|ModelVersionIsDeployedByModelDeployment| N00000000000000000000000000031500 + N00000000000000000000100000000061["SAP Container"] + N00000000000000000001002900000002 -->|inherits| N00000000000000000000100000000061 + N00000000000000000000100000000061 -->|TechnologyAssetGroupsTechnologyAsset| N00000000000000000000000000031301 + N00000000000000000000100000000061 -->|FileContainerAssemblesBIFolder| N00000000000000000000090000000002 + N00000000000000000000100000000061 -->|FileContainerContainsFileContainer| N00000000000000000001002900000002 + N00000000000000000000100000000073["SAP Data Product"] + N00000000000000000000000000050000 -->|inherits| N00000000000000000000100000000073 + N00000000000000000000100000000073 -->|ProviderOfDataProduct| N00000000000000000000000000050000 + N00000000000000000000100000000073 -->|DataProductHasOutputPort| N00000000000000000000000000050004 + N00000000000000000000100000000073 -->|InputPortForDataProduct| N00000000000000000000000000050000 + N00000000000000000000100000000073 -->|DataProductExposesDataCategory| N00000000000000000000000000031109 + N00000000000000000000100000000068["SAP Datasphere Space"] + N00000000000000000000100000000073 -->|SapDataProductBelongsToSapDatasphereSpace| N00000000000000000000100000000068 + N00000000000000000000100000000069["SAP Datasphere Analytic Model"] + N00000000000000000000100000000076["Transformation Model"] + N00000000000000000000100000000076 -->|inherits| N00000000000000000000100000000069 + N00000000000000000000100000000069 -->|SapDatasphereSpaceContainsDataAsset| N00000000000000000000000000031002 + N00000000000000000000100000000069 -->|BusinessAssetRepresentsDataAsset| N00000000000000000000000000031002 + N00000000000000000000100000000069 -->|DataModelContainsTable| N00000000000000000000000000031007 + N00000000000000000000100000000069 -->|DataAssetGroupsDataAsset| N00000000000000000000000000031002 + N00000000000000000000100000000074["SAP Datasphere Data Attribute"] + N00000000000000000000000000031005 -->|inherits| N00000000000000000000100000000074 + N00000000000000000000100000000074 -->|DataElementTargetsDataElement| N00000000000000000000000000031026 + N00000000000000000000100000000074 -->|DataAssetGroupsDataAsset| N00000000000000000000000000031002 + N00000000000000000000100000000072["SAP Datasphere Intelligent Lookup"] + N00000000000000000000100000000076 -->|inherits| N00000000000000000000100000000072 + N00000000000000000000100000000072 -->|BusinessAssetRepresentsDataAsset| N00000000000000000000000000031002 + N00000000000000000000100000000072 -->|SapDatasphereSpaceContainsDataAsset| N00000000000000000000000000031002 + N00000000000000000000100000000072 -->|DataModelContainsTable| N00000000000000000000000000031007 + N00000000000000000000100000000072 -->|DataAssetGroupsDataAsset| N00000000000000000000000000031002 + N00000000000000000000100000000071["SAP Datasphere Perspective"] + N00000000000000000000100000000076 -->|inherits| N00000000000000000000100000000071 + N00000000000000000000100000000071 -->|BusinessAssetRepresentsDataAsset| N00000000000000000000000000031002 + N00000000000000000000100000000071 -->|SapDatasphereSpaceContainsDataAsset| N00000000000000000000000000031002 + N00000000000000000000100000000071 -->|DataModelContainsTable| N00000000000000000000000000031007 + N00000000000000000000100000000071 -->|DataAssetIsSourceForBIReport| N00000000000000000000090000000003 + N00000000000000000000100000000071 -->|DataAssetGroupsDataAsset| N00000000000000000000000000031002 + N00000000000000000001002900000002 -->|inherits| N00000000000000000000100000000068 + N00000000000000000000100000000068 -->|FileContainerContainsFileContainer| N00000000000000000001002900000002 + N00000000000000000000100000000068 -->|SapDatasphereSpaceContainsDataAsset| N00000000000000000000000000031002 + N00000000000000000000100000000068 -->|TechnologyAssetGroupsTechnologyAsset| N00000000000000000000000000031301 + N00000000000000000000100000000068 -->|SapDataProductBelongsToSapDatasphereSpace| N00000000000000000000100000000073 + N00000000000000000000100000000060["SAP Tenant"] + N00000000000000000000110000000004 -->|inherits| N00000000000000000000100000000060 + N00000000000000000000100000000060 -->|TechnologyAssetGroupsTechnologyAsset| N00000000000000000000000000031301 + N00000000000000000000100000000060 -->|TechnologyAssetSourceSystemForBusinessTerm| N00000000000000000000000000011001 + N00000000000000000000100000000029["SSRS Column"] + N00000000000000000000100000000008 -->|inherits| N00000000000000000000100000000029 + N00000000000000000000100000000029 -->|ColumnIsSourceForDataAttribute| N00000000000000000000000000031005 + N00000000000000000000100000000029 -->|DataElementTargetsDataElement| N00000000000000000000000000031026 + N00000000000000000000100000000029 -->|BIDataModelContainsBIDataAttribute| N00000000000000000000090000000006 + N00000000000000000000100000000029 -->|DataEntityContainsDataAttribute| N00000000000000000000000000031005 + N00000000000000000000100000000028["SSRS Data Model"] + N00000000000000000000100000000007 -->|inherits| N00000000000000000000100000000028 + N00000000000000000000100000000028 -->|DataAssetIsSourceForBIReport| N00000000000000000000090000000003 + N00000000000000000000100000000028 -->|BIFolderContainsDataAsset| N00000000000000000000000000031002 + N00000000000000000000100000000028 -->|DataEntityIsPartOfDataModel| N00000000000000000000000000031003 + N00000000000000000000100000000028 -->|BIDataModelContainsBIDataAttribute| N00000000000000000000090000000006 + N00000000000000000000100000000028 -->|TechnologyAssetSourceSystemForDataAsset| N00000000000000000000000000031002 + N00000000000000000000100000000028 -->|BIDataModelIsSourceForBIDataModel| N00000000000000000000090000000008 + N00000000000000000000100000000024["SSRS Folder"] + N00000000000000000000100000000020 -->|inherits| N00000000000000000000100000000024 + N00000000000000000000100000000024 -->|BIFolderAssemblesBIFolder| N00000000000000000000090000000002 + N00000000000000000000100000000024 -->|BusinessDimensionGroupsReport| N00000000000000000000000000031102 + N00000000000000000000100000000024 -->|BIFolderContainsDataAsset| N00000000000000000000000000031002 + N00000000000000000000100000000024 -->|ServerHostsBusinessDimension| N00000000000000000000000000031105 + N00000000000000000000100000000026["SSRS KPI"] + N00000000000000000000090000000003 -->|inherits| N00000000000000000000100000000026 + N00000000000000000000100000000026 -->|ReportAttributeContainedInReport| N00000000000000000000000000031102 + N00000000000000000000100000000026 -->|ReportRelatedToBusinessAsset| N00000000000000000000000000031101 + N00000000000000000000100000000026 -->|DataAssetIsSourceForBIReport| N00000000000000000000090000000003 + N00000000000000000000100000000026 -->|BusinessDimensionGroupsReport| N00000000000000000000000000031102 + N00000000000000000000100000000027["SSRS Parameter"] + N00000000000000000000090000000004 -->|inherits| N00000000000000000000100000000027 + N00000000000000000000100000000027 -->|ReportAttributeContainedInReport| N00000000000000000000000000031102 + N00000000000000000000100000000027 -->|BusinessAssetRepresentsDataAsset| N00000000000000000000000000031002 + N00000000000000000000100000000027 -->|ReportAttributeSourcedFromDataAttribute| N00000000000000000000000000031005 + N00000000000000000000100000000025["SSRS Report"] + N00000000000000000000100000000006 -->|inherits| N00000000000000000000100000000025 + N00000000000000000000100000000025 -->|BusinessDimensionGroupsReport| N00000000000000000000000000031102 + N00000000000000000000100000000025 -->|ReportUsesReport| N00000000000000000000000000031102 + N00000000000000000000100000000025 -->|ReportRelatedToBusinessAsset| N00000000000000000000000000031101 + N00000000000000000000100000000025 -->|DataAssetIsSourceForBIReport| N00000000000000000000090000000003 + N00000000000000000000100000000023["SSRS Server"] + N00000000000000000000090000000001 -->|inherits| N00000000000000000000100000000023 + N00000000000000000000100000000023 -->|ServerHostsBusinessDimension| N00000000000000000000000000031105 + N00000000000000000000100000000030["SSRS Table"] + N00000000000000000000100000000009 -->|inherits| N00000000000000000000100000000030 + N00000000000000000000100000000030 -->|DataEntityIsPartOfDataModel| N00000000000000000000000000031003 + N00000000000000000000100000000030 -->|DataEntityContainsDataAttribute| N00000000000000000000000000031005 + N00000000000000000000000000031025 -->|inherits| N00000000000000000001000400000002 + N00000000000000000001000400000002 -->|SchemaContainsTable| N00000000000000000000000000031007 + N00000000000000000001000400000002 -->|DataStructureSourceOfMappingSpecification| N00000000000000000000000000031030 + N00000000000000000001000400000002 -->|DataStructureTargetOfMappingSpecification| N00000000000000000000000000031030 + N00000000000000000001000400000002 -->|TechnologyAssetHasSchema| N00000000000000000000000000031301 + N00000000000000000001000400000002 -->|AssetGovernedByGovernanceAsset| N00000000000000000000000000031201 + N00000000000000000001000400000002 -->|DataplexZoneContainsSchema| N00000000000000000001110000000402 + N00000000000000000000090000010018["Schema Score"] + N00000000000000000000000000031107 -->|inherits| N00000000000000000000090000010018 + N00000000000000000000090000010018 -->|DataQualityRuleExecutedByDataQualityMetric| N00000000000000000000000000031107 + N00000000000000000000000000031301 -->|inherits| N00000000000000000000110000000004 + N00000000000000000000090000010017["Shape Score"] + N00000000000000000000000000031107 -->|inherits| N00000000000000000000090000010017 + N00000000000000000000090000010017 -->|DataQualityRuleExecutedByDataQualityMetric| N00000000000000000000000000031107 + N00000000000000000000100000000102["Sigma Data Attribute"] + N00000000000000000000090000000006 -->|inherits| N00000000000000000000100000000102 + N00000000000000000000100000000102 -->|DataElementTargetsDataElement| N00000000000000000000000000031026 + N00000000000000000000100000000102 -->|BIDataModelContainsBIDataAttribute| N00000000000000000000090000000006 + N00000000000000000000100000000102 -->|DataEntityContainsDataAttribute| N00000000000000000000000000031005 + N00000000000000000000100000000102 -->|ReportAttributeSourcedFromDataAttribute| N00000000000000000000000000031005 + N00000000000000000000100000000101["Sigma Data Entity"] + N00000000000000000000090000000007 -->|inherits| N00000000000000000000100000000101 + N00000000000000000000100000000101 -->|DataEntityContainsDataAttribute| N00000000000000000000000000031005 + N00000000000000000000100000000101 -->|DataEntityIsPartOfDataModel| N00000000000000000000000000031003 + N00000000000000000000100000000101 -->|TechnologyAssetSourceSystemForDataAsset| N00000000000000000000000000031002 + N00000000000000000000100000000101 -->|DataAssetIsSourceForBIReport| N00000000000000000000090000000003 + N00000000000000000000100000000099["Sigma Data Model"] + N00000000000000000000090000000008 -->|inherits| N00000000000000000000100000000099 + N00000000000000000000100000000099 -->|BIDataModelIsSourceForBIDataModel| N00000000000000000000090000000008 + N00000000000000000000100000000099 -->|BIDataModelContainsBIDataAttribute| N00000000000000000000090000000006 + N00000000000000000000100000000099 -->|DataEntityIsPartOfDataModel| N00000000000000000000000000031003 + N00000000000000000000100000000099 -->|BIFolderContainsDataAsset| N00000000000000000000000000031002 + N00000000000000000000100000000099 -->|BIReportContainsBIDataModel| N00000000000000000000090000000008 + N00000000000000000000100000000100["Sigma Data Set"] + N00000000000000000000090000000009 -->|inherits| N00000000000000000000100000000100 + N00000000000000000000100000000100 -->|DataSetContainsDataElement| N00000000000000000000000000031026 + N00000000000000000000100000000100 -->|TechnologyAssetSourceSystemForDataAsset| N00000000000000000000000000031002 + N00000000000000000000100000000100 -->|BIFolderContainsDataAsset| N00000000000000000000000000031002 + N00000000000000000000100000000092["Sigma Data Source"] + N00000000000000000000090000000005 -->|inherits| N00000000000000000000100000000092 + N00000000000000000000100000000092 -->|TechnologyAssetGroupsTechnologyAsset| N00000000000000000000000000031301 + N00000000000000000000100000000092 -->|TechnologyAssetSourceSystemForDataAsset| N00000000000000000000000000031002 + N00000000000000000000100000000094["Sigma Folder"] + N00000000000000000000090000000002 -->|inherits| N00000000000000000000100000000094 + N00000000000000000000100000000094 -->|BIFolderAssemblesBIFolder| N00000000000000000000090000000002 + N00000000000000000000100000000094 -->|BusinessDimensionGroupsReport| N00000000000000000000000000031102 + N00000000000000000000100000000094 -->|BIFolderContainsDataAsset| N00000000000000000000000000031002 + N00000000000000000000100000000098["Sigma Report Attribute"] + N00000000000000000000090000000004 -->|inherits| N00000000000000000000100000000098 + N00000000000000000000100000000098 -->|ReportAttributeSourcedFromDataAttribute| N00000000000000000000000000031005 + N00000000000000000000100000000091["Sigma Tenant"] + N00000000000000000000090000000001 -->|inherits| N00000000000000000000100000000091 + N00000000000000000000100000000091 -->|TechnologyAssetGroupsTechnologyAsset| N00000000000000000000000000031301 + N00000000000000000000100000000091 -->|ServerHostsBusinessDimension| N00000000000000000000000000031105 + N00000000000000000000100000000095["Sigma Workbook"] + N00000000000000000000090000000003 -->|inherits| N00000000000000000000100000000095 + N00000000000000000000100000000095 -->|ReportUsesReport| N00000000000000000000000000031102 + N00000000000000000000100000000095 -->|BusinessDimensionGroupsReport| N00000000000000000000000000031102 + N00000000000000000000100000000097["Sigma Workbook Element"] + N00000000000000000000090000000003 -->|inherits| N00000000000000000000100000000097 + N00000000000000000000100000000097 -->|ReportAttributeContainedInReport| N00000000000000000000000000031102 + N00000000000000000000100000000097 -->|ReportGroupsReport| N00000000000000000000000000031102 + N00000000000000000000100000000096["Sigma Workbook Page"] + N00000000000000000000090000000003 -->|inherits| N00000000000000000000100000000096 + N00000000000000000000100000000096 -->|ReportGroupsReport| N00000000000000000000000000031102 + N00000000000000000000100000000096 -->|ReportUsesReport| N00000000000000000000000000031102 + N00000000000000000000100000000093["Sigma Workspace"] + N00000000000000000000090000000002 -->|inherits| N00000000000000000000100000000093 + N00000000000000000000100000000093 -->|BIFolderAssemblesBIFolder| N00000000000000000000090000000002 + N00000000000000000000100000000093 -->|ServerHostsBusinessDimension| N00000000000000000000000000031105 + N00000000000000000000090000010019["Source Score"] + N00000000000000000000000000031107 -->|inherits| N00000000000000000000090000010019 + N00000000000000000000090000010019 -->|DataQualityRuleExecutedByDataQualityMetric| N00000000000000000000000000031107 + N00000000000000000000000000031202 -->|inherits| N00000000000000000000000000031206 + N00000000000000000000000000031206 -->|AssetCompliesToGovernanceAsset| N00000000000000000000000000031201 + N00000000000000000000000000031206 -->|GovernanceAssetGroupsGovernanceAsset| N00000000000000000000000000031201 + N00000000000000000000000000031206 -->|StandardIsIncludedInPolicy| N00000000000000000000000000031202 + N00000000000000000000000000031206 -->|PolicyIsEnforcedByRule| N00000000000000000000000000031203 + N00000000000000000000000000031301 -->|inherits| N00000000000000000001002900000002 + N00000000000000000001002900000002 -->|FileStorageContainsFileContainer| N00000000000000000001002900000001 + N00000000000000000001002900000002 -->|FileContainerContainsFileContainer| N00000000000000000001002900000002 + N00000000000000000001002900000002 -->|FileContainerContainsFile| N00000000000000000000000000031304 + N00000000000000000000000000031301 -->|inherits| N00000000000000000000000000031302 + N00000000000000000000000000031302 -->|DataAssetImplementedInTechnologyAsset| N00000000000000000000000000031301 + N00000000000000000000000000031302 -->|TechnologyAssetSystemOfRecordForBusinessTerm| N00000000000000000000000000011001 + N00000000000000000000000000031302 -->|TechnologyAssetSystemOfUseForBusinessTerm| N00000000000000000000000000011001 + N00000000000000000000000000031302 -->|TechnologyAssetSourceSystemForBusinessTerm| N00000000000000000000000000011001 + N00000000000000000000000000031302 -->|TechnologyAssetSystemOfRecordForDataAsset| N00000000000000000000000000031002 + N00000000000000000000000000031302 -->|TechnologyAssetSystemOfUseForDataAsset| N00000000000000000000000000031002 + N00000000000000000000000000031302 -->|TechnologyAssetSourceSystemForDataAsset| N00000000000000000000000000031002 + N00000000000000000000000000031302 -->|TechnologyAssetGroupsTechnologyAsset| N00000000000000000000000000031301 + N00000000000000000000000000031302 -->|SystemImplementsDataModel| N00000000000000000000000000031003 + N00000000000000000000000000031025 -->|inherits| N00000000000000000000000000031007 + N00000000000000000000000000031007 -->|ColumnIsPartOfTable| N00000000000000000000000000031008 + N00000000000000000000000000031007 -->|SchemaContainsTable| N00000000000000000001000400000002 + N00000000000000000000000000031007 -->|BusinessAssetRepresentsDataAsset| N00000000000000000000000000031002 + N00000000000000000000000000031007 -->|DataAssetImplementedInTechnologyAsset| N00000000000000000000000000031301 + N00000000000000000000000000031007 -->|DataStructureSourceOfMappingSpecification| N00000000000000000000000000031030 + N00000000000000000000000000031007 -->|DataStructureTargetOfMappingSpecification| N00000000000000000000000000031030 + N00000000000000000000000000031007 -->|FileContainsTable| N00000000000000000000000000031304 + N00000000000000000000000000031007 -->|FileGroupContainsTable| N00000000000000000001002400000002 + N00000000000000000000000000031007 -->|DataAssetRepresentsTable| N00000000000000000000000000031002 + N00000000000000000000000000031007 -->|DataplexZoneContainsTable| N00000000000000000001110000000402 + N00000000000000000000000000031007 -->|AssetGovernedByGovernanceAsset| N00000000000000000000000000031201 + N00000000000000000000000000031007 -->|GcsBucketContainsTable| N00000000000000000001002700000002 + N00000000000000000000000000031007 -->|DataModelContainsTable| N00000000000000000000100000000075 + N00000000000000000000000000031007 -->|TableIsSourceForDatabaseView| N00000000000000000001000400000009 + N00000000000000000000000000031007 -->|DataAssetIsSourceForBIReport| N00000000000000000000090000000003 + N00000000000000000000000000031007 -->|SapDatasphereSpaceContainsDataAsset| N00000000000000000000000000031002 + N00000000000000000001110000000301["Tableau Dashboard"] + N00000000000000000000110000000003["Tableau View"] + N00000000000000000000110000000003 -->|inherits| N00000000000000000001110000000301 + N00000000000000000001110000000301 -->|ReportGroupsReport| N00000000000000000000000000031102 + N00000000000000000001110000000301 -->|ReportRelatedToBusinessAsset| N00000000000000000000000000031101 + N00000000000000000001110000000301 -->|ReportUsesReport| N00000000000000000000000000031102 + N00000000000000000001110000000301 -->|ReportUsesReportAttribute| N00000000000000000000000000031027 + N00000000000000000001110000000301 -->|ReportUsesDataAttribute| N00000000000000000000000000031005 + N00000000000000000000110000000010["Tableau Data Attribute"] + N00000000000000000000090000000006 -->|inherits| N00000000000000000000110000000010 + N00000000000000000000110000000010 -->|ReportAttributeSourcedFromDataAttribute| N00000000000000000000000000031005 + N00000000000000000000110000000010 -->|ColumnIsSourceForDataAttribute| N00000000000000000000000000031005 + N00000000000000000000110000000010 -->|DataEntityContainsDataAttribute| N00000000000000000000000000031005 + N00000000000000000000110000000010 -->|BIDataModelContainsBIDataAttribute| N00000000000000000000090000000006 + N00000000000000000000110000000010 -->|DataElementTargetsDataElement| N00000000000000000000000000031026 + N00000000000000000000110000000010 -->|ReportUsesDataAttribute| N00000000000000000000000000031005 + N00000000000000000000110000000009["Tableau Data Entity"] + N00000000000000000000090000000007 -->|inherits| N00000000000000000000110000000009 + N00000000000000000000110000000009 -->|DataEntityContainsDataAttribute| N00000000000000000000000000031005 + N00000000000000000000110000000009 -->|DataEntityIsPartOfDataModel| N00000000000000000000000000031003 + N00000000000000000000110000000008["Tableau Data Model"] + N00000000000000000000090000000008 -->|inherits| N00000000000000000000110000000008 + N00000000000000000000110000000008 -->|DataEntityIsPartOfDataModel| N00000000000000000000000000031003 + N00000000000000000000110000000008 -->|SystemImplementsDataModel| N00000000000000000000000000031003 + N00000000000000000000110000000008 -->|TechnologyAssetSourceSystemForDataAsset| N00000000000000000000000000031002 + N00000000000000000000110000000008 -->|BIDataModelContainsBIDataAttribute| N00000000000000000000090000000006 + N00000000000000000000110000000008 -->|BIFolderContainsDataAsset| N00000000000000000000000000031002 + N00000000000000000000110000000002["Tableau Workbook"] + N00000000000000000000110000000008 -->|TableauWorkbookContainsTableauDataModel| N00000000000000000000110000000002 + N00000000000000000000110000000006["Tableau Data Source"] + N00000000000000000000090000000005 -->|inherits| N00000000000000000000110000000006 + N00000000000000000000110000000006 -->|BusinessDimensionSourceSystem| N00000000000000000000000000031302 + N00000000000000000000110000000006 -->|SystemImplementsDataSet| N00000000000000000001000400000001 + N00000000000000000000110000000006 -->|SystemImplementsDataModel| N00000000000000000000000000031003 + N00000000000000000000110000000001["Tableau Project"] + N00000000000000000000090000000002 -->|inherits| N00000000000000000000110000000001 + N00000000000000000000110000000001 -->|BusinessDimensionGroupsReport| N00000000000000000000000000031102 + N00000000000000000000110000000001 -->|BusinessDimensionSourceSystem| N00000000000000000000000000031302 + N00000000000000000000110000000001 -->|BIFolderAssemblesBIFolder| N00000000000000000000090000000002 + N00000000000000000000110000000001 -->|BIFolderContainsDataAsset| N00000000000000000000000000031002 + N00000000000000000000110000000007["Tableau Report Attribute"] + N00000000000000000000090000000004 -->|inherits| N00000000000000000000110000000007 + N00000000000000000000110000000007 -->|ReportAttributeContainedInReport| N00000000000000000000000000031102 + N00000000000000000000110000000007 -->|ReportAttributeIsSourceForReportAttribute| N00000000000000000000000000031027 + N00000000000000000000110000000007 -->|ReportAttributeSourcedFromDataAttribute| N00000000000000000000000000031005 + N00000000000000000000110000000007 -->|ReportUsesReportAttribute| N00000000000000000000000000031027 + N00000000000000000000110000000005["Tableau Server"] + N00000000000000000000090000000001 -->|inherits| N00000000000000000000110000000005 + N00000000000000000000110000000005 -->|ServerHostsBusinessDimension| N00000000000000000000000000031105 + N00000000000000000000110000000000["Tableau Site"] + N00000000000000000000090000000002 -->|inherits| N00000000000000000000110000000000 + N00000000000000000000110000000000 -->|BIFolderAssemblesBIFolder| N00000000000000000000090000000002 + N00000000000000000000110000000000 -->|ServerHostsBusinessDimension| N00000000000000000000000000031105 + N00000000000000000001110000000302["Tableau Story"] + N00000000000000000000110000000003 -->|inherits| N00000000000000000001110000000302 + N00000000000000000001110000000302 -->|ReportGroupsReport| N00000000000000000000000000031102 + N00000000000000000001110000000302 -->|ReportRelatedToBusinessAsset| N00000000000000000000000000031101 + N00000000000000000001110000000302 -->|ReportUsesReport| N00000000000000000000000000031102 + N00000000000000000001110000000302 -->|ReportUsesReportAttribute| N00000000000000000000000000031027 + N00000000000000000001110000000302 -->|ReportUsesDataAttribute| N00000000000000000000000000031005 + N00000000000000000000090000000003 -->|inherits| N00000000000000000000110000000003 + N00000000000000000000110000000003 -->|ReportGroupsReport| N00000000000000000000000000031102 + N00000000000000000000110000000003 -->|ReportRelatedToBusinessAsset| N00000000000000000000000000031101 + N00000000000000000000110000000003 -->|ReportUsesReport| N00000000000000000000000000031102 + N00000000000000000000110000000003 -->|ReportUsesReportAttribute| N00000000000000000000000000031027 + N00000000000000000000110000000003 -->|ReportUsesDataAttribute| N00000000000000000000000000031005 + N00000000000000000000090000000003 -->|inherits| N00000000000000000000110000000002 + N00000000000000000000110000000002 -->|ReportGroupsReport| N00000000000000000000000000031102 + N00000000000000000000110000000002 -->|ReportAttributeContainedInReport| N00000000000000000000000000031102 + N00000000000000000000110000000002 -->|BusinessDimensionGroupsReport| N00000000000000000000000000031102 + N00000000000000000000110000000002 -->|ReportRelatedToBusinessAsset| N00000000000000000000000000031101 + N00000000000000000000110000000002 -->|TableauWorkbookContainsTableauDataModel| N00000000000000000000110000000008 + N00000000000000000001110000000300["Tableau Worksheet"] + N00000000000000000000110000000003 -->|inherits| N00000000000000000001110000000300 + N00000000000000000001110000000300 -->|ReportGroupsReport| N00000000000000000000000000031102 + N00000000000000000001110000000300 -->|ReportRelatedToBusinessAsset| N00000000000000000000000000031101 + N00000000000000000001110000000300 -->|ReportUsesReport| N00000000000000000000000000031102 + N00000000000000000001110000000300 -->|ReportUsesReportAttribute| N00000000000000000000000000031027 + N00000000000000000001110000000300 -->|ReportUsesDataAttribute| N00000000000000000000000000031005 + N00000000000000000000000000031301 -->|DataAssetImplementedInTechnologyAsset| N00000000000000000000000000031002 + N00000000000000000000000000031301 -->|TechnologyAssetSystemOfRecordForBusinessTerm| N00000000000000000000000000011001 + N00000000000000000000000000031301 -->|TechnologyAssetSystemOfUseForBusinessTerm| N00000000000000000000000000011001 + N00000000000000000000000000031301 -->|TechnologyAssetSourceSystemForBusinessTerm| N00000000000000000000000000011001 + N00000000000000000000000000031301 -->|TechnologyAssetSystemOfRecordForDataAsset| N00000000000000000000000000031002 + N00000000000000000000000000031301 -->|TechnologyAssetSystemOfUseForDataAsset| N00000000000000000000000000031002 + N00000000000000000000000000031301 -->|TechnologyAssetSourceSystemForDataAsset| N00000000000000000000000000031002 + N00000000000000000000100000000115["ThoughtSpot Answer"] + N00000000000000000000090000000003 -->|inherits| N00000000000000000000100000000115 + N00000000000000000000100000000115 -->|ReportGroupsReport| N00000000000000000000000000031102 + N00000000000000000000100000000115 -->|BusinessDimensionGroupsReport| N00000000000000000000000000031102 + N00000000000000000000100000000116["ThoughtSpot Answer Visualization"] + N00000000000000000000090000000003 -->|inherits| N00000000000000000000100000000116 + N00000000000000000000100000000116 -->|ReportUsesDataAttribute| N00000000000000000000000000031005 + N00000000000000000000100000000116 -->|ReportGroupsReport| N00000000000000000000000000031102 + N00000000000000000000100000000116 -->|ReportUsesReport| N00000000000000000000000000031102 + N00000000000000000000100000000112["ThoughtSpot Connection"] + N00000000000000000000090000000005 -->|inherits| N00000000000000000000100000000112 + N00000000000000000000100000000112 -->|BusinessDimensionSourceSystem| N00000000000000000000000000031302 + N00000000000000000000100000000112 -->|TechnologyAssetSourceSystemForDataAsset| N00000000000000000000000000031002 + N00000000000000000000100000000119["ThoughtSpot Data Attribute"] + N00000000000000000000090000000006 -->|inherits| N00000000000000000000100000000119 + N00000000000000000000100000000119 -->|DataElementTargetsDataElement| N00000000000000000000000000031026 + N00000000000000000000100000000119 -->|BIDataModelContainsBIDataAttribute| N00000000000000000000090000000006 + N00000000000000000000100000000119 -->|DataEntityContainsDataAttribute| N00000000000000000000000000031005 + N00000000000000000000100000000119 -->|ReportUsesDataAttribute| N00000000000000000000000000031005 + N00000000000000000000100000000118["ThoughtSpot Data Entity"] + N00000000000000000000090000000007 -->|inherits| N00000000000000000000100000000118 + N00000000000000000000100000000118 -->|DataEntityContainsDataAttribute| N00000000000000000000000000031005 + N00000000000000000000100000000118 -->|TechnologyAssetSourceSystemForDataAsset| N00000000000000000000000000031002 + N00000000000000000000100000000117["ThoughtSpot Data Model"] + N00000000000000000000090000000008 -->|inherits| N00000000000000000000100000000117 + N00000000000000000000100000000117 -->|BIDataModelContainsBIDataAttribute| N00000000000000000000090000000006 + N00000000000000000000100000000117 -->|BIFolderContainsDataAsset| N00000000000000000000000000031002 + N00000000000000000000100000000114["ThoughtSpot Liveboard"] + N00000000000000000000090000000003 -->|inherits| N00000000000000000000100000000114 + N00000000000000000000100000000114 -->|ReportUsesReport| N00000000000000000000000000031102 + N00000000000000000000100000000114 -->|BusinessDimensionGroupsReport| N00000000000000000000000000031102 + N00000000000000000000100000000113["ThoughtSpot Org"] + N00000000000000000000090000000002 -->|inherits| N00000000000000000000100000000113 + N00000000000000000000100000000113 -->|BusinessDimensionGroupsReport| N00000000000000000000000000031102 + N00000000000000000000100000000113 -->|BIFolderContainsDataAsset| N00000000000000000000000000031002 + N00000000000000000000100000000113 -->|ServerHostsBusinessDimension| N00000000000000000000000000031105 + N00000000000000000000100000000113 -->|BusinessDimensionSourceSystem| N00000000000000000000000000031302 + N00000000000000000000100000000111["ThoughtSpot Tenant"] + N00000000000000000000090000000001 -->|inherits| N00000000000000000000100000000111 + N00000000000000000000100000000111 -->|TechnologyAssetGroupsTechnologyAsset| N00000000000000000000000000031301 + N00000000000000000000100000000111 -->|ServerHostsBusinessDimension| N00000000000000000000000000031105 + N00000000000000000000100000000075 -->|inherits| N00000000000000000000100000000076 + N00000000000000000000090000010013["User Defined Rule Score"] + N00000000000000000000000000031107 -->|inherits| N00000000000000000000090000010013 + N00000000000000000000090000010013 -->|DataQualityRuleExecutedByDataQualityMetric| N00000000000000000000000000031107 + N00000000000000000000000000005119["Validation Rule"] + N00000000000000000000000000031203 -->|inherits| N00000000000000000000000000005119 + Nc0e00000000000000000000000000261 -->|inherits| N00000000000000000000000000031403 + N00000000000000000000000000031403 -->|AIModelProvidedByVendor| N00000000000000000000000000031402 + N00000000000000000000000000031403 -->|BusinessAssetGroupsBusinessAsset| N00000000000000000000000000031101 + N00000000000000000000000000031403 -->|AssetCompliesToGovernanceAsset| N00000000000000000000000000031201 + N00000000000000000000000000031403 -->|DataSharingAgreementIsRequestedByBusinessDimension| N00000000000000000000000000031105 + N00000000000000000000000000031403 -->|BusinessDimensionIsLocatedInJurisdiction| Nc0e00000000000000000000000039008 + N00000000000000000000000000031403 -->|LineOfBusinessReceivesServiceProductByParty| Nc0e00000000000000000000000000261 + N00000000000000000000000000031403 -->|DataSharingAgreementIsAcceptedByBusinessDimension| N00000000000000000000000000031105 + N00000000000000000000000000031403 -->|BusinessProcessRecipientParty| Nc0e00000000000000000000000000261 + N00000000000000000000000000031403 -->|BusinessProcessProcessorParty| Nc0e00000000000000000000000000261 + N00000000000000000000000000031403 -->|BusinessProcessControllerParty| Nc0e00000000000000000000000000261 + N00000000000000000000000000031403 -->|BusinessProcessJointControllerParty| Nc0e00000000000000000000000000261 + N00000000000000000000000000031403 -->|TechnologyAssetIsOwnedByParty| Nc0e00000000000000000000000000261 + N00000000000000000000000000031403 -->|AssetIsPotentiallyImpactedByRisk| Nc0e00000000000000000000000039035 + N00000000000000000000000000031403 -->|ProviderOfDataProduct| N00000000000000000000000000050000 + N00000000000000000000000000031403 -->|BaseModelProvidedByVendor| N00000000000000000000000000031422 + N00000000000000000000000000031404["Vertex AI Model Version"] + N00000000000000000000000000031402 -->|inherits| N00000000000000000000000000031404 + N00000000000000000000000000031404 -->|AIUseCaseUsesAIModel| N00000000000000000000000000031402 + N00000000000000000000000000031404 -->|AIModelProvidedByVendor| N00000000000000000000000000031403 + N00000000000000000000000000031404 -->|AIModelUsesAIModel| N00000000000000000000000000031402 + N00000000000000000000000000031404 -->|AssetCompliesToGovernanceAsset| N00000000000000000000000000031201 + N00000000000000000000000000031404 -->|AIModelContainsFileContainer| N00000000000000000001002900000002 + N00000000000000000000000000031404 -->|AIProjectDeploysAIModel| N00000000000000000000000000031402 + N00000000000000000000000000031404 -->|ModelHasVersion| N00000000000000000000000000031402 + N00000000000000000000000000031404 -->|ModelVersionIsDeployedByModelDeployment| N00000000000000000000000000031500 \ No newline at end of file diff --git a/uniWork/persistence/Makefile b/uniWork/persistence/Makefile index d004d9e..d14e9ed 100644 --- a/uniWork/persistence/Makefile +++ b/uniWork/persistence/Makefile @@ -16,7 +16,7 @@ SCHEMA := schema LOGS := logs .PHONY: all migrate analyze path status semantic ldap rust-build clojure-run \ - ipad-url help clean + go-build ipad-url help clean all: migrate @@ -42,6 +42,9 @@ analyze: migrate | $(LOGS) rust-build: cargo build --release --manifest-path rust/Cargo.toml +go-build: + cd go && go build ./... + path: rust-build @echo "=== Phase 4: Shortest path $(src) → $(dst) ===" ./$(RUST_BIN) --db "$(SQLITE)" --mode shortest-path \ @@ -114,6 +117,7 @@ help: @echo " make path src=X dst=Y Shortest path between gen_ids (Rust)" @echo " make gen-id ns= Generate inode-style ID for namespace" @echo " make clojure-run Categories + similarity (JVM)" + @echo " make go-build Build Go chip query helpers" @echo " make semantic FOAF/DOAP/RSS output" @echo " make ldap Print LDAP entity tree" @echo " make status DB health + schema versions" diff --git a/uniWork/persistence/clojure/src/persistence/jprofiler.clj b/uniWork/persistence/clojure/src/persistence/jprofiler.clj new file mode 100644 index 0000000..359577c --- /dev/null +++ b/uniWork/persistence/clojure/src/persistence/jprofiler.clj @@ -0,0 +1,90 @@ +(ns persistence.jprofiler + "JProfiler attach and control for the Clojure JVM persistence process. + + Grammar reference: docs/xml/chip-queries.xml jprofiler-targets id=\"clojure-process\" + Companion: uniWork/persistence/groovy/JProfilerAttach.groovy + Launched from: Go lang=XML.g() chip_queries.go jprofiler target discovery + + JVM agent flag required at process startup: + java -agentpath:/opt/jprofiler/bin/linux-x64/libjprofilerti.so=port=8849,nowait=y ... + + Usage: + lein run -m persistence.jprofiler [status|start|stop []]" + (:require [clojure.data.json :as json]) + (:gen-class)) + +(def ^:const JPROFILER-PORT 8849) +(def ^:const CONFIG-ID "chip.profiler.clojure") +(def ^:const RUNTIME-LABEL "clojure") +(def ^:const DEFAULT-OUTDIR "/tmp/jprofiler-clojure") + +;; ── controller reflection (soft dependency on jprofiler agent) ───────────── + +(defn- ctrl [] + (try + (Class/forName "com.jprofiler.api.agent.Controller") + (catch ClassNotFoundException _ nil))) + +(defn- ctrl-invoke [^String method-name & typed-args] + (when-let [cls (ctrl)] + (let [arg-types (mapv first typed-args) + arg-values (mapv second typed-args) + m (.getMethod cls method-name (into-array Class arg-types))] + (.invoke m nil (object-array arg-values))))) + +;; ── status ──────────────────────────────────────────────────────────────────── + +(defn status [] + (let [base {:runtime RUNTIME-LABEL + :config_id CONFIG-ID + :port JPROFILER-PORT + :timestamp (str (java.time.Instant/now))}] + (if-not (ctrl) + (assoc base + :ok false + :profiler_active false + :note "JProfiler agent not on classpath — add -agentpath to JVM args") + (try + (let [active (ctrl-invoke "isAgentActive")] + (assoc base :ok true :profiler_active (boolean active))) + (catch Throwable t + (assoc base :ok false :profiler_active false :error (.getMessage t))))))) + +;; ── start CPU recording ─────────────────────────────────────────────────────── + +(defn start-cpu-recording + ([] (start-cpu-recording "chip-query-session")) + ([session-label] + (if-not (ctrl) + {:ok false :error "JProfiler agent not on classpath" :runtime RUNTIME-LABEL} + (try + (ctrl-invoke "startCPURecording" [Boolean/TYPE true]) + {:ok true :session session-label :runtime RUNTIME-LABEL} + (catch Throwable t + {:ok false :error (.getMessage t) :runtime RUNTIME-LABEL}))))) + +;; ── stop and save snapshot ──────────────────────────────────────────────────── + +(defn stop-and-snapshot + ([] (stop-and-snapshot DEFAULT-OUTDIR)) + ([out-dir] + (if-not (ctrl) + {:ok false :error "JProfiler agent not on classpath" :runtime RUNTIME-LABEL} + (try + (.mkdirs (java.io.File. out-dir)) + (ctrl-invoke "stopCPURecording") + (let [snapshot (format "%s/clojure-%d.jps" out-dir (System/currentTimeMillis))] + (ctrl-invoke "saveSnapshot" [String snapshot]) + {:ok true :snapshot snapshot :runtime RUNTIME-LABEL}) + (catch Throwable t + {:ok false :error (.getMessage t) :runtime RUNTIME-LABEL}))))) + +;; ── entry point ─────────────────────────────────────────────────────────────── + +(defn -main [& args] + (let [cmd (or (first args) "status") + result (case cmd + "start" (start-cpu-recording (or (second args) "chip-query-session")) + "stop" (stop-and-snapshot (or (second args) DEFAULT-OUTDIR)) + (status))] + (println (json/write-str result)))) diff --git a/uniWork/persistence/go/chip_queries.go b/uniWork/persistence/go/chip_queries.go new file mode 100644 index 0000000..84b98d6 --- /dev/null +++ b/uniWork/persistence/go/chip_queries.go @@ -0,0 +1,270 @@ +// chip_queries.go — Go entry point for the chip MCP query surface. +// +// Reads docs/xml/chip-queries.xml (lang=XML.g()) and exposes typed structures +// compatible with singine.persistence.v1 gRPC (persistence.proto). +// +// This file is the authoritative Go representation of the XML grammar. +// Python equivalent: singine-collibra/python/singine_collibra/chip_queries.py +// +// Usage: +// +// go run chip_queries.go [status|gen-id|jprofiler-targets] +package main + +import ( + "encoding/json" + "encoding/xml" + "fmt" + "os" + "os/exec" + "path/filepath" + "strconv" + "strings" + "time" +) + +// ── XML grammar types (lang=XML.g()) ───────────────────────────────────────── + +type ChipQueryGrammar struct { + XMLName xml.Name `xml:"chip-query-grammar"` + Version string `xml:"version,attr"` + Generated string `xml:"generated,attr"` + Protocol string `xml:"protocol,attr"` + EntryPoint string `xml:"entry-point,attr"` + Depths WorkspaceDepths `xml:"workspace-depths"` + QueryTypes []QueryType `xml:"query-types>query-type"` + GrpcBindings GrpcHttpBindings `xml:"grpc-http-bindings"` + JProfiler JProfilerTargets `xml:"jprofiler-targets"` +} + +type WorkspaceDepths struct { + Root string `xml:"root,attr"` + Depths []DepthLevel `xml:"depth"` +} + +type DepthLevel struct { + ID string `xml:"id,attr"` + Level int `xml:"level,attr"` + Symbol string `xml:"symbol,attr"` + Description string `xml:"description,attr"` +} + +type QueryType struct { + ID string `xml:"id,attr"` + Tool string `xml:"tool,attr"` + Chain string `xml:"chain,attr"` +} + +type GrpcHttpBindings struct { + Service string `xml:"service,attr"` + Proto string `xml:"proto,attr"` + GoPackage string `xml:"go-package,attr"` + GrpcPort string `xml:"grpc-port,attr"` + HTTPPort string `xml:"http-port,attr"` + Bindings []HTTPBinding `xml:"binding"` +} + +type HTTPBinding struct { + RPC string `xml:"rpc,attr"` + HTTPMethod string `xml:"http-method,attr"` + HTTPPath string `xml:"http-path,attr"` + Description string `xml:"description,attr"` +} + +type JProfilerTargets struct { + AgentPort string `xml:"agent-port,attr"` + Targets []JProfilerEntry `xml:"target"` +} + +type JProfilerEntry struct { + ID string `xml:"id,attr"` + Runtime string `xml:"runtime,attr"` + MainClassPattern string `xml:"main-class-pattern,attr"` + ConfigKey string `xml:"config-key,attr"` + SnapshotDir string `xml:"snapshot-dir,attr"` + Implementation string `xml:"implementation,attr"` +} + +// ── Workspace depth: ~ws(self, + ++ +++ ++++ +++++) ────────────────────────── + +type WorkspaceDepth int + +const ( + DepthSelf WorkspaceDepth = 0 // self + DepthShallow WorkspaceDepth = 1 // + + DepthMedium WorkspaceDepth = 2 // ++ + DepthDeep WorkspaceDepth = 3 // +++ + DepthDeeper WorkspaceDepth = 4 // ++++ + DepthFull WorkspaceDepth = 5 // +++++ +) + +// ── Code lookup request ─────────────────────────────────────────────────────── + +type CodeLookupRequest struct { + Term string `json:"term"` + Depth WorkspaceDepth `json:"depth"` + Scope string `json:"scope,omitempty"` +} + +// ── Type retrieval ──────────────────────────────────────────────────────────── + +type TypeRef struct { + IRI string `json:"type_iri"` + TypeName string `json:"type_name"` + CollibraID string `json:"collibra_id"` + AssetType string `json:"asset_type"` + Fragments []string `json:"fragments"` +} + +type TypeRetrieval struct { + TypeRef TypeRef `json:"type_ref"` + Properties map[string]interface{} `json:"properties"` + Relations []map[string]interface{} `json:"relations"` +} + +// ── gRPC-HTTP request ───────────────────────────────────────────────────────── + +type GrpcHttpRequest struct { + RPC string `json:"rpc"` + Body map[string]interface{} `json:"body"` + BaseURL string `json:"base_url"` + UseHTTP bool `json:"use_http"` +} + +// ── JProfiler target ────────────────────────────────────────────────────────── + +type JProfilerTarget struct { + ProcessID string `json:"process_id"` + Runtime string `json:"runtime"` + PID int `json:"pid"` + ConfigID string `json:"config_id"` + AgentPort int `json:"agent_port"` + AttachArgs string `json:"attach_args"` +} + +// ── Grammar loader ──────────────────────────────────────────────────────────── + +func loadGrammar(path string) (*ChipQueryGrammar, error) { + data, err := os.ReadFile(path) + if err != nil { + return nil, fmt.Errorf("reading grammar: %w", err) + } + var g ChipQueryGrammar + if err := xml.Unmarshal(data, &g); err != nil { + return nil, fmt.Errorf("parsing grammar XML: %w", err) + } + return &g, nil +} + +// ── JVM process discovery via jps ───────────────────────────────────────────── + +func discoverJVMTargets(grammar *ChipQueryGrammar) []JProfilerTarget { + out, err := exec.Command("jps", "-l").Output() + if err != nil { + return nil + } + port, _ := strconv.Atoi(grammar.JProfiler.AgentPort) + if port == 0 { + port = 8849 + } + + var targets []JProfilerTarget + for _, line := range strings.Split(string(out), "\n") { + parts := strings.SplitN(strings.TrimSpace(line), " ", 2) + if len(parts) < 2 { + continue + } + pid, _ := strconv.Atoi(parts[0]) + mainClass := parts[1] + + for _, t := range grammar.JProfiler.Targets { + for _, pattern := range strings.Split(t.MainClassPattern, "|") { + if strings.Contains(mainClass, pattern) { + targets = append(targets, JProfilerTarget{ + ProcessID: mainClass, + Runtime: t.Runtime, + PID: pid, + ConfigID: t.ConfigKey, + AgentPort: port, + AttachArgs: fmt.Sprintf("-agentpath:/opt/jprofiler/bin/linux-x64/libjprofilerti.so=port=%d,nowait=y,id=%s", port, t.ConfigKey), + }) + break + } + } + } + } + return targets +} + +func repoRoot() (string, error) { + dir, err := os.Getwd() + if err != nil { + return "", fmt.Errorf("get working directory: %w", err) + } + + for { + candidate := filepath.Join(dir, "docs", "xml", "chip-queries.xml") + if _, err := os.Stat(candidate); err == nil { + return dir, nil + } + parent := filepath.Dir(dir) + if parent == dir { + return "", fmt.Errorf("could not locate repository root from %s", dir) + } + dir = parent + } +} + +// ── Main ────────────────────────────────────────────────────────────────────── + +func main() { + cmd := "status" + if len(os.Args) > 1 { + cmd = os.Args[1] + } + + root, err := repoRoot() + if err != nil { + fmt.Fprintf(os.Stderr, "error: %v\n", err) + os.Exit(1) + } + grammarPath := filepath.Join(root, "docs", "xml", "chip-queries.xml") + + grammar, err := loadGrammar(grammarPath) + if err != nil { + fmt.Fprintf(os.Stderr, "error: %v\n", err) + os.Exit(1) + } + + var result interface{} + switch cmd { + case "jprofiler-targets": + result = map[string]interface{}{ + "ok": true, + "targets": discoverJVMTargets(grammar), + "timestamp": time.Now().UTC().Format(time.RFC3339), + } + case "grpc-bindings": + result = map[string]interface{}{ + "ok": true, + "service": grammar.GrpcBindings.Service, + "bindings": grammar.GrpcBindings.Bindings, + } + default: + result = map[string]interface{}{ + "ok": true, + "grammar": grammar.Version, + "protocol": grammar.Protocol, + "entry_point": grammar.EntryPoint, + "depths": grammar.Depths.Depths, + "query_types": grammar.QueryTypes, + "jprofiler": grammar.JProfiler.Targets, + "grpc_service": grammar.GrpcBindings.Service, + "timestamp": time.Now().UTC().Format(time.RFC3339), + } + } + + enc := json.NewEncoder(os.Stdout) + enc.SetIndent("", " ") + enc.Encode(result) //nolint:errcheck +} diff --git a/uniWork/persistence/go/go.mod b/uniWork/persistence/go/go.mod new file mode 100644 index 0000000..d54f96d --- /dev/null +++ b/uniWork/persistence/go/go.mod @@ -0,0 +1,3 @@ +module github.com/sindoc/collibra/persistence + +go 1.22 diff --git a/uniWork/persistence/groovy/JProfilerAttach.groovy b/uniWork/persistence/groovy/JProfilerAttach.groovy new file mode 100644 index 0000000..cf091f8 --- /dev/null +++ b/uniWork/persistence/groovy/JProfilerAttach.groovy @@ -0,0 +1,99 @@ +#!/usr/bin/env groovy +// JProfilerAttach.groovy — JProfiler attach and control for Groovy/JVM processes. +// +// Grammar reference: docs/xml/chip-queries.xml jprofiler-targets id="groovy-process" +// Companion: uniWork/persistence/clojure/src/persistence/jprofiler.clj +// Launched from: Go lang=XML.g() chip_queries.go jprofiler target discovery +// +// Usage: +// groovy JProfilerAttach.groovy [status|start|stop []] +// +// JVM agent flag required at process startup: +// java -agentpath:/opt/jprofiler/bin/linux-x64/libjprofilerti.so=port=8849,nowait=y ... + +import groovy.json.JsonOutput +import groovy.transform.CompileStatic + +@CompileStatic +class JProfilerAttach { + + static final int JPROFILER_PORT = 8849 + static final String CONFIG_ID = "chip.profiler.groovy" + static final String RUNTIME_LABEL = "groovy" + static final String DEFAULT_OUTDIR = "/tmp/jprofiler-groovy" + + // ── status ─────────────────────────────────────────────────────────────── + + static Map status() { + Map result = [ + runtime : RUNTIME_LABEL, + config_id : CONFIG_ID, + port : JPROFILER_PORT, + timestamp : new Date().toInstant().toString(), + ] + try { + Class ctrl = Class.forName("com.jprofiler.api.agent.Controller") + boolean active = (Boolean) ctrl.getMethod("isAgentActive").invoke(null) + result.profiler_active = active + result.ok = true + } catch (ClassNotFoundException ignored) { + result.profiler_active = false + result.ok = false + result.note = "JProfiler agent not on classpath — add -agentpath to JVM args" + } catch (Throwable t) { + result.profiler_active = false + result.ok = false + result.error = t.message + } + return result + } + + // ── start CPU recording ────────────────────────────────────────────────── + + static Map startCpuRecording(String sessionLabel = "chip-query-session") { + try { + Class ctrl = Class.forName("com.jprofiler.api.agent.Controller") + ctrl.getMethod("startCPURecording", boolean).invoke(null, true) + return [ok: true, session: sessionLabel, runtime: RUNTIME_LABEL] + } catch (ClassNotFoundException ignored) { + return [ok: false, error: "JProfiler agent not on classpath", runtime: RUNTIME_LABEL] + } catch (Throwable t) { + return [ok: false, error: t.message, runtime: RUNTIME_LABEL] + } + } + + // ── stop and save snapshot ─────────────────────────────────────────────── + + static Map stopAndSnapshot(String outDir = DEFAULT_OUTDIR) { + try { + new File(outDir).mkdirs() + Class ctrl = Class.forName("com.jprofiler.api.agent.Controller") + ctrl.getMethod("stopCPURecording").invoke(null) + String snapshotFile = "${outDir}/groovy-${System.currentTimeMillis()}.jps" + ctrl.getMethod("saveSnapshot", String).invoke(null, snapshotFile) + return [ok: true, snapshot: snapshotFile, runtime: RUNTIME_LABEL] + } catch (ClassNotFoundException ignored) { + return [ok: false, error: "JProfiler agent not on classpath", runtime: RUNTIME_LABEL] + } catch (Throwable t) { + return [ok: false, error: t.message, runtime: RUNTIME_LABEL] + } + } + + // ── entry point ────────────────────────────────────────────────────────── + + static void main(String[] args) { + String cmd = args.length > 0 ? args[0] : "status" + Map result + switch (cmd) { + case "start": + result = startCpuRecording(args.length > 1 ? args[1] : "chip-query-session") + break + case "stop": + result = stopAndSnapshot(args.length > 1 ? args[1] : DEFAULT_OUTDIR) + break + default: + result = status() + } + println JsonOutput.toJson(result) + } +}