Standard Ouvert pour le Schéma d'Échange de Ressources d'Infrastructure
OSIRIS JSON produit des documents JSON indépendants des fournisseurs pour décrire les ressources d'infrastructure et leurs relations topologiques dans des environnements IT et OT hétérogènes. Un format d'échange conçu pour la portabilité, la clarté de bout en bout et l'inclusion OT dès sa conception.
Le problème
L'infrastructure moderne s'étend sur plusieurs stacks et fournisseurs : hyperscalers (AWS, Azure, GCP, etc.), fournisseurs de cloud public, datacenters on-prem et intégration d'environnements OT complexes.
Bien que certaines plateformes exportent des inventaires (souvent en JSON), les représentations sont incohérentes entre les fournisseurs, même pour des concepts équivalents comme l'identité, les propriétés et les relations.
La solution
OSIRIS JSON définit un schéma JSON indépendant des fournisseurs pour décrire les ressources d'infrastructure et les relations topologiques dans des environnements hétérogènes.
L'objectif d'OSIRIS JSON est de normaliser les exports des hyperscalers et fournisseurs cloud ainsi que des équipements de datacenters on-prem (calcul, stockage, réseau).
Dès la première version de la Spécification, OSIRIS JSON prend en charge l'inclusion OT by design.
Ce que vous obtenez
Six capacités fondamentales qui font d'OSIRIS JSON un standard ouvert pour l'échange de ressources d'infrastructure et de topologie.
Conception unifiée
Conçu pour les environnements IT hétérogènes, avec un chemin d'extension clair pour l'OT et d'autres domaines à mesure que l'adoption grandit.
Relations explicites
Représentation de première classe des connexions, dépendances, containment et autres relations topologiques.
Regroupement flexible
Prise en charge du regroupement logique et physique qui reflète les structures organisationnelles et architecturales réelles sans forcer une taxonomie unique.
Attribution du fournisseur
Les ressources préservent la traçabilité vers leur système/fournisseur source en utilisant une représentation standardisée et indépendante du fournisseur.
Conçu pour l'extensibilité
Un mécanisme défini pour les propriétés spécifiques aux fournisseurs et les types de ressources personnalisés sans compromettre la compatibilité.
Validation à trois niveaux
Validation structurelle (schéma), sémantique et de domaine améliorant la cohérence et la qualité des données lorsque des outils de validation sont appliqués.
Principes de conception
OSIRIS JSON est un format d'échange de snapshots statiques. Il capture ce qui existe et comment cela est relié à un instant donné. Il n'a pas été conçu comme un système de surveillance en temps réel, un outil de déploiement ou un moteur Infrastructure-as-Code.
block OSIRIS JSON N'EST PAS
check_circle OSIRIS JSON EST
Optimisé pour les scénarios où la documentation et la topologie doivent être échangées entre systèmes et équipes.
Testez les exemples OSIRIS JSON
Explorez de vrais snapshots de topologie OSIRIS JSON avec des relations, fournisseurs et regroupements capturés dans un document JSON portable.
Application sur Azure avec services API sur AWS
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}
Rejoignez la communauté
GitHub Discussions
Posez des questions, partagez des idées et aidez à façonner la spécification
Dépôt GitHub
Contribuez du code, signalez des problèmes et soumettez des pull requests
Façons de contribuer
Code
Construisez des producteurs/parsers pour les hyperscalers, plateformes cloud et systèmes IT/OT on-prem.
Documentation
Améliorez les guides, rédigez des tutoriels et des cas d'utilisation réels pour aider d'autres à adopter OSIRIS JSON.
Testing
Validez la spécification et le schéma avec de vraies topologies d'infrastructure et des cas limites.
Feedback
Signalez des problèmes, suggérez des améliorations ou proposez des extensions et de nouvelles fonctionnalités.
Outillage
Créez des SDKs, des outils CLI, des validateurs, des exportateurs et des outils de documentation/diagrammes.
Faites passer le mot
Écrivez des articles, donnez des conférences, enregistrez des démos et partagez OSIRIS JSON avec votre réseau.
Design & modèles
Concevez des modèles de diagrammes de haute qualité, des layouts graphiques pour la documentation et le site web, des icônes, des jeux de données d'exemple et des ressources réutilisables pour la communauté.
Feuille de route
OSIRIS JSON est porté par la communauté
OSIRIS JSON est né en affrontant des problèmes du monde réel et continue de grandir grâce aux retours, aux nouvelles idées et aux contributions pratiques. Si vous avez des suggestions ou souhaitez aider, participez : votre contribution aide à façonner à la fois la feuille de route et le standard.
Soutenir OSIRIS JSON
OSIRIS JSON en est à ses débuts. Pour le moment, l'adoption et les retours comptent plus que le financement. Essayez les outils, testez-les sur une infrastructure réelle et dites-nous ce qui manque.
Utilisez-le et signalez
Exécutez un producer sur votre infrastructure, validez la sortie et ouvrez une issue quand quelque chose ne fonctionne pas.
Contribuez
Soumettez des exemples réels, améliorez la documentation ou créez un producer pour votre plateforme.
Faites passer le mot
Partagez OSIRIS avec votre équipe, écrivez sur votre expérience ou mentionnez-le dans les communautés pertinentes.