Aikido Safe Chainを使っていると公開後24時間以内のパッケージは使えない

floqリリース後、何故か最新バージョンがインストールされなくて悩んでいた。 調べていくうちにsafe-chainが問題であることに気づいた。

Aikido Safe Chain

Safe Chainはデフォルトで公開後24時間以内のパッケージは利用しない。

README.mdのMinimum Package Ageの項目にも書いてあるが、デフォルトで24時間以内にリリースしたパッケージは利用しないようになっている。

このせいで検証しようとおもったfloqのパッケージが検証できなかった・・・。

この制約をどうやって回避すればいいのか?

回避方法はいくつかある

  1. --safe-chain-skip-minimum-package-age オプションを付けてnpm installする

npm installするときにSafe Chain側でも警告を出してくれるが最新をinstallしたい場合は --safe-chain-skip-minimum-package-age をつけることでインストールが可能になる。
例:

1
npm install -g floq --safe-chain-skip-minimum-package-age
  1. 環境変数で設定する

SAFE_CHAIN_NPM_MINIMUM_PACKAGE_AGE_EXCLUSIONS の環境変数を設定することで、回避することも可能。

1
export SAFE_CHAIN_NPM_MINIMUM_PACKAGE_AGE_EXCLUSIONS="floq"
  1. ~/.aikido/config.jsonでも設定が可能

もちろん設定ファイルでも可能

1
2
3
4
5
{
  "npm": {
    "minimumPackageAgeExclusions": ["@aikidosec/*"]
  }
}

最後に

詳しいことはSafe ChainのREADMEを見ることをおすすめする。
https://github.com/AikidoSec/safe-chain

カテゴリ

comments powered by Disqus