--- title: hello2 config: look: handDrawn layout: elk elk: --- stateDiagram-v2 direction LR accTitle: An idealized Open Source supply-chain graph %% state "š¦ Importer" as author_importer state "š„ Supplier, Owner" as author_owner state "šØš„ Maintainer, Author\nšØ Custodian" as author state "š© Distributor" as repository_distributor state "š¦ Importer" as language_importer state "š¦šØ Packager" as language_packager state "š¦šØ OSS Steward" as language_steward state "šØ Curator" as language_curator state "š© Distributor" as language_distributor state "š¦ Contributor" as contributor state "š¦ Importer" as package_importer state "šØ Patcher" as package_patcher state "šØš¦ Builder\nšØš¦ Packager\nšØš¦ Containerizer" as package_packager state "šØ Curator" as package_curator state "š© Distributor" as package_distributor state "š¦ Importer" as integrator_importer state "š„ Supplier, Manufacturer, Owner" as integrator_owner state "š¦šØš„ Integrator, Developer" as integrator_developer state "š©šØ SBOM Redactor\nš© Publisher" as integrator_publisher state "š¦šØ Builder" as integrator_builder state "šØ Deployer" as deployer state "š¦ Vuln. Checker" as integrator_checker state "š©šØ SBOM Redactor" as redactor state "š¦ Consumer\nš¦ User" as consumer state "š¦ Auditor" as auditor_internal state "š¦ Auditor" as auditor_external %% classDef createsSBOM stroke:red,stroke-width:3px; classDef updatesSBOM stroke:yellow,stroke-width:3px; classDef assemblesSBOM stroke:yellow,stroke-width:3px; classDef distributesSBOM stroke:green,stroke-width:3px; classDef verifiesSBOM stroke:#07f,stroke-width:3px; %% class author_importer verifiesSBOM class author_owner createsSBOM class manufacturer_owner createsSBOM class author assemblesSBOM class package_importer verifiesSBOM class package_patcher updatesSBOM class package_packager assemblesSBOM class package_curator distributesSBOM class package_distributor distributesSBOM class language_importer verifiesSBOM class language_packager assemblesSBOM class language_steward updatesSBOM class language_curator distributesSBOM class language_distributor distributesSBOM class repository_distributor distributesSBOM class integrator_importer verifiesSBOM class integrator_owner createsSBOM class integrator_developer assemblesSBOM class integrator_publisher distributesSBOM class integrator_builder assemblesSBOM class integrator_checker verifiesSBOM class deployer assemblesSBOM class redactor distributesSBOM class auditor_internal verifiesSBOM class auditor_external verifiesSBOM state "Maintainer Environment" as environment_maintainer { [*] --> author_importer [*] --> author author_importer --> author author_owner --> author author --> language_packager } [*] --> environment_maintainer state "Language Ecosystem" as ecosystem_lang { [*] --> language_importer [*] --> language_steward [*] --> language_curator [*] --> language_distributor language_importer --> language_distributor language_importer --> language_curator language_steward --> language_curator language_curator --> language_distributor } language_packager --> ecosystem_lang ecosystem_lang --> ecosystem_lang state "Public Collaboration Ecosystem" as ecosystem_repo { [*] --> repository_distributor } author --> ecosystem_repo ecosystem_repo --> author repository_distributor --> contributor contributor --> repository_distributor state "Package Ecosystem" as ecosystem_package { [*] --> package_importer [*] --> package_packager [*] --> package_patcher package_importer --> package_patcher package_importer --> package_packager package_patcher --> package_packager package_packager --> package_curator package_packager --> package_distributor package_curator --> package_distributor } repository_distributor --> ecosystem_package language_distributor --> ecosystem_package ecosystem_package --> ecosystem_package state "Integrator Environment" as environment_integrator { [*] --> integrator_developer [*] --> integrator_importer integrator_importer --> integrator_developer integrator_owner --> integrator_developer integrator_builder --> integrator_publisher integrator_developer --> integrator_checker integrator_checker --> integrator_developer auditor_internal --> integrator_developer integrator_developer --> integrator_builder integrator_developer --> auditor_internal } repository_distributor --> environment_integrator language_distributor --> environment_integrator package_distributor --> environment_integrator state "Production Environment" as environment_prod { [*] --> deployer deployer --> redactor } integrator_publisher --> [*] integrator_developer --> environment_prod integrator_builder --> environment_prod integrator_publisher --> environment_prod deployer --> auditor_external deployer --> consumer redactor --> consumer