{"id":47948072,"url":"https://github.com/dirsigler/astro-securitytxt","last_synced_at":"2026-04-04T08:52:03.232Z","repository":{"id":341841778,"uuid":"1171696980","full_name":"dirsigler/astro-securitytxt","owner":"dirsigler","description":"An Astro integration that generates RFC 9116 compliant security.txt files during build.","archived":false,"fork":false,"pushed_at":"2026-03-19T20:26:22.000Z","size":159,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-20T11:34:52.044Z","etag":null,"topics":["astro","astro-integration","rfc9116","security","security-txt","securitytxt","well-known"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dirsigler.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":["dirsigler"]}},"created_at":"2026-03-03T14:09:33.000Z","updated_at":"2026-03-19T20:52:34.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/dirsigler/astro-securitytxt","commit_stats":null,"previous_names":["dirsigler/astro-securitytxt"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/dirsigler/astro-securitytxt","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dirsigler%2Fastro-securitytxt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dirsigler%2Fastro-securitytxt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dirsigler%2Fastro-securitytxt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dirsigler%2Fastro-securitytxt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dirsigler","download_url":"https://codeload.github.com/dirsigler/astro-securitytxt/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dirsigler%2Fastro-securitytxt/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31393780,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-04T04:26:24.776Z","status":"ssl_error","status_checked_at":"2026-04-04T04:23:34.147Z","response_time":60,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["astro","astro-integration","rfc9116","security","security-txt","securitytxt","well-known"],"created_at":"2026-04-04T08:52:01.352Z","updated_at":"2026-04-04T08:52:03.184Z","avatar_url":"https://github.com/dirsigler.png","language":"TypeScript","funding_links":["https://github.com/sponsors/dirsigler"],"categories":[],"sub_categories":[],"readme":"# astro-securitytxt\n\nAn [Astro](https://astro.build) integration that automatically generates an [RFC 9116](https://www.rfc-editor.org/rfc/rfc9116) compliant `security.txt` file during your site build.\n\n## Installation\n\n```bash\nnpm install astro-securitytxt\n```\n\n## Usage\n\nAdd the integration to your `astro.config.mjs`:\n\n```ts\nimport { defineConfig } from \"astro/config\";\nimport securityTxt from \"astro-securitytxt\";\n\nexport default defineConfig({\n  integrations: [\n    securityTxt({\n      contact: \"mailto:security@example.com\",\n      expires: \"2026-12-31T23:59:59.000Z\",\n    }),\n  ],\n});\n```\n\nAfter running `astro build`, the file will be placed at `.well-known/security.txt` in your build output by default.\n\n## Configuration\n\n### Required Fields\n\n| Option    | Type                 | Description                                                                                          |\n| --------- | -------------------- | ---------------------------------------------------------------------------------------------------- |\n| `contact` | `string \\| string[]` | One or more contact URIs (e.g. `mailto:` or `https://` links) for reporting security issues.         |\n| `expires` | `Date \\| string`     | When the security.txt should be considered stale. ISO 8601 string or `Date`. Should be \u003c 1 year out. |\n\n### Optional Fields\n\n| Option               | Type                                | Description                                                      |\n| -------------------- | ----------------------------------- | ---------------------------------------------------------------- |\n| `encryption`         | `string \\| string[]`                | URI(s) to encryption key(s) for secure communication.            |\n| `acknowledgments`    | `string \\| string[]`                | URI(s) to pages recognizing security researchers.                |\n| `preferredLanguages` | `string`                            | Comma-separated language tags (e.g. `\"en, es, de\"`).             |\n| `canonical`          | `string \\| string[]`                | Canonical URI(s) where the `security.txt` is hosted.             |\n| `policy`             | `string \\| string[]`                | URI(s) to vulnerability disclosure policy.                       |\n| `hiring`             | `string \\| string[]`                | URI(s) to security-related job positions.                        |\n| `placement`          | `\".well-known\" \\| \"root\" \\| \"both\"` | Where to place the file. Defaults to `\".well-known\"`. See below. |\n\n### Placement\n\nRFC 9116 [Section 3](https://www.rfc-editor.org/rfc/rfc9116#name-web-based-services) recommends placing the file at `/.well-known/security.txt`. Some sites also serve it at `/security.txt` for convenience.\n\n| Value           | Output path(s)                                      |\n| --------------- | --------------------------------------------------- |\n| `\".well-known\"` | `/.well-known/security.txt` **(default)**           |\n| `\"root\"`        | `/security.txt`                                     |\n| `\"both\"`        | `/.well-known/security.txt` **and** `/security.txt` |\n\n## Full Example\n\n```ts\nimport { defineConfig } from \"astro/config\";\nimport securityTxt from \"astro-securitytxt\";\n\nexport default defineConfig({\n  integrations: [\n    securityTxt({\n      contact: [\n        \"mailto:security@example.com\",\n        \"https://example.com/security-contact\",\n      ],\n      expires: new Date(\"2026-12-31T23:59:59Z\"),\n      encryption: \"https://example.com/.well-known/pgp-key.txt\",\n      acknowledgments: \"https://example.com/hall-of-fame\",\n      preferredLanguages: \"en, de\",\n      canonical: \"https://example.com/.well-known/security.txt\",\n      policy: \"https://example.com/security-policy\",\n      hiring: \"https://example.com/jobs\",\n      placement: \"both\",\n    }),\n  ],\n});\n```\n\nThis produces a `security.txt` like:\n\n```plaintext\nContact: mailto:security@example.com\nContact: https://example.com/security-contact\nExpires: 2026-12-31T23:59:59.000Z\nEncryption: https://example.com/.well-known/pgp-key.txt\nAcknowledgments: https://example.com/hall-of-fame\nPreferred-Languages: en, de\nCanonical: https://example.com/.well-known/security.txt\nPolicy: https://example.com/security-policy\nHiring: https://example.com/jobs\n```\n\n## RFC 9116 Reference\n\n- [RFC 9116 — A File Format to Aid in Security Vulnerability Disclosure](https://www.rfc-editor.org/rfc/rfc9116)\n- [securitytxt.org](https://securitytxt.org/)\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdirsigler%2Fastro-securitytxt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdirsigler%2Fastro-securitytxt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdirsigler%2Fastro-securitytxt/lists"}