{"spdxVersion":"SPDX-2.3","dataLicense":"CC0-1.0","SPDXID":"SPDXRef-DOCUMENT","name":"com.github.profcomff/userdata-api","documentNamespace":"https://spdx.org/spdxdocs/protobom/e8b161df-b0b4-4751-a280-3362b4d67f72","comment":"Exact versions could not be resolved for some packages. For more information: https://docs.github.com/en/code-security/supply-chain-security/understanding-your-software-supply-chain/about-the-dependency-graph#dependencies-included.","creationInfo":{"creators":["Tool: protobom-v0.0.0-20260130170711-0b8e67cacb3b+dirty","Tool: GitHub.com-Dependency-Graph"],"created":"2026-02-13T03:12:24Z"},"packages":[{"name":"MishaKav/pytest-coverage-comment","SPDXID":"SPDXRef-githubactions-MishaKav-pytest-coverage-comment-main-75c946","versionInfo":"main","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:githubactions/MishaKav/pytest-coverage-comment@main"}]},{"name":"psf/black","SPDXID":"SPDXRef-githubactions-psf-black-stable-75c946","versionInfo":"stable","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:githubactions/psf/black@stable"}]},{"name":"isort/isort-action","SPDXID":"SPDXRef-githubactions-isort-isort-action-master-75c946","versionInfo":"master","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:githubactions/isort/isort-action@master"}]},{"name":"actions/setup-python","SPDXID":"SPDXRef-githubactions-actions-setup-python-4..-75c946","versionInfo":"4.*.*","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:githubactions/actions/setup-python@4.%2A.%2A"}]},{"name":"thollander/actions-comment-pull-request","SPDXID":"SPDXRef-githubactions-thollander-actions-comment-pull-request-2..-75c946","versionInfo":"2.*.*","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:githubactions/thollander/actions-comment-pull-request@2.%2A.%2A"}]},{"name":"black","SPDXID":"SPDXRef-pypi-black-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/black"}]},{"name":"pytest","SPDXID":"SPDXRef-pypi-pytest-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/pytest"}]},{"name":"pytest-cov","SPDXID":"SPDXRef-pypi-pytest-cov-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/pytest-cov"}]},{"name":"isort","SPDXID":"SPDXRef-pypi-isort-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/isort"}]},{"name":"pytest-mock","SPDXID":"SPDXRef-pypi-pytest-mock-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/pytest-mock"}]},{"name":"autoflake","SPDXID":"SPDXRef-pypi-autoflake-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/autoflake"}]},{"name":"auth-lib-profcomff","SPDXID":"SPDXRef-pypi-auth-lib-profcomff-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/auth-lib-profcomff"}]},{"name":"httpx","SPDXID":"SPDXRef-pypi-httpx-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/httpx"}]},{"name":"gunicorn","SPDXID":"SPDXRef-pypi-gunicorn-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/gunicorn"}]},{"name":"fastapi","SPDXID":"SPDXRef-pypi-fastapi-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/fastapi"}]},{"name":"uvicorn","SPDXID":"SPDXRef-pypi-uvicorn-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/uvicorn"}]},{"name":"alembic","SPDXID":"SPDXRef-pypi-alembic-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/alembic"}]},{"name":"sqlalchemy","SPDXID":"SPDXRef-pypi-sqlalchemy-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/sqlalchemy"}]},{"name":"fastapi-sqlalchemy","SPDXID":"SPDXRef-pypi-fastapi-sqlalchemy-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/fastapi-sqlalchemy"}]},{"name":"psycopg2-binary","SPDXID":"SPDXRef-pypi-psycopg2-binary-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/psycopg2-binary"}]},{"name":"pydantic","SPDXID":"SPDXRef-pypi-pydantic-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/pydantic"}]},{"name":"confluent-kafka","SPDXID":"SPDXRef-pypi-confluent-kafka-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/confluent-kafka"}]},{"name":"pydantic-settings","SPDXID":"SPDXRef-pypi-pydantic-settings-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/pydantic-settings"}]},{"name":"logging-profcomff","SPDXID":"SPDXRef-pypi-logging-profcomff-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/logging-profcomff"}]},{"name":"event-schema-profcomff","SPDXID":"SPDXRef-pypi-event-schema-profcomff-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/event-schema-profcomff"}]},{"name":"docker/build-push-action","SPDXID":"SPDXRef-githubactions-docker-build-push-action-4..-75c946","versionInfo":"4.*.*","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:githubactions/docker/build-push-action@4.%2A.%2A"}]},{"name":"docker/metadata-action","SPDXID":"SPDXRef-githubactions-docker-metadata-action-4..-75c946","versionInfo":"4.*.*","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:githubactions/docker/metadata-action@4.%2A.%2A"}]},{"name":"actions/checkout","SPDXID":"SPDXRef-githubactions-actions-checkout-4..-75c946","versionInfo":"4.*.*","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:githubactions/actions/checkout@4.%2A.%2A"}]},{"name":"docker/login-action","SPDXID":"SPDXRef-githubactions-docker-login-action-2..-75c946","versionInfo":"2.*.*","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:githubactions/docker/login-action@2.%2A.%2A"}]},{"name":"com.github.profcomff/userdata-api","SPDXID":"SPDXRef-github-profcomff-userdata-api-main-8647d3","versionInfo":"main","downloadLocation":"git+https://github.com/profcomff/userdata-api","filesAnalyzed":false,"licenseDeclared":"BSD-3-Clause","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:github/profcomff/userdata-api@main"}]}],"relationships":[{"spdxElementId":"SPDXRef-github-profcomff-userdata-api-main-8647d3","relatedSpdxElement":"SPDXRef-githubactions-psf-black-stable-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-profcomff-userdata-api-main-8647d3","relatedSpdxElement":"SPDXRef-pypi-logging-profcomff-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-profcomff-userdata-api-main-8647d3","relatedSpdxElement":"SPDXRef-githubactions-actions-checkout-4..-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-profcomff-userdata-api-main-8647d3","relatedSpdxElement":"SPDXRef-githubactions-isort-isort-action-master-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-profcomff-userdata-api-main-8647d3","relatedSpdxElement":"SPDXRef-pypi-pytest-cov-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-profcomff-userdata-api-main-8647d3","relatedSpdxElement":"SPDXRef-pypi-isort-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-profcomff-userdata-api-main-8647d3","relatedSpdxElement":"SPDXRef-githubactions-docker-login-action-2..-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-profcomff-userdata-api-main-8647d3","relatedSpdxElement":"SPDXRef-pypi-pydantic-settings-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-profcomff-userdata-api-main-8647d3","relatedSpdxElement":"SPDXRef-pypi-event-schema-profcomff-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-profcomff-userdata-api-main-8647d3","relatedSpdxElement":"SPDXRef-githubactions-docker-metadata-action-4..-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-profcomff-userdata-api-main-8647d3","relatedSpdxElement":"SPDXRef-githubactions-thollander-actions-comment-pull-request-2..-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-profcomff-userdata-api-main-8647d3","relatedSpdxElement":"SPDXRef-pypi-pytest-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-profcomff-userdata-api-main-8647d3","relatedSpdxElement":"SPDXRef-pypi-gunicorn-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-profcomff-userdata-api-main-8647d3","relatedSpdxElement":"SPDXRef-pypi-fastapi-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-profcomff-userdata-api-main-8647d3","relatedSpdxElement":"SPDXRef-pypi-alembic-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-profcomff-userdata-api-main-8647d3","relatedSpdxElement":"SPDXRef-githubactions-MishaKav-pytest-coverage-comment-main-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-profcomff-userdata-api-main-8647d3","relatedSpdxElement":"SPDXRef-githubactions-actions-setup-python-4..-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-profcomff-userdata-api-main-8647d3","relatedSpdxElement":"SPDXRef-pypi-psycopg2-binary-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-profcomff-userdata-api-main-8647d3","relatedSpdxElement":"SPDXRef-pypi-pydantic-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-profcomff-userdata-api-main-8647d3","relatedSpdxElement":"SPDXRef-pypi-black-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-profcomff-userdata-api-main-8647d3","relatedSpdxElement":"SPDXRef-pypi-auth-lib-profcomff-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-profcomff-userdata-api-main-8647d3","relatedSpdxElement":"SPDXRef-pypi-confluent-kafka-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-profcomff-userdata-api-main-8647d3","relatedSpdxElement":"SPDXRef-pypi-sqlalchemy-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-profcomff-userdata-api-main-8647d3","relatedSpdxElement":"SPDXRef-pypi-fastapi-sqlalchemy-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-profcomff-userdata-api-main-8647d3","relatedSpdxElement":"SPDXRef-pypi-httpx-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-profcomff-userdata-api-main-8647d3","relatedSpdxElement":"SPDXRef-pypi-uvicorn-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-profcomff-userdata-api-main-8647d3","relatedSpdxElement":"SPDXRef-pypi-pytest-mock-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-profcomff-userdata-api-main-8647d3","relatedSpdxElement":"SPDXRef-pypi-autoflake-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-profcomff-userdata-api-main-8647d3","relatedSpdxElement":"SPDXRef-githubactions-docker-build-push-action-4..-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-DOCUMENT","relatedSpdxElement":"SPDXRef-github-profcomff-userdata-api-main-8647d3","relationshipType":"DESCRIBES"}]}