Markdown Editor

Open Source Program Policy Template (OpenChain)

OSPO policy: program scope, roles, licence categories, inbound approval and SBOM, OSS security assurance, compliance artefacts, contributions with DCO/CLA, clause mapping

Software & EngineeringFullISO/IEC 5230:2020; ISO/IEC 18974:2023 (OpenChain)opensourceprogrampolicy

How to use: Use it when you set up or formalise an open source program office or prepare for OpenChain conformance. Fill the program scope and the licence category table with counsel first. The main pitfall is treating hosted-only and distributed products the same, or code with no licence as permissive.

Preview

Open Source Program Policy: [Organisation name]

Policy for how [Organisation name] uses, distributes and contributes to open source software: program scope and roles, licence categories and approval, the inbound component process and software bill of materials, security assurance for open source components, compliance artefacts for outbound distribution, contributions to external projects with sign-off, releasing company projects, handling external inquiries, conformance records and review. Structure aligned with ISO/IEC 5230:2020 (OpenChain Specification, open source licence compliance; confirmed by ISO in July 2026) and ISO/IEC 18974:2023 (OpenChain security assurance specification). Replace every [bracketed] value and every row marked Example. Worked examples use Corvid Commerce, a fictional SaaS company that runs an online checkout platform and ships an on-premises payment gateway appliance. This is a documentation format, not legal advice: licence interpretation needs a qualified professional.

Document control

FieldValue
Document ID[OSP-POL-001]
Version[0.1]
Status[Draft / In review / Approved / Superseded]
Owner[@ospo-lead]
Approvers/reviewers[@general-counsel], [@ciso], [@engineering-director], [@product-security-lead]
Last updatedYYYY-MM-DD
Classification[Internal; a summary may be published]
Standards referencedISO/IEC 5230:2020; ISO/IEC 18974:2023
Conformance claim[Example: Self-certified conformance to ISO/IEC 5230 and ISO/IEC 18974, registered YYYY-MM-DD]
Next reviewYYYY-MM-DD (at least every 12 months, and before conformance renewal)

Approvals

RoleNameDecisionDate
General counsel[@name][Approve / Approve with conditions / Reject]YYYY-MM-DD
Chief information security officer[@name][Decision]YYYY-MM-DD
Engineering director[@name][Decision]YYYY-MM-DD

Revision history

VersionDateAuthorChange summary
0.1YYYY-MM-DD[@name]First draft
1.0YYYY-MM-DD[@name]Example: Approved; program covers the gateway appliance and mobile SDK
1.1YYYY-MM-DD[@name]Example: Added security assurance section for ISO/IEC 18974

Contents

1. Purpose and scope

1.1 Purpose

This policy makes sure that [Organisation] meets the obligations of every open source licence in the software it supplies, manages known vulnerabilities in the open source it depends on, and takes part in open source communities in a way that protects the company and respects the projects. It defines who decides, which licences are acceptable for which use, and which records prove that the process works.

1.2 Program scope

Product or activityDistributed to third parties?In scopeNotes
Example: Checkout platform (SaaS)No, hosted onlyYesNetwork copyleft licences matter here (section 4)
Example: Payment gateway appliance firmwareYes, shipped to merchantsYesFull compliance artefacts required (section 7)
Example: Mobile payments SDKYes, published to package registriesYesNotices bundled in the package
Example: Internal tools and scriptsNoYes, inbound rules only
Example: Contributions to external projectsNot applicableYesSection 8
[Product][Yes / No][Yes / No][Notes]

2. Policy statements

IDStatementSection
OSP-POL-001Every open source component in an in-scope product MUST be recorded in that product's software bill of materials (SBOM) with its version and identified licence.5
OSP-POL-002Components MUST be used only under licences in an approved category for the intended use, or with a recorded approval.4, 5
OSP-POL-003Known vulnerabilities in open source components MUST be identified, triaged and tracked to closure under the vulnerability process.6
OSP-POL-004Every distribution of supplied software MUST be accompanied by the compliance artefacts its licences require.7
OSP-POL-005Employees MUST follow section 8 before contributing to an external project on company time or with company resources.8
OSP-POL-006Company code MUST be released as open source only after approval under section 9.9
OSP-POL-007External inquiries about licence compliance or open source security MUST be answered through the published contact within [Example: 10 working days].10
OSP-POL-008Program participants MUST complete the training in section 3.3 before taking up their role.3
OSP-POL-009The program MUST be reviewed, and conformance evidence refreshed, at least every 12 months.12

3. Roles, competence and awareness

3.1 Roles and responsibilities

RoleResponsibilitiesCompetence required
OSPO lead (program manager)Owns this policy; runs the review board; reports to leadership; maintains conformance evidenceOpen source licensing basics, process management
Open source review boardDecides on licence approvals, outbound releases and exceptionsMixed: legal, security, engineering
Legal counselInterprets licences; approves categories, notices and contribution agreementsSoftware licensing law
Product security leadOwns vulnerability response for open source components; maintains the security assurance processVulnerability management, SBOM tooling
Engineering teamsRecord components, request approvals, keep SBOMs current, produce compliance artefacts in the buildPolicy training; build tooling
Release managersCheck that compliance artefacts are complete before each distributionRelease checklist
ContributorsFollow section 8 when contributing externallyPolicy training; DCO or CLA rules

3.2 Resourcing

Record the time and budget each role has. [Example: Corvid Commerce funds 0.5 FTE for the OSPO lead, 2 hours a week of counsel time, a software composition analysis (SCA) tool licence, and a monthly review board meeting.] Name a deputy for each role so that approvals do not stop during absences.

3.3 Training and awareness

AudienceContentWhenEvidence
All engineersThis policy, licence categories, how to request approval, how to report a concernOn joining, then every 12 monthsLearning system record
Release managersCompliance artefacts and the release checklistBefore first releaseRecord
Review board membersLicence interpretation, security assurance dutiesOn appointment, then yearlyRecord
ContributorsSection 8, sign-off rulesBefore first external contributionRecord

4. Licence categories

CategoryExamples (SPDX IDs)Internal useSaaS (hosted)Distributed product
A. PermissiveMIT, BSD-2-Clause, BSD-3-Clause, Apache-2.0, ISC, ZlibAllowedAllowedAllowed with notices
B. Weak copyleftLGPL-2.1-only, LGPL-3.0-only, MPL-2.0, EPL-2.0AllowedAllowedReview board approval; keep modified files separable
C. Strong copyleftGPL-2.0-only, GPL-3.0-onlyAllowedAllowed with reviewNot allowed in proprietary components without counsel approval
D. Network copyleftAGPL-3.0-onlyReviewNot allowed without counsel approvalNot allowed without counsel approval
E. Source-available and non-open-source licencesExample: BUSL-1.1, SSPL-1.0, Elastic-2.0ReviewCounsel approvalCounsel approval
F. No licence or unknownNo licence file, unclear headersNot allowedNot allowedNot allowed
G. Public domain dedicationsCC0-1.0, UnlicenseAllowedAllowedAllowed; check jurisdiction notes with counsel

Licence obligations for each approved licence (attribution, notice files, source offer, change notices, patent clauses) are recorded once in the licence obligation register maintained by counsel, so that engineers do not interpret licences themselves.

5. Inbound use and software bill of materials

5.1 Approval flow

An approved request records the component, version, licence, intended use, obligations and approver. Approvals are tied to a use: moving an approved component from an internal tool into a distributed product needs a new check.

5.2 SBOM rules

RuleDetail
Format[Example: SPDX 2.3 or CycloneDX 1.6 JSON], following the SBOM and VEX Policy (security/sbom-vex-policy)
GenerationProduced in the build for every release of supplied software; stored with the release
ContentComponent name, version, supplier, identified licence, package URL, dependency relationship
Retention[Example: For the supported life of the product plus 3 years]
Accuracy checkRelease manager compares the SBOM with the release checklist; SCA tool fails the build on undeclared components

6. Security assurance for open source components

StepWhat happensOwner
Identify threatsEach supplied product has a threat model that names the structural and technical threats its open source components bring, refreshed at each major releaseProduct security with the owning team
DetectEach SBOM is checked against public vulnerability sources (for example the CVE list, the National Vulnerability Database, the GitHub Advisory Database and OSV) daily and at each releaseProduct security
AssessEach finding is triaged for exploitability in our product, with a VEX status where relevantProduct security with the owning team
FixRemediation targets follow the Vulnerability Management Policy (security/vulnerability-management-policy)Owning team
CommunicateCustomers of supplied software are informed through security advisories (security/security-advisory)Product security
Test before releaseSecurity testing (for example SCA, static analysis and dependency fuzzing where relevant) runs on every release candidate, and open risks are confirmed as fixed, mitigated or accepted before releaseOwning team, release manager
VerifyClosed findings are verified in the next SBOM scanProduct security
ShareVulnerability and risk information is shared with third parties, such as upstream projects or customers under contract, where appropriate (for example as VEX documents)Product security
LearnRepeated issues in one component trigger a review of whether to keep itReview board

Record the standard practice for each step as written procedures, with the people and tools assigned. [Example: Corvid Commerce runs its SCA tool on every pull request and nightly on release SBOMs; critical findings in the gateway firmware open a PSIRT case within one working day.]

7. Outbound distribution and compliance artefacts

ArtefactWhen neededHow producedWhere delivered
Notices file (licence texts and attributions)Every distributionGenerated from the SBOM in the buildInside the product and on the documentation site
Source code for copyleft componentsWhen a licence requires itSource archive built from the same tagDownload portal or written offer, as counsel decides
Written offer for sourceWhen source is not shipped alongsideStandard text approved by counselProduct documentation
Change noticesWhen a licence requires marking modified filesCommit history and file headersSource archive
SBOMOn customer request or contractRelease SBOMCustomer portal

Compliance artefacts for each release are archived for [Example: at least 3 years after the last distribution of that release].

8. Contributing to external projects

8.1 Contribution tiers

TierExamplesApproval
T1 Small fixBug fixes, documentation, tests to projects already used by the companyNone beyond this policy; follow the project's rules
T2 Feature or new projectNew features, contributions to a project not used by the companyManager plus OSPO lead
T3 SensitiveCode touching company patents, security fixes before disclosure, anything derived from confidential codeReview board and counsel

8.2 Sign-off and agreements

  • Where a project uses the Developer Certificate of Origin (DCO 1.1, developercertificate.org), contributors add a Signed-off-by: line with git commit -s using their own name and company email, after confirming the certification applies.
  • Where a project needs a Contributor Licence Agreement (CLA), counsel reviews it once; corporate CLAs are signed by [authorised signatory] and individual contributors are added to the approved list.
  • Contributions never include company confidential information, customer data or secrets.
  • Security fixes follow coordinated disclosure with the project's security policy before any public pull request.

9. Releasing company projects as open source

CheckEvidence
Business reason and named maintainersRelease proposal approved by the review board
Licence chosen from the outbound list[Example: Apache-2.0 by default; MIT for small utilities]
Code free of secrets, internal hostnames and third-party code with incompatible licencesScan reports
Trademark and naming clearedCounsel note
Community files presentREADME (dev/readme), CONTRIBUTING (dev/contributing), Code of Conduct (dev/code-of-conduct), Security Policy (dev/security-policy), Governance (dev/governance)
Security baselineOSS Project Security Baseline (security/oss-project-security-baseline)

10. External inquiries

Publish [Example: opensource@corvid.example] on the product documentation site and in notices files. Inquiries are logged, acknowledged within [Example: 5 working days] and answered within [Example: 10 working days], or given a date. Security reports go to the channel in the Vulnerability Disclosure Policy (security/vulnerability-disclosure-policy).

Inquiry IDDate receivedTopicOwnerStatusClosed
INQ-001 (Example)YYYY-MM-DDRequest for source of a GPL component in gateway firmware 4.2[@ospo-lead]Source archive sentYYYY-MM-DD
[INQ-NNN]YYYY-MM-DD[Topic][@owner][Status]YYYY-MM-DD

11. Exceptions

Exception IDPolicy statementReasonCompensating controlsApproved byExpires
OSP-EXC-001 (Example)OSP-POL-002Category C library needed in an internal test harness that is never distributedBuild rule blocks it from release artefactsReview boardYYYY-MM-DD
[OSP-EXC-NNN][ID][Reason][Controls][@approver]YYYY-MM-DD

12. Conformance, records and review

RecordRetentionLocation
This policy and its approvalsCurrent and two prior versionsPolicy portal
Training records[Example: 3 years]Learning system
SBOMs and compliance artefacts per releaseSection 5.2 and section 7Release archive
Licence approvals and exceptionsLife of the component in the productReview board register
Vulnerability triage records[Example: 3 years]Vulnerability tracker
Inquiry log[Example: 3 years]OSPO register
Conformance self-assessmentUntil the next oneOSPO register

Review the program every 12 months: check each row of the clause mapping (section 13), sample three releases for complete artefacts, and report results to [leadership]. Register or renew the conformance claim through the OpenChain project's process if you publish one.

13. Clause mapping

13.1 ISO/IEC 5230:2020 (licence compliance)

ClauseHeadingHow this policy meets it
3.1.1PolicyThis document; section 2 statements
3.1.2CompetenceSection 3.1 competence column; section 3.3 records
3.1.3AwarenessSection 3.3 training
3.1.4Program scopeSection 1.2
3.1.5License obligationsSection 4 and the licence obligation register
3.2.1AccessSection 10 published inquiry contact
3.2.2Effectively resourcedSection 3.2
3.3.1Bill of materialsSection 5.2
3.3.2License complianceSections 4 and 5.1
3.4.1Compliance artifactsSection 7
3.5.1ContributionsSection 8
3.6.1ConformanceSection 12 self-assessment
3.6.2DurationSection 12 review cycle

13.2 ISO/IEC 18974:2023 (security assurance)

ClauseHeadingHow this policy meets it
4.1.1PolicyThis document; OSP-POL-003
4.1.2CompetenceSection 3.1 (product security lead)
4.1.3AwarenessSection 3.3
4.1.4Program scopeSection 1.2
4.1.5Standard practice implementationSection 6 procedures (threat identification, detection, follow-up, customer communication, post-release monitoring, pre-release testing, risk verification, sharing)
4.2.1AccessSection 10 and the vulnerability disclosure channel
4.2.2Effectively resourcedSection 3.2
4.3.1Software bill of materialsSection 5.2
4.3.2Security assuranceSection 6
4.4.1CompletenessSection 12 self-assessment
4.4.2DurationSection 12 review cycle

14. Glossary and references

14.1 Glossary

TermMeaning in this policy
Supplied softwareSoftware the company distributes to third parties in any form
Compliance artefactsNotices, licence texts, source code and other materials a licence requires with a distribution
Identified licenceThe licence determined for a component after review, recorded with an SPDX identifier
SBOMSoftware bill of materials: an inventory of components and their relationships
OSPOOpen source program office: the function that runs this program
DCODeveloper Certificate of Origin, a per-commit statement of the right to contribute
CLAContributor Licence Agreement, a contract granting rights in contributions to a project
VEXVulnerability Exploitability eXchange: a statement of whether a known vulnerability affects a product

14.2 References

ReferenceEditionNotes
ISO/IEC 5230:2020, Information technology, OpenChain SpecificationPublished 15 December 2020; confirmed 30 July 2026Official text: ISO/IEC JTC 1, purchase or licensed access: https://www.iso.org/standard/81039.html. The OpenChain project also publishes the same specification text (version 2.1) under CC BY 4.0 at https://github.com/OpenChain-Project/License-Compliance-Specification
ISO/IEC 18974:2023, Information technology, OpenChain security assurance specificationPublished 14 December 2023 (ISO open data)Official text: ISO/IEC JTC 1, purchase or licensed access: https://www.iso.org/standard/86450.html. OpenChain publishes a functionally identical version under CC BY 4.0 at https://github.com/OpenChain-Project/Security-Assurance-Specification
OpenChain Project, openchainproject.orgCurrentSelf-certification checklists and conformance registration
Developer Certificate of Origin, developercertificate.orgVersion 1.1Contribution sign-off (section 8.2)
SPDX License List, spdx.org/licensesCurrentLicence identifiers (section 4)
Related templatesCurrentdev/dependency-management-policy, security/sbom-vex-policy, security/supply-chain-security, compliance/software-licence-review, dev/governance, dev/contributing

Standard and licence note

Structure aligned with ISO/IEC 5230:2020 (OpenChain Specification) and ISO/IEC 18974:2023 (OpenChain security assurance specification). Clause numbers and short headings are cited for mapping only; the policy wording, roles, categories, tables and examples are original and do not reproduce the standards. Official text: ISO/IEC JTC 1, purchase or licensed access: https://www.iso.org/standard/81039.html and https://www.iso.org/standard/86450.html; the OpenChain project publishes equivalent specification texts under CC BY 4.0. A revised edition of the licence compliance specification (OpenChain 3.0, proposed as a new ISO/IEC 5230 edition) was in draft when this template was written; check the current editions before claiming conformance. The licence categories are illustrative and must be set with counsel. Corvid Commerce is fictional. This is a documentation format, not legal advice; check the current official texts and a qualified professional. Template licence: MIT.

Related templates