{ "schema": "stella.callgraph.v1", "scanKey": "scan:gin-api:1.5.0", "language": "Go", "artifacts": [ { "artifactKey": "gin-api", "kind": "go-binary", "sha256": "d5e6f78901234567890abcdef0123456789abcdef0123456789abcdef0123456", "purl": "pkg:golang/github.com/example/gin-api@1.5.0", "filePath": "/app/gin-api", "sizeBytes": 15000000 } ], "nodes": [ { "id": "g001", "nodeId": "g001", "name": "main", "kind": "function", "namespace": "main", "file": "main.go", "line": 12, "symbolKey": "main.main", "artifactKey": "gin-api", "visibility": "Public", "isEntrypointCandidate": true, "flags": 1 }, { "id": "g002", "nodeId": "g002", "name": "GetProduct", "kind": "function", "namespace": "handlers", "file": "product_handler.go", "line": 28, "symbolKey": "github.com/example/gin-api/handlers.GetProduct", "artifactKey": "gin-api", "visibility": "Public", "isEntrypointCandidate": true, "attributes": { "httpMethod": "GET", "route": "/api/products/:id" }, "flags": 3 }, { "id": "g003", "nodeId": "g003", "name": "FindByID", "kind": "function", "namespace": "repository", "file": "product_repo.go", "line": 45, "symbolKey": "github.com/example/gin-api/repository.(*ProductRepo).FindByID", "artifactKey": "gin-api", "visibility": "Public", "isEntrypointCandidate": false, "flags": 0 }, { "id": "g004", "nodeId": "g004", "name": "init", "kind": "function", "namespace": "config", "file": "config.go", "line": 8, "symbolKey": "github.com/example/gin-api/config.init", "artifactKey": "gin-api", "visibility": "Unknown", "isEntrypointCandidate": true, "flags": 2 } ], "edges": [ { "sourceId": "g004", "targetId": "g001", "from": "g004", "to": "g001", "type": "init", "kind": "Static", "reason": "DirectCall", "weight": 1.0, "isResolved": true, "provenance": "go-init-order" }, { "sourceId": "g001", "targetId": "g002", "from": "g001", "to": "g002", "type": "router-bind", "kind": "Heuristic", "reason": "DelegateCreate", "weight": 0.9, "isResolved": true, "provenance": "gin-router" }, { "sourceId": "g002", "targetId": "g003", "from": "g002", "to": "g003", "type": "interface", "kind": "Static", "reason": "VirtualCall", "weight": 1.0, "isResolved": true } ], "entrypoints": [ { "nodeId": "g004", "kind": "ModuleInit", "framework": "Unknown", "source": "convention", "phase": "ModuleInit", "order": 0 }, { "nodeId": "g001", "kind": "Main", "framework": "Gin", "source": "convention", "phase": "AppStart", "order": 1 }, { "nodeId": "g002", "kind": "Http", "route": "/api/products/:id", "httpMethod": "GET", "framework": "Gin", "source": "code-analysis", "phase": "Runtime", "order": 2 } ], "metadata": { "toolId": "stellaops.scanner.go", "toolVersion": "1.0.0", "analysisTimestamp": "2025-01-15T13:00:00Z", "sourceCommit": "012def345abc", "buildId": "build-004" }, "id": "cg-go-gin-api-001", "languageString": "go", "component": "gin-api", "version": "1.5.0", "ingestedAt": "2025-01-15T13:00:00Z", "graphHash": "sha256:d4e5f6a7b8c9" }