Reference
Authoritative technical contract for Mopheus IT Asset TBox metamodel, including 17 standard concept attribute schemas, 7 canonical predicate axiom matrices, and AssetManifest YAML specifications.
The Mopheus IT Asset system is built on a formal ontology metamodel (TBox). All imported instances (ABox) are rigorously validated against their respective JSONSchema technical contracts, and all directed topology edges (asset_relations) must satisfy topological axiom whitelists.
This reference document is intended for SRE engineers, platform developers, and AI agent skill authors who require exact schema definitions and architectural constraints.
Metamodel Architecture Contract (TBox Contract)
In the Mopheus knowledge graph, every asset entity belongs to exactly one Concept metamodel. The ingestion pipeline enforces the following validation guarantees:
- Strict Technical Attribute Schema (
attributes):- Each Concept binds to a dedicated
attributes_schema(JSONSchema specification). - No Undeclared Fields:
additionalProperties: falseis enforced by default; mistyped or unrecognized properties are rejected. - Mandatory Field Enforcement: Key operational properties (such as
management_ipforHost,engineanddb_modeforDatabase) are strictly required. - Strict Enumerations: Roles, cluster types, and engine types must match predefined enum values.
- Each Concept binds to a dedicated
- Topological Axiom Validation (
allowed_relations):- Graph edges are not only constrained to 7 canonical predicates, but also strictly validate Subject Concept to Object Concept combinations. For example,
Servicecan emitruns_ontoHostorContainer, but cannot directlyruns_ontoDatabase.
- Graph edges are not only constrained to 7 canonical predicates, but also strictly validate Subject Concept to Object Concept combinations. For example,
- Causal Cycle & DAG Loop Detection:
- For hierarchical and causal relations such as
containsanddepends_on,mop asset applyautomatically conducts cycle detection to prevent infinite dependency loops.
- For hierarchical and causal relations such as
Standard Concept Metamodels (17 Authoritative Concepts)
Enterprise IT infrastructure is structured into 7 core domains comprising 17 authoritative concept metamodels:
| Domain | Concept | Description | Required Attributes (required) | Optional Attributes & Enum Constraints |
|---|---|---|---|---|
| Business | Application | Top-level enterprise business system (e.g. CRM, Core Billing) | (None) | additionalProperties: false |
Service | Deployable microservice or business component | (None) | codebase_repo (Git repository URL) | |
| Platform | Cluster | High-availability control plane and consensus cluster | cluster_type | cluster_type: [oracle_crs, k8s_control_plane, pacemaker, patroni_etcd, keepalived_vrrp]api_endpoint, credential_ref |
Container | Container instance or Kubernetes Pod | (None) | additionalProperties: false | |
| Compute | Host | Bare-metal server, virtual machine (VM), or cloud ECS | management_ip | ips (Array of IPs)role: [worker, control_plane, gateway, standalone]zone, rack, credential_ref |
| Database | Database | Logical database cluster or stateful data service | engine, db_mode | engine: string (e.g. postgresql, mysql, oracle, tidb, redis, elasticsearch, mogdb, yashandb, oceanbase)db_mode: [single, cluster, distributed, primary_standby, rac]version, credential_ref |
DatabaseInstance | Single database or cache engine process instance | port | iprole: [primary, standby, read_replica, witness]instance_name, credential_ref (e.g. swissql://<profile-id>[?server=svc:<service-id>] or SSH URI) | |
DatabaseShard | Logical partition or sharding group in distributed DB | (None) | additionalProperties: false | |
DatabaseComponent | Specialized coordinator/proxy/metadata node | component_role, port | component_role: [proxy, coordinator, storage_node, metadata_pd, es_master, es_data]ip | |
| Middleware | MessageQueue | Message broker cluster or streaming event service | mq_type | mq_type: [kafka, rocketmq, rabbitmq, emqx, pulsar]endpoints (Array of strings), version |
| Network | VirtualIP | High-availability Virtual IP or Oracle SCAN VIP | ip, role | role: [vip, scan, floating] |
LoadBalancer | Hardware/software load balancer or API gateway | lb_type | lb_type: [nginx, haproxy, f5, cloud_slb, envoy, apisix, kong, k8s_ingress]ip, ports (Array of ints) | |
DNSRecord | Domain Name System resolution record | domain, record_type | record_type: [A, CNAME, AAAA, PTR] | |
NetworkDevice | Physical or virtual network switch, router, or firewall | device_type, mgmt_ip | device_type: [switch_core, switch_tor, router, firewall, gateway]credential_ref | |
IPAddress | Physical interface IP, out-of-band IPMI, or heartbeat IP | ip | subnet | |
| Storage | StoragePool | Distributed or enterprise storage pool / diskgroup | storage_type | storage_type: [ceph, nfs, san, asm_diskgroup, local_lvm] |
StorageVolume | Logical volume, LUN, or persistent volume (PV) | volume_type | volume_type: [ssd, hdd, nvme, nfs_mount] |
Canonical Predicates & Axiom Validity Matrix
All directed graph edges (Subject $\to$ Predicate $\to$ Object) utilize 7 immutable canonical predicates, strictly governed by the following axiom whitelist (allowed_relations):
| Canonical Predicate | Semantic Direction (Subject $\to$ Object) | Valid Subject Concept | Allowed Object Target Concepts |
|---|---|---|---|
contains | Whole $\to$ Part (Compositional hierarchy) | Application | Service, Database, MessageQueue, VirtualIP, LoadBalancer, DNSRecord |
Service | Container | ||
Cluster | Host, StoragePool | ||
Host | IPAddress, StorageVolume | ||
Database | DatabaseShard, DatabaseInstance, DatabaseComponent | ||
DatabaseShard | DatabaseInstance | ||
NetworkDevice | IPAddress | ||
StoragePool | StorageVolume | ||
runs_on | Workload $\to$ Host (Execution runtime) | Service | Host, Container, Cluster |
Container | Host, Cluster | ||
DatabaseInstance | Host, Container | ||
DatabaseComponent | Host, Container | ||
MessageQueue | Host, Container | ||
VirtualIP | Host, NetworkDevice | ||
LoadBalancer | Host, Container, NetworkDevice | ||
IPAddress | Host, NetworkDevice | ||
StorageVolume | Host | ||
routes_to | Source $\to$ Target (Traffic & routing) | DNSRecord | LoadBalancer, VirtualIP, IPAddress, Host |
LoadBalancer | Service, DatabaseInstance, VirtualIP, Host | ||
VirtualIP | DatabaseInstance, DatabaseComponent, Service, Host, LoadBalancer | ||
DatabaseComponent | DatabaseInstance, DatabaseComponent | ||
depends_on | Caller $\to$ Callee (Runtime causal dependency) | Application | Application, Service |
Service | Service, Database, MessageQueue, VirtualIP, LoadBalancer | ||
Container | StorageVolume | ||
Host | NetworkDevice, StoragePool | ||
Database | Cluster, StoragePool | ||
DatabaseInstance | StorageVolume | ||
MessageQueue | Cluster, StoragePool, StorageVolume | ||
replicates_to | Primary $\to$ Replica (Stateful replication) | DatabaseInstance | DatabaseInstance |
clustered_with | Peer $\leftrightarrow$ Peer (Symmetric HA peering) | Host | Host |
DatabaseInstance | DatabaseInstance | ||
DatabaseComponent | DatabaseComponent | ||
NetworkDevice | NetworkDevice | ||
manages | Control $\to$ Target (Governance & control plane) | Cluster | Database, VirtualIP, Service |
Declarative Manifest Specification (AssetManifest YAML)
Mopheus uses declarative YAML manifests for bulk synchronization, versioning, and backup:
version: v1 # Immutable version identifier, must be v1
kind: AssetManifest # Immutable type, must be AssetManifest
metadata:
workspace: ecommerce-prod # Target workspace slug
environment: prod # Default environment: prod | staging | test | dev
assets:
- id: string # [Required] Globally unique asset ID (e.g. svc:order-gw)
concept: string # [Required] One of the 17 standard ontology concepts
name: string # [Required] Human-readable standard name
aliases: # [Optional] List of search aliases for fuzzy entity resolution
- string
status: active # [Required] Lifecycle state: active | draining | offline | unhealthy
environment: prod # [Required] Environment: prod | staging | test | dev
attributes: # [Optional] Technical attributes strictly validated by Concept schema
key: value
labels: # [Optional] Governance tags (freeform key-value pairs)
owner_team: string # Responsible team (e.g. order-dev, billing-dba)
tier: string # Criticality tier (P0 | P1 | P2 | P3)
oncall: string # On-call contact
relations:
- subject: string # [Required] Source asset ID
predicate: string # [Required] One of the 7 canonical predicates
object: string # [Required] Target asset ID
attributes: # [Optional] Edge attributes (e.g. port, protocol)
port: 8080Asset ID Character Set
Asset IDs must match ^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$: the first character must be a letter or digit, followed only by letters, digits, :, _, -, or .. Slashes (/), spaces, ?, #, %, and non-ASCII characters are rejected with HTTP 400 at every entry point (REST API, manifest YAML, and CLI). Use a colon instead of a slash, for example svc:order-gw rather than svc/order-gw; the CLI rejects slash IDs locally and suggests the colon form. Colon-form IDs are valid URL path segments and require no escaping.
Redis CLI Through an Asset
mopheus tool redis-cli <asset-id-or-name> [--user <username>] -- <redis-cli arguments...> resolves the asset in the current workspace, reads its password credential through the encrypted credential API, and invokes the local redis-cli. The asset must be a Database with attributes.engine: redis (or have concept Redis), and its selected password credential must include a connection host and port. When exactly one password credential exists, --user is optional; otherwise specify the credential username with --user. Connection options and password come from the asset, so do not pass host, port, or authentication options after --.
Example: mopheus tool redis-cli cache-prod -- PING. The local client must be redis-cli 6.0 or newer so the password can be passed through REDISCLI_AUTH instead of process arguments. Redis server 5.x uses the default account; named ACL users require Redis server 6.0 or newer. See redis-cli --help for native client arguments.
MongoDB Shell Through an Asset
mopheus tool mongosh <asset-id-or-name> [--user <username>] -- <mongosh arguments...> resolves a MongoDB asset, reads its connection details and password through the encrypted credential API, and starts the local mongosh. Set attributes.engine: mongodb (or mongo) and configure a password credential. Omit --user when exactly one password credential exists; otherwise use --user <username> to select an account. The authentication database defaults to admin.
Fill in username: <username> and secret.password: <password> in a restricted-permission credential file, set its mode to 0600, then save it with mopheus asset credential add <asset-id> --file <credentials.yaml>. The connection URI is passed through the child process environment and is not exposed in process arguments. Arguments after -- cannot override the host, port, username, password, authentication database, or connection URI. See mongosh --help for native client arguments.
Example: mopheus tool mongosh mongo-prod --user <username> -- --eval 'db.adminCommand({ping: 1})'.
CLI Concept Probing Commands
Engineers and autonomous agents can inspect metamodels directly via the CLI:
# 1. List all registered concepts and categories in current workspace
mop asset concept list
# 2. Inspect JSONSchema and allowed relations for a specific concept
mop asset concept get Host
mop asset concept get Database
# 3. Validate and apply declarative manifest
mop asset apply -f production-topology.yaml
# 4. Export current workspace topology
mop asset export > backup-topology.yamlTemplates
Excel and tabular template specifications for importing enterprise IT assets into Mopheus, enabling AI agents to automatically generate declarative Asset Manifests.
SSH Remote Execution
Mopheus SSH is a built-in remote execution and file transfer tool deeply integrated with IT Asset Center and Zero-Trust key management.