{
  "artifact": {
    "artifact_id": "github-com-invoiceninja-invoiceninja-955f5da4ca",
    "artifact_name": "invoiceninja/invoiceninja",
    "canonical_url": "https://github.com/invoiceninja/invoiceninja",
    "artifact_url": "https://www.rightshold.com/resource-scans/github-com-invoiceninja-invoiceninja-955f5da4ca",
    "first_seen_at": "2026-11-12T02:49:42.627Z",
    "last_changed_at": null,
    "change_count": 0,
    "receipt_count": 1,
    "versions": 1,
    "current_sha256": "fb1f30f7a0020cb8a64b7a6b5aee938d6da4e5258cbb9c54a56d0f63668ec8b0",
    "version_note": "Every receipt for this artifact so far names the same SHA-256: the bytes have not changed between scans.",
    "latest_receipt": {
      "id": "rsc_7a4a39d27e457e273d5c4f13",
      "artifact_id": "github-com-invoiceninja-invoiceninja-955f5da4ca",
      "artifact_name": "invoiceninja/invoiceninja",
      "canonical_url": "https://github.com/invoiceninja/invoiceninja",
      "fetched_from": "https://raw.githubusercontent.com/invoiceninja/invoiceninja/HEAD/README.md",
      "sha256": "fb1f30f7a0020cb8a64b7a6b5aee938d6da4e5258cbb9c54a56d0f63668ec8b0",
      "byte_size": 8617,
      "scanner_version": "resource-scan-v1",
      "scanned_at": "2026-11-12T02:49:42.627Z",
      "checks": [
        {
          "id": "network",
          "label": "Outbound network references",
          "status": "flag",
          "findings": [
            "The scanned bytes reference outbound network activity to these domains: api-docs.invoicing.co, app.codacy.com, apps.apple.com, apps.yunohost.org, cheatsheetseries.owasp.org, cla-assistant.io, discord.gg, elest.io, f-droid.org, flathub.org, forum.invoiceninja.com, github.com, hillelcoren.com, hub.docker.com, invoiceninja.github.io, laravel.com, microsoft.com, play.google.com, postmarkapp.com, raw.githubusercontent.com, react.invoicing.co, slack.invoiceninja.com, snapcraft.io, stripe.com, www.cloudron.io, www.codacy.com, www.eventschedule.com, www.instagram.com, www.invoiceninja.com, www.invoiceninja.org, www.softaculous.com, www.youtube.com. Any resource that reaches the network can send data out as well as bring data in; the findings name what the bytes reference, and the reader decides whether that fits the resource's stated purpose."
          ],
          "evidence": [
            "domain: api-docs.invoicing.co",
            "domain: app.codacy.com",
            "domain: apps.apple.com",
            "domain: apps.yunohost.org",
            "domain: cheatsheetseries.owasp.org",
            "domain: cla-assistant.io",
            "domain: discord.gg",
            "domain: elest.io",
            "domain: f-droid.org",
            "domain: flathub.org",
            "domain: forum.invoiceninja.com",
            "domain: github.com",
            "domain: hillelcoren.com",
            "domain: hub.docker.com",
            "domain: invoiceninja.github.io",
            "domain: laravel.com",
            "domain: microsoft.com",
            "domain: play.google.com",
            "domain: postmarkapp.com",
            "domain: raw.githubusercontent.com",
            "domain: react.invoicing.co",
            "domain: slack.invoiceninja.com",
            "domain: snapcraft.io",
            "domain: stripe.com",
            "domain: www.cloudron.io",
            "domain: www.codacy.com",
            "domain: www.eventschedule.com",
            "domain: www.instagram.com",
            "domain: www.invoiceninja.com",
            "domain: www.invoiceninja.org",
            "domain: www.softaculous.com",
            "domain: www.youtube.com"
          ]
        },
        {
          "id": "credentials",
          "label": "Credential and environment access",
          "status": "flag",
          "findings": [
            "The scanned bytes contain credential or environment access patterns: credential file paths (.env, .ssh, credential stores). The receipt names the pattern kinds only; no credential value is reproduced here."
          ],
          "evidence": [
            "credential file paths (.env, .ssh, credential stores)"
          ]
        },
        {
          "id": "install_hooks",
          "label": "Install and postinstall hooks",
          "status": "pass",
          "findings": [
            "No install or postinstall hooks were found in the scanned bytes."
          ],
          "evidence": []
        },
        {
          "id": "obfuscation",
          "label": "Obfuscation and encoded payloads",
          "status": "pass",
          "findings": [
            "No obfuscation or encoded-payload signs were found in the scanned bytes."
          ],
          "evidence": []
        },
        {
          "id": "shell_and_download",
          "label": "Shell-outs and download-and-execute",
          "status": "pass",
          "findings": [
            "No shell-out or download-and-execute patterns were found in the scanned bytes."
          ],
          "evidence": []
        },
        {
          "id": "permission_vs_behavior",
          "label": "Permission declarations vs behavior",
          "status": "flag",
          "findings": [
            "The bytes show network, credentials behavior, and no permissions declaration was found in the scanned bytes to compare it against."
          ],
          "evidence": [
            "behavior: network",
            "behavior: credentials"
          ]
        },
        {
          "id": "known_bad",
          "label": "Known-bad indicators",
          "status": "pass",
          "findings": [
            "None of the scanner's published known-bad indicator patterns matched the scanned bytes."
          ],
          "evidence": []
        },
        {
          "id": "provenance",
          "label": "Provenance facts (weak signals)",
          "status": "pass",
          "findings": [
            "Provenance facts, labeled weak signals — they say where the bytes sit, not what the bytes do: source host: github.com; repository: invoiceninja/invoiceninja; bytes scanned: 8617; fetched from: https://raw.githubusercontent.com/invoiceninja/invoiceninja/HEAD/README.md."
          ],
          "evidence": [
            "source host: github.com",
            "repository: invoiceninja/invoiceninja",
            "bytes scanned: 8617",
            "fetched from: https://raw.githubusercontent.com/invoiceninja/invoiceninja/HEAD/README.md"
          ]
        }
      ],
      "checks_total": 8,
      "checks_flagged": 3,
      "summary": "3 of 8 checks flagged",
      "ledger_seq": 36083,
      "receipt_url": "https://www.rightshold.com/resource-scans/github-com-invoiceninja-invoiceninja-955f5da4ca",
      "rightshold": "The rightshold on https://github.com/invoiceninja/invoiceninja — scanned 2026-11-12 · 3 of 8 checks flagged · receipt rsc_7a4a39d27e457e273d5c4f13, verify at rightshold.com/verify."
    },
    "history": [
      {
        "id": "rsc_7a4a39d27e457e273d5c4f13",
        "artifact_id": "github-com-invoiceninja-invoiceninja-955f5da4ca",
        "artifact_name": "invoiceninja/invoiceninja",
        "canonical_url": "https://github.com/invoiceninja/invoiceninja",
        "fetched_from": "https://raw.githubusercontent.com/invoiceninja/invoiceninja/HEAD/README.md",
        "sha256": "fb1f30f7a0020cb8a64b7a6b5aee938d6da4e5258cbb9c54a56d0f63668ec8b0",
        "byte_size": 8617,
        "scanner_version": "resource-scan-v1",
        "scanned_at": "2026-11-12T02:49:42.627Z",
        "checks": [
          {
            "id": "network",
            "label": "Outbound network references",
            "status": "flag",
            "findings": [
              "The scanned bytes reference outbound network activity to these domains: api-docs.invoicing.co, app.codacy.com, apps.apple.com, apps.yunohost.org, cheatsheetseries.owasp.org, cla-assistant.io, discord.gg, elest.io, f-droid.org, flathub.org, forum.invoiceninja.com, github.com, hillelcoren.com, hub.docker.com, invoiceninja.github.io, laravel.com, microsoft.com, play.google.com, postmarkapp.com, raw.githubusercontent.com, react.invoicing.co, slack.invoiceninja.com, snapcraft.io, stripe.com, www.cloudron.io, www.codacy.com, www.eventschedule.com, www.instagram.com, www.invoiceninja.com, www.invoiceninja.org, www.softaculous.com, www.youtube.com. Any resource that reaches the network can send data out as well as bring data in; the findings name what the bytes reference, and the reader decides whether that fits the resource's stated purpose."
            ],
            "evidence": [
              "domain: api-docs.invoicing.co",
              "domain: app.codacy.com",
              "domain: apps.apple.com",
              "domain: apps.yunohost.org",
              "domain: cheatsheetseries.owasp.org",
              "domain: cla-assistant.io",
              "domain: discord.gg",
              "domain: elest.io",
              "domain: f-droid.org",
              "domain: flathub.org",
              "domain: forum.invoiceninja.com",
              "domain: github.com",
              "domain: hillelcoren.com",
              "domain: hub.docker.com",
              "domain: invoiceninja.github.io",
              "domain: laravel.com",
              "domain: microsoft.com",
              "domain: play.google.com",
              "domain: postmarkapp.com",
              "domain: raw.githubusercontent.com",
              "domain: react.invoicing.co",
              "domain: slack.invoiceninja.com",
              "domain: snapcraft.io",
              "domain: stripe.com",
              "domain: www.cloudron.io",
              "domain: www.codacy.com",
              "domain: www.eventschedule.com",
              "domain: www.instagram.com",
              "domain: www.invoiceninja.com",
              "domain: www.invoiceninja.org",
              "domain: www.softaculous.com",
              "domain: www.youtube.com"
            ]
          },
          {
            "id": "credentials",
            "label": "Credential and environment access",
            "status": "flag",
            "findings": [
              "The scanned bytes contain credential or environment access patterns: credential file paths (.env, .ssh, credential stores). The receipt names the pattern kinds only; no credential value is reproduced here."
            ],
            "evidence": [
              "credential file paths (.env, .ssh, credential stores)"
            ]
          },
          {
            "id": "install_hooks",
            "label": "Install and postinstall hooks",
            "status": "pass",
            "findings": [
              "No install or postinstall hooks were found in the scanned bytes."
            ],
            "evidence": []
          },
          {
            "id": "obfuscation",
            "label": "Obfuscation and encoded payloads",
            "status": "pass",
            "findings": [
              "No obfuscation or encoded-payload signs were found in the scanned bytes."
            ],
            "evidence": []
          },
          {
            "id": "shell_and_download",
            "label": "Shell-outs and download-and-execute",
            "status": "pass",
            "findings": [
              "No shell-out or download-and-execute patterns were found in the scanned bytes."
            ],
            "evidence": []
          },
          {
            "id": "permission_vs_behavior",
            "label": "Permission declarations vs behavior",
            "status": "flag",
            "findings": [
              "The bytes show network, credentials behavior, and no permissions declaration was found in the scanned bytes to compare it against."
            ],
            "evidence": [
              "behavior: network",
              "behavior: credentials"
            ]
          },
          {
            "id": "known_bad",
            "label": "Known-bad indicators",
            "status": "pass",
            "findings": [
              "None of the scanner's published known-bad indicator patterns matched the scanned bytes."
            ],
            "evidence": []
          },
          {
            "id": "provenance",
            "label": "Provenance facts (weak signals)",
            "status": "pass",
            "findings": [
              "Provenance facts, labeled weak signals — they say where the bytes sit, not what the bytes do: source host: github.com; repository: invoiceninja/invoiceninja; bytes scanned: 8617; fetched from: https://raw.githubusercontent.com/invoiceninja/invoiceninja/HEAD/README.md."
            ],
            "evidence": [
              "source host: github.com",
              "repository: invoiceninja/invoiceninja",
              "bytes scanned: 8617",
              "fetched from: https://raw.githubusercontent.com/invoiceninja/invoiceninja/HEAD/README.md"
            ]
          }
        ],
        "checks_total": 8,
        "checks_flagged": 3,
        "summary": "3 of 8 checks flagged",
        "ledger_seq": 36083,
        "receipt_url": "https://www.rightshold.com/resource-scans/github-com-invoiceninja-invoiceninja-955f5da4ca",
        "rightshold": "The rightshold on https://github.com/invoiceninja/invoiceninja — scanned 2026-11-12 · 3 of 8 checks flagged · receipt rsc_7a4a39d27e457e273d5c4f13, verify at rightshold.com/verify."
      }
    ]
  }
}