Skip to content

Commit 0dffd30

Browse files
committed
docs: align project health files with LFDT requirements
Signed-off-by: AkramBitar <akram@il.ibm.com>
1 parent 3b7d547 commit 0dffd30

6 files changed

Lines changed: 290 additions & 27 deletions

File tree

.github/workflows/scorecard.yml

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
name: "OpenSSF Scorecard"
2+
3+
# The README Scorecard badge is intentionally NOT added yet: api.scorecard.dev only
4+
# serves data for a repository after this workflow has run on the default branch with
5+
# publish_results: true. Until then the badge renders "invalid repo path". Add
6+
# https://api.scorecard.dev/projects/github.com/LFDT-Panurus/panurus/badge
7+
# to the README badge row once the first run on `main` has completed.
8+
9+
on:
10+
# Re-run when branch protection changes, since Branch-Protection is a scored check.
11+
branch_protection_rule:
12+
schedule:
13+
- cron: '27 6 * * 1'
14+
push:
15+
branches: [ "main" ]
16+
17+
# Least privilege by default; the job below elevates only what it needs.
18+
permissions: read-all
19+
20+
jobs:
21+
analysis:
22+
name: Scorecard analysis
23+
runs-on: ubuntu-latest
24+
permissions:
25+
# Required to upload the results to code-scanning.
26+
security-events: write
27+
# Required by publish_results, which signs the results for the public API
28+
# that serves the README badge.
29+
id-token: write
30+
31+
steps:
32+
- name: "Checkout code"
33+
uses: actions/checkout@v4
34+
with:
35+
persist-credentials: false
36+
37+
- name: "Run analysis"
38+
uses: ossf/scorecard-action@v2.4.4
39+
with:
40+
results_file: results.sarif
41+
results_format: sarif
42+
# Must stay true: without it the api.securityscorecards.dev endpoint
43+
# serves no data and the README badge renders "invalid repo path".
44+
publish_results: true
45+
46+
- name: "Upload artifact"
47+
uses: actions/upload-artifact@v4
48+
with:
49+
name: SARIF file
50+
path: results.sarif
51+
retention-days: 5
52+
53+
- name: "Upload to code-scanning"
54+
uses: github/codeql-action/upload-sarif@v4
55+
with:
56+
sarif_file: results.sarif

ADOPTERS.md

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
[//]: # (SPDX-License-Identifier: CC-BY-4.0)
2+
3+
# Adopters
4+
5+
This file lists organizations and projects using Panurus, together with a publicly verifiable
6+
reference for each entry.
7+
8+
## Are you using Panurus?
9+
10+
Please add yourself. Adopter lists help the community understand where Panurus is deployed, guide
11+
roadmap priorities, and give new users confidence in the project.
12+
13+
To be added:
14+
15+
1. Open a pull request editing this file.
16+
2. Add a row to the table below.
17+
3. Include a **publicly verifiable reference** — a link to an announcement, blog post, paper, press
18+
release, conference talk, or public repository. Entries without a public reference cannot be
19+
accepted, as required by the
20+
[LFDT project consistency guidelines][lfdt-consistency].
21+
4. Only add your organization if you are authorized to do so on its behalf.
22+
23+
If you would rather not be listed publicly but are happy for the maintainers to know, say so in a
24+
[GitHub Discussion](https://github.com/LFDT-Panurus/panurus/discussions) instead.
25+
26+
## Adopters
27+
28+
| Organization / Project | Type of use | Status | Reference |
29+
|------------------------|-------------|--------|-----------|
30+
31+
_No adopters are listed yet. Entries require a publicly verifiable reference — see above._
32+
33+
**Status** is one of:
34+
35+
- **Production** — deployed in a production environment.
36+
- **Pilot** — deployed in a limited pilot or proof of concept.
37+
- **Evaluating** — under active evaluation.
38+
39+
<!--
40+
Example row:
41+
42+
| Example Bank | Tokenized deposits on Fabric | Pilot | https://example.org/press/tokenized-deposit-pilot |
43+
-->
44+
45+
[lfdt-consistency]: https://github.com/LF-Decentralized-Trust/governance/blob/main/tac/guidelines/project-consistency-guidelines.md

CODE_OF_CONDUCT.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
Code of Conduct Guidelines
22
==========================
33

4-
Please review the Hyperledger [Code of Conduct](https://www.lfdecentralizedtrust.org/code-of-conduct)
4+
Please review the LF Decentralized Trust [Code of Conduct](https://www.lfdecentralizedtrust.org/code-of-conduct)
55
before participating. It is important that we keep things civil.
66

77
<a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/88x31.png" /></a><br />This work is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 International License</a>.

MAINTAINERS.md

Lines changed: 82 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,91 @@
1-
Maintainers
2-
===========
1+
[//]: # (SPDX-License-Identifier: CC-BY-4.0)
32

4-
**Active Maintainers**
3+
# Maintainers
54

6-
| Name | GitHub | Chat | email |
7-
|--------------------|--------------------------------------|-------------|-----------------------------|
8-
| Angelo De Caro | [adecaro][adecaro] | adecaro | <adc@zurich.ibm.com> |
9-
| Kaoutar Elkhiyaoui | [KElkhiyaoui][KElkhiyaoui] | KElkhiyaoui | <kao@zurich.ibm.com> |
10-
| Arne Rutjes | [arner][arner] | arner | <arne.rutjesISC@nl.ibm.com> |
11-
| Alexandros Filios | [alexandrosfilios][alexandrosfilios] | lio | <alexandros.filios@alumni.ethz.ch> |
12-
| Akram Bitar | [AkramBitar][AkramBitar] | akrambitar | <akram@il.ibm.com> |
5+
Changes to either list below are made by pull request against this file. After such a pull request
6+
is merged, the corresponding GitHub team (`panurus-maintainers`) must be updated manually to match.
137

14-
**Emeritus Maintainers**
8+
## Active Maintainers
159

16-
| Name | GitHub | Chat | email
17-
|------|--------|------|----------------------
18-
| Alessandro Sorniotti | [ale-linux][ale-linux] | aso | <ale.linux@sopit.net>
19-
| Elli Androulaki | [elli-androulaki][elli-androulaki] | elli-androulaki | <lli@zurich.ibm.com>
20-
| Mathilde Ffrench | [mffrench][mffrench] | mffrench | <mathilde.ffrench@fr.ibm.com>
10+
| Name | GitHub ID | Scope | LFID | Discord ID | Email | Company Affiliation |
11+
|------|-----------|-------|------|------------|-------|---------------------|
12+
| Angelo De Caro | [adecaro][adecaro] | Maintainer | | adecaro | <adc@zurich.ibm.com> | IBM |
13+
| Kaoutar Elkhiyaoui | [KElkhiyaoui][KElkhiyaoui] | Maintainer | | KElkhiyaoui | <kao@zurich.ibm.com> | IBM |
14+
| Arne Rutjes | [arner][arner] | Maintainer | | arner | <arne.rutjesISC@nl.ibm.com> | IBM |
15+
| Alexandros Filios | [alexandrosfilios][alexandrosfilios] | Maintainer | | lio | <alexandros.filios@alumni.ethz.ch> | Independent |
16+
| Akram Bitar | [AkramBitar][AkramBitar] | Maintainer | | akrambitar | <akram@il.ibm.com> | IBM |
17+
18+
## Emeritus Maintainers
19+
20+
| Name | GitHub ID | Scope | LFID | Discord ID | Email | Company Affiliation |
21+
|------|-----------|-------|------|------------|-------|---------------------|
22+
| Alessandro Sorniotti | [ale-linux][ale-linux] | Maintainer | | aso | <ale.linux@sopit.net> | IBM |
23+
| Elli Androulaki | [elli-androulaki][elli-androulaki] | Maintainer | | elli-androulaki | <lli@zurich.ibm.com> | IBM |
24+
| Mathilde Ffrench | [mffrench][mffrench] | Maintainer | | mffrench | <mathilde.ffrench@fr.ibm.com> | IBM |
25+
26+
## Scopes
27+
28+
Panurus uses a single maintainer scope covering the whole repository.
29+
30+
| Scope | Definition | GitHub Role | GitHub Team |
31+
|-------|------------|-------------|-------------|
32+
| Maintainer | Maintainer for the entire repository | Maintain | `panurus-maintainers` |
33+
34+
## Maintainer Duties
35+
36+
Maintainers are expected to:
37+
38+
- Review and merge pull requests, and keep CI green.
39+
- Triage incoming issues.
40+
- Participate in project calls and technical discussions.
41+
- Contribute to the mid-year project update and annual review filed with the LFDT TAC.
42+
- Mentor contributors working toward maintainership.
43+
44+
Members of the security team carry the additional responsibilities described in
45+
[SECURITY.md](SECURITY.md).
46+
47+
## How to Become a Maintainer
48+
49+
Candidates for maintainership are expected to have:
50+
51+
- a sustained history of substantive contributions to Panurus — code, review, documentation, or
52+
release engineering,
53+
- demonstrated good judgement in code review, and
54+
- familiarity with the project's architecture and contribution process
55+
(see [CONTRIBUTING.md](CONTRIBUTING.md)).
56+
57+
The process is:
58+
59+
1. An existing active maintainer sponsors the candidate.
60+
2. The sponsor opens a pull request adding the candidate to the **Active Maintainers** table above,
61+
with a justification in the pull request description summarising the candidate's contributions.
62+
3. Current active maintainers have **two weeks** to review and raise objections.
63+
4. Approval requires a majority of active maintainers, with no sustained objection.
64+
5. Once merged, the `panurus-maintainers` GitHub team is updated to grant access.
65+
66+
An emeritus maintainer may return to active status by the same process, without requiring a new
67+
sponsor.
68+
69+
## How Maintainers are Removed or Moved to Emeritus Status
70+
71+
A maintainer may be moved to emeritus status:
72+
73+
- **At their own request** — open a pull request moving your row to the **Emeritus Maintainers**
74+
table. This needs no further approval.
75+
- **Through inactivity** — a maintainer with no meaningful contribution or review activity for
76+
**twelve months** may be proposed for emeritus status.
77+
- **For conduct** — a violation of the [Code of Conduct](CODE_OF_CONDUCT.md) may result in removal.
78+
79+
Proposals follow the same path as additions: a pull request against this file with a justification,
80+
a two-week comment window, and approval by a majority of active maintainers. Moving to emeritus
81+
status is not a judgement on past contributions; it reflects current activity, and the door back is
82+
described above.
2183

22-
[elli-androulaki]: https://github.com/elli-androulaki
2384
[adecaro]: https://github.com/adecaro
2485
[KElkhiyaoui]: https://github.com/KElkhiyaoui
25-
[mffrench]: https://github.com/mffrench
26-
[ale-linux]: https://github.com/ale-linux
2786
[arner]: https://github.com/arner
2887
[alexandrosfilios]: https://github.com/alexandrosfilios
29-
[AkramBitar]: https://github.com/AkramBitar
88+
[AkramBitar]: https://github.com/AkramBitar
89+
[ale-linux]: https://github.com/ale-linux
90+
[elli-androulaki]: https://github.com/elli-androulaki
91+
[mffrench]: https://github.com/mffrench

README.md

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
<p align="center">
66
<a href="LICENSE"><img src="https://img.shields.io/badge/license-Apache%202-blue" alt="License"></a>
7+
<a href="https://www.bestpractices.dev/projects/7176"><img src="https://www.bestpractices.dev/projects/7176/badge" alt="OpenSSF Best Practices"></a>
78
<a href="https://goreportcard.com/badge/github.com/LFDT-Panurus/panurus"><img src="https://goreportcard.com/badge/github.com/LFDT-Panurus/panurus" alt="Go Report Card"></a>
89
<a href="https://github.com/LFDT-Panurus/panurus/actions/workflows/tests.yml"><img src="https://github.com/LFDT-Panurus/panurus/actions/workflows/tests.yml/badge.svg?branch=main" alt="Tests"></a>
910
<a href="https://github.com/LFDT-Panurus/panurus/actions/workflows/codeql-analysis.yml"><img src="https://github.com/LFDT-Panurus/panurus/actions/workflows/codeql-analysis.yml/badge.svg?branch=main" alt="CodeQL"></a>
@@ -15,8 +16,14 @@ Panurus provides a collection of APIs and services that streamline development f
1516
# Useful Links
1617

1718
- [`Documentation`](docs/README.md): The entry point for Panurus documentation.
19+
- [`Releases`](https://github.com/LFDT-Panurus/panurus/releases): Current and past releases, with
20+
release notes. The latest release is always at
21+
[`releases/latest`](https://github.com/LFDT-Panurus/panurus/releases/latest).
1822
- [`Development`](docs/development/development.md): All about the development guidelines.
1923
- [`Contributing`](CONTRIBUTING.md): How to contribute to the project.
24+
- [`Adopters`](ADOPTERS.md): Who is using Panurus. **Using Panurus? Please add yourself to
25+
[`ADOPTERS.md`](ADOPTERS.md)** — it helps the community understand where the project is deployed.
26+
- [`Security`](SECURITY.md): How to report a security vulnerability.
2027
- [`Fabric Samples`](https://github.com/hyperledger/fabric-samples/tree/main/token-sdk) Panurus sample application is the
2128
quickest way to get a full network running with a REST API to issue, transfer and redeem tokens right away.
2229
- [`Benchmarks`](./docs/drivers/benchmark/benchmark.md): Benchmark guidelines and reports.
@@ -30,7 +37,7 @@ Panurus provides a collection of APIs and services that streamline development f
3037

3138
# Additional Resources
3239

33-
- (March 17, 2022) [`Hyperledger in-Depth: Tokens in Hyperledger Fabric: What’s possible today and what’s coming`](https://www.hyperledger.org/learn/webinars/hyperledger-in-depth-tokens-in-hyperledger-fabric-whats-possible-today-and-whats-coming):
40+
- (March 17, 2022) [`Hyperledger in-Depth: Tokens in Hyperledger Fabric: What’s possible today and what’s coming`](https://lfdecentralizedtrust.org/learn/webinars/hyperledger-in-depth-tokens-in-hyperledger-fabric-whats-possible-today-and-whats-coming):
3441
Tokenizing the physical world is a hot blockchain topic in the industry, especially as it relates to the
3542
trade of tokens as a basis of new forms of commerce. In this Hyperledger Foundation member webinar,
3643
the IBM Research team describes in this webinar what tokenization use cases are possible with Hyperledger Fabric today,

SECURITY.md

Lines changed: 98 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,102 @@
1-
# Hyperledger Security Policy
1+
[//]: # (SPDX-License-Identifier: CC-BY-4.0)
22

3-
## Reporting a Security Bug
3+
# Panurus, an LF Decentralized Trust Project Security Policy
44

5-
If you think you have discovered a security issue in any of the Hyperledger projects, we'd love to hear from you. We will take all security bugs seriously and if confirmed upon investigation we will patch it within a reasonable amount of time and release a public security bulletin discussing the impact and credit the discoverer.
5+
## About this document
66

7-
The easiest is to email a description of the flaw and any related information (e.g. reproduction steps, version) to [security at hyperledger dot org](mailto:security@hyperledger.org).
7+
This is the vulnerability disclosure policy for the Panurus project. It conforms to the
8+
[LF Decentralized Trust Security Vulnerability Disclosure Policy][lfdt-security] and is adapted
9+
from the LFDT `SAMPLE-SECURITY.md` template. Where this document is silent, the LFDT policy governs.
810

9-
The process by which the Hyperledger Security Team handles security bugs is documented further in our [Defect Response page](https://wiki.hyperledger.org/display/SEC/Defect+Response) on our [wiki](https://wiki.hyperledger.org).
11+
## Security Team
12+
13+
The Panurus security team is responsible for receiving, triaging, and coordinating the response to
14+
vulnerability reports. Each member subscribes to the LF Decentralized Trust security email list and
15+
to LFDT-wide security infrastructure. Members are added to and removed from the team via approved
16+
pull requests against this file.
17+
18+
| Name | Email ID | Discord ID | Area/Specialty |
19+
|------|----------|------------|----------------|
20+
| Angelo De Caro | <adc@zurich.ibm.com> | adecaro | Cryptography, zero-knowledge token protocols (`zkatdlog`) |
21+
| Kaoutar Elkhiyaoui | <kao@zurich.ibm.com> | KElkhiyaoui | Cryptography, token protocol design and validation |
22+
| Akram Bitar | <akram@il.ibm.com> | akrambitar | SDK, drivers, integration and CI |
23+
24+
Because Panurus contains security-sensitive cryptographic code — zero-knowledge proofs, range
25+
proofs, and Idemix-based identity under `token/core/zkatdlog/` — the security team includes
26+
maintainers with cryptography expertise, per the LFDT policy.
27+
28+
The security team accepts the following responsibilities:
29+
30+
1. Acknowledge receipt of a report to the reporter within **2 business days**.
31+
2. Triage the report, and open a GitHub Security Advisory if it appears to be a vulnerability.
32+
Reports that are ordinary bugs are redirected to the normal issue process, and the reporter is told so.
33+
3. Negotiate an embargo period with the reporter where needed. An embargo **must not exceed 90 days**.
34+
4. Develop and review the patch privately, using GitHub's private vulnerability patching features.
35+
5. Obtain a CVE identifier.
36+
6. Agree on a disclosure date and notify embargo list members, if applicable.
37+
7. Ship a release containing the fix.
38+
8. Disclose publicly **within 48 hours after the release**, via a GitHub Security Advisory.
39+
9. Credit the reporter in the advisory, unless they ask to remain anonymous.
40+
41+
## Discussion Forums
42+
43+
Vulnerability discussion happens in the private GitHub Security Advisory opened for the report.
44+
A private channel on the [LF Decentralized Trust Discord][discord] may be created if broader
45+
coordination is required.
46+
47+
**Do not** discuss a suspected vulnerability in a public issue, pull request, discussion, or
48+
Discord channel before it has been disclosed.
49+
50+
## Report Intakes
51+
52+
Report a suspected vulnerability through **either** of these channels:
53+
54+
- **Email** the LF Decentralized Trust security email list at
55+
<security@lists.lfdecentralizedtrust.org>. Please include:
56+
- the repository name (`LFDT-Panurus/panurus`),
57+
- a description of the issue,
58+
- steps to reproduce,
59+
- affected versions,
60+
- any known mitigations.
61+
- **GitHub private vulnerability reporting** — open a draft advisory from the
62+
[Security tab][security-tab] of the repository.
63+
64+
Reports are handled per the response outline above.
65+
66+
## CNA/CVE Reporting
67+
68+
GitHub acts as the CVE Numbering Authority (CNA) for Panurus. The security team requests CVE
69+
identifiers through the GitHub Security Advisory workflow.
70+
71+
## Embargo List
72+
73+
Panurus does not maintain a project-specific embargo list. Where an embargo is warranted, the
74+
security team coordinates through the LFDT security email list and the private GitHub advisory.
75+
Requests to be included in a specific embargo should be sent to
76+
<security@lists.lfdecentralizedtrust.org> with the project name and the rationale for a
77+
need-to-know.
78+
79+
## Security Advisories
80+
81+
Panurus uses [GitHub Security Advisories][advisories] as its advisory mechanism. Published
82+
advisories are the authoritative record of disclosed vulnerabilities for the project.
83+
84+
## Private Patch Deployment Infrastructure
85+
86+
Panurus uses GitHub's private vulnerability patching features, which allow the fix to be developed
87+
and reviewed in a private fork associated with the advisory. Maintainers needing access or
88+
assistance can contact <community-architects@lfdecentralizedtrust.org>.
89+
90+
---
91+
92+
This policy borrows heavily from the recommendations of the OpenSSF Vulnerability Disclosure
93+
working group ([ossf/wg-vulnerability-disclosures][ossf-wg]), and the response outline derives from
94+
the OpenSSF maintainers guide.
95+
96+
<a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/88x31.png" /></a><br />This work is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 International License</a>.
97+
98+
[lfdt-security]: https://github.com/LF-Decentralized-Trust/governance/blob/main/tac/governing-documents/security.md
99+
[discord]: https://discord.gg/hyperledger
100+
[security-tab]: https://github.com/LFDT-Panurus/panurus/security
101+
[advisories]: https://github.com/LFDT-Panurus/panurus/security/advisories
102+
[ossf-wg]: https://github.com/ossf/wg-vulnerability-disclosures

0 commit comments

Comments
 (0)