Open Standard for Infrastructure Resource Interchange Schema
Vendor-neutral JSON format for describing infrastructure resources and their topological relationships across heterogeneous IT and OT environments.
The challenge
Modern infrastructure spans multiple stacks and providers: hyperscalers (AWS, Azure, GCP etc.), public clouds providers, on-prem datacenters and complex OT environments integration.
While some platforms export inventories (often as JSON), the representations are inconsistent across vendors even for equivalent concepts like identity, properties, and relationships.
The solution
OSIRIS defines a vendor-neutral JSON schema for describing infrastructure resources and topological relationships across heterogeneous environments.
It normalizes exports from hyperscalers and cloud providers, on-prem datacenters (compute, storage, network), and supports OT inclusion where applicable (initial v1.0 scope).
What you get
Six core capabilities that make OSIRIS an open standard for infrastructure resource and topology interchange.
Unified design
Built for heterogeneous IT environments, with a clear extension path for OT and other domains as adoption grows.
Explicit relationships
First-class representation of connections, dependencies, containment, and other topology relationships.
Flexible grouping
Support for logical and physical grouping that reflects real organizational and architectural structures without forcing a single taxonomy.
Provider attribution
Resources preserve traceability to their source system/provider while using a standardized, vendor-neutral representation.
Designed for extensibility
A defined mechanism for vendor-specific properties and custom resource types without breaking compatibility.
Three-Level validation
Structural (schema), semantic and domain validation improving consistency and data quality when validation tooling is applied.
Design principles
OSIRIS is a static snapshot interchange format. It captures what exists and how it relates at a point in time. It was not designed as a real-time monitoring system, a deployment tool, or an Infrastructure-as-Code engine.
block What OSIRIS is NOT
check_circle What OSIRIS IS
Optimized for scenarios where documentation and topology must be exchanged between systems and teams.
Get hands-on with OSIRIS
Explore a Microsoft Azure and AWS OSIRIS topology snapshot with relationships, providers and groupings captured in one portable JSON document.
1{
2 "$schema": "https://osirisjson.org/schema/v1.0/osiris.schema.json",
3 "version": "1.0.0",
4 "metadata": {
5 "timestamp": "2026-01-08T15:45:00Z",
6 "generator": {
7 "name": "manual",
8 "version": "1.0.0"
9 },
10 "scope": {
11 "name": "Multi-cloud web application",
12 "description": "Three-tier application with frontend and database in Azure East US, API backend in AWS US-East-1",
13 "providers": ["aws", "azure"],
14 "regions": ["us-east-1", "eastus"],
15 "accounts": ["123456789012"],
16 "environments": ["production"]
17 }
18 },
19 "topology": {
20 "resources": [
21 {
22 "id": "azure::app-web-frontend",
23 "type": "compute.container",
24 "name": "web-frontend-prod",
25 "description": "Azure App Service hosting React frontend",
26 "provider": {
27 "name": "azure",
28 "type": "Microsoft.Web/sites",
29 "native_id": "/subscriptions/sub-001/resourceGroups/prod-rg/providers/Microsoft.Web/sites/web-frontend-prod",
30 "region": "eastus",
31 "subscription": "sub-001",
32 "tenant": "tenant-001"
33 },
34 "status": "active",
35 "state": "running",
36 "properties": {
37 "kind": "app,linux",
38 "runtime_stack": "NODE|18-lts",
39 "default_hostname": "web-frontend-prod.azurewebsites.net",
40 "https_only": true,
41 "ftps_state": "Disabled",
42 "reserved": true
43 },
44 "tags": {
45 "Environment": "production",
46 "Tier": "frontend",
47 "Platform": "azure"
48 }
49 },
50 {
51 "id": "aws::i-0xyz789abc123",
52 "type": "compute.vm",
53 "name": "api-server-prod-01",
54 "description": "AWS EC2 instance running API backend",
55 "provider": {
56 "name": "aws",
57 "type": "AWS::EC2::Instance",
58 "native_id": "i-0xyz789abc123",
59 "region": "us-east-1",
60 "account": "123456789012",
61 "zone": "us-east-1b"
62 },
63 "status": "active",
64 "state": "running",
65 "properties": {
66 "instance_type": "c5.xlarge",
67 "platform": "linux",
68 "image_id": "ami-0c55b159cbfafe1f0",
69 "private_ip": "10.0.2.78",
70 "public_ip": "203.0.113.10",
71 "vpc_id": "vpc-0def456",
72 "subnet_id": "subnet-0ghi789"
73 },
74 "tags": {
75 "Environment": "production",
76 "Tier": "backend",
77 "Platform": "aws"
78 }
79 },
80 {
81 "id": "azure::sql-prod-db",
82 "type": "application.database",
83 "name": "prod-sql-database",
84 "description": "Azure SQL Database for application data",
85 "provider": {
86 "name": "azure",
87 "type": "Microsoft.Sql/servers/databases",
88 "native_id": "/subscriptions/sub-001/resourceGroups/prod-rg/providers/Microsoft.Sql/servers/prod-sql-srv/databases/prod-db",
89 "region": "eastus",
90 "subscription": "sub-001"
91 },
92 "status": "active",
93 "state": "online",
94 "properties": {
95 "edition": "Standard",
96 "service_tier": "S2",
97 "max_size_bytes": 268435456000,
98 "server_name": "prod-sql-srv.database.windows.net",
99 "collation": "SQL_Latin1_General_CP1_CI_AS",
100 "zone_redundant": false
101 },
102 "tags": {
103 "Environment": "production",
104 "Engine": "mssql",
105 "Platform": "azure"
106 }
107 },
108 {
109 "id": "azure::redis-cache-prod",
110 "type": "application.cache",
111 "name": "prod-redis-cache",
112 "description": "Azure Redis Cache for session storage",
113 "provider": {
114 "name": "azure",
115 "type": "Microsoft.Cache/Redis",
116 "native_id": "/subscriptions/sub-001/resourceGroups/prod-rg/providers/Microsoft.Cache/Redis/prod-redis",
117 "region": "eastus",
118 "subscription": "sub-001"
119 },
120 "status": "active",
121 "state": "running",
122 "properties": {
123 "sku": "Standard",
124 "family": "C",
125 "capacity": 1,
126 "redis_version": "6.0",
127 "port": 6379,
128 "ssl_port": 6380,
129 "hostname": "prod-redis.redis.cache.windows.net"
130 },
131 "tags": {
132 "Environment": "production",
133 "Purpose": "session-cache",
134 "Platform": "azure"
135 }
136 }
137 ],
138 "connections": [
139 {
140 "id": "conn-frontend-to-api",
141 "type": "dependency",
142 "source": "azure::app-web-frontend",
143 "target": "aws::i-0xyz789abc123",
144 "direction": "forward",
145 "name": "Frontend to API",
146 "description": "Cross-cloud API calls from Azure frontend to AWS backend",
147 "status": "active",
148 "properties": {
149 "protocol": "https",
150 "port": 443,
151 "endpoint": "https://api.example.com/v1",
152 "authentication": "oauth2"
153 },
154 "tags": {
155 "type": "cross-cloud",
156 "critical": "true"
157 }
158 },
159 {
160 "id": "conn-api-to-db",
161 "type": "dependency",
162 "source": "aws::i-0xyz789abc123",
163 "target": "azure::sql-prod-db",
164 "direction": "forward",
165 "name": "API to Database",
166 "description": "Database connection from AWS API to Azure SQL",
167 "status": "active",
168 "properties": {
169 "protocol": "tds",
170 "port": 1433,
171 "connection_string_encrypted": true,
172 "connection_pool_size": 20
173 },
174 "tags": {
175 "type": "cross-cloud",
176 "critical": "true"
177 }
178 },
179 {
180 "id": "conn-frontend-to-cache",
181 "type": "dependency",
182 "source": "azure::app-web-frontend",
183 "target": "azure::redis-cache-prod",
184 "direction": "bidirectional",
185 "name": "Frontend session cache",
186 "description": "Session data storage and retrieval",
187 "status": "active",
188 "properties": {
189 "protocol": "redis",
190 "port": 6380,
191 "ssl": true,
192 "use_case": "session-storage"
193 }
194 },
195 {
196 "id": "conn-api-to-cache",
197 "type": "dependency",
198 "source": "aws::i-0xyz789abc123",
199 "target": "azure::redis-cache-prod",
200 "direction": "bidirectional",
201 "name": "API cache access",
202 "description": "API response caching",
203 "status": "active",
204 "properties": {
205 "protocol": "redis",
206 "port": 6380,
207 "ssl": true,
208 "use_case": "response-cache"
209 }
210 }
211 ]
212 }
213}
Get involved in the community
GitHub Discussions
Ask questions, share ideas, and help shape the specification
GitHub Repository
Contribute code, report issues, and submit pull requests
Ways to contribute
Code
Build producers/parsers for hyperscalers, cloud platforms and on-prem IT/OT systems.
Documentation
Improve guides, write tutorials and real-world use cases to help others adopt OSIRIS.
Testing
Validate the spec and schema with real infrastructure topologies and edge cases.
Feedback
Report issues, suggest improvements, or propose extensions and new features.
Tooling
Create SDKs, CLI tools, validators, exporters and documentation/diagramming tools.
Spread the Word
Write posts, give talks, record demos and share OSIRIS with your network.
Design & templates
Design high quality diagram templates, graphic layouts for docs and website, icons, sample datasets and reusable assets for the community.
Roadmap
OSIRIS is community-driven
OSIRIS was born from real-world problems and continues to grow through feedback, new ideas and practical contributions. If you have suggestions or want to help, jump in your input helps shape both the roadmap and the standard.
Support OSIRIS
Help us build an open standard for infrastructure documentation and topology exchange. Funding supports ongoing maintenance, tooling, and long-term sustainability.
Accelerate Development
Fund core features, parsers, and tooling that benefit the entire community.
Better Documentation
Support comprehensive guides, tutorials, and examples for all skill levels.
Grow the Ecosystem
Enable community events, integrations, and long-term standardization efforts.