【事例付き】node.jsで社内利用限定コードをライセンス表記:All Rights Reserved、SEE LICENSE INの方法
node.js の package.json におけるライセンス表記:社内利用限定コードの場合
Node.js パッケージの package.json
ファイルには、ライセンス情報を含む様々な項目が設定できます。その中でも、ライセンス情報は、コードの利用許諾条件を明確にし、配布者と利用者双方の権利を守る上で重要な役割を果たします。
本記事では、社内利用限定のコードの場合、package.json
ファイルの license
フィールドにどのようなライセンス表記をすべきかについて、分かりやすく解説します。
ライセンス表記の選択肢
社内利用限定コードの場合、主に以下の2つの選択肢があります。
SPDX ライセンスリスト (https://github.com/spdx/license-list-data) に登録されている標準ライセンスを使用する場合は、そのライセンスのSPDX識別子を用いることができます。
例:
{
"name": "my-private-package",
"version": "0.1.0",
"license": "MIT"
}
上記例では、MIT ライセンスを使用していることを示しています。
非標準ライセンス
SPDX ライセンスリストに登録されていない非標準ライセンスを使用する場合は、以下のいずれかの方法でライセンス情報を記述する必要があります。
- SEE LICENSE IN <filename>: ライセンス情報を含むファイル名を指定します。 例:
{
"name": "my-private-package",
"version": "0.1.0",
"license": "SEE LICENSE IN LICENSE.md"
}
- カスタム SPDX ライセンス表現: SPDX ライセンス表現 2.0 を用いて、ライセンス条項を直接記述します。 例:
{
"name": "my-private-package",
"version": "0.1.0",
"license": "(OSI-approved License OR Apache-2.0)"
}
上記例では、OSI 承認ライセンスまたは Apache 2.0 ライセンスのいずれかを使用していることを示しています。
社内利用限定コードの場合、以下のライセンス表記が一般的です。
- All Rights Reserved: コードの利用、複製、改変、頒布等を一切許可しないことを示します。 例:
{
"name": "my-private-package",
"version": "0.1.0",
"license": "All Rights Reserved"
}
補足
- 上記以外にも、様々なライセンス表記方法が存在します。詳細は、SPDX ライセンスリストおよび SPDX ライセンス表現 2.0 の仕様を参照してください。
- ライセンス表記は、弁護士等に相談することを推奨します。
- オープンソースライセンスで公開する場合は、本記事の内容は適用されません。
Using an SPDX license identifier
{
"name": "my-package",
"version": "1.0.0",
"license": "MIT"
}
This code indicates that the package is licensed under the MIT License.
Using a non-standard license with a filename
{
"name": "my-package",
"version": "1.0.0",
"license": "SEE LICENSE IN LICENSE.md"
}
This code indicates that the license information is contained in a file named LICENSE.md
.
{
"name": "my-package",
"version": "1.0.0",
"license": "(OSI-approved License OR Apache-2.0)"
}
Using "All Rights Reserved" for internal-use-only code
{
"name": "my-private-package",
"version": "0.1.0",
"license": "All Rights Reserved"
}
This code indicates that the package is for internal use only and cannot be distributed or modified without permission.
Using "SEE LICENSE IN <filename>" for internal-use-only code with a company-specific license
{
"name": "my-private-package",
"version": "0.1.0",
"license": "SEE LICENSE IN COMPANY_LICENSE.txt"
}
Additional notes:
- Make sure to replace the placeholder values (
my-package
,1.0.0
,LICENSE.md
, etc.) with the actual values for your package. - If you are using a non-standard license, make sure to include a copy of the license file in your package directory.
I hope this helps!
その他のライセンス表記方法
URL でライセンス情報を参照する
ライセンス情報がオンラインで公開されている場合は、その URL を直接指定することができます。
{
"name": "my-package",
"version": "1.0.0",
"license": "https://opensource.org/licenses/MIT"
}
ライセンス条項を直接記述する
簡潔なライセンス条項であれば、直接記述することも可能です。ただし、この方法は、複雑なライセンス条項の場合には適していません。
{
"name": "my-package",
"version": "1.0.0",
"license": "Copyright (c) 2023 Your Name. All rights reserved."
}
上記例では、著作権表示とすべての権利を保持することを示しています。
SPDX ライセンス表現 2.0 は、複雑なライセンス条件を記述するためのフォーマットです。SPDX ライセンスリストに登録されていないライセンスや、複数のライセンスを組み合わせたライセンスなどを記述する場合に有効です。
{
"name": "my-package",
"version": "1.0.0",
"license": "[SPDX License Expression 2.0](https://spdx.org/licenses/SPDX-License-Expression-2.0.html)"
}
上記例では、SPDX ライセンス表現 2.0 の仕様へのリンクを指定しています。
注意事項
- ライセンス表記方法は、選択したライセンスによって異なる場合があります。ライセンスの公式ドキュメントを参照することを推奨します。
- ライセンス表記を誤ると、法的な問題が発生する可能性があります。注意して記述してください。
node.js package.json spdx