nodeからBalenaSDKをサーバーで使うときはdataDirectoryを設定する

1 min読了の目安(約400字TECH技術記事

BalenaのSDKを利用した際、ローカルで実行するとローカルのbalena-cliのトークンを勝手に使ってしまって困ったのでメモ。

結論としてはこれを防ぐには下記のようにdataDirectoryを設定するしかなさそう


const sdk = getSdk({
  dataDirectory: process.env.BALENA_DATA_DIR || "/tmp",
})

await sdk.auth.loginWithToken(process.env.BALENA_API_KEY)

datDirectoryは書き込めるディレクトリであれば何でも良いが、多くのlinux環境で利用できる/tmpをここでは利用した。

どうもこれはbalena-authの仕様的にそうやっているっぽかった。

https://github.com/balena-io-modules/balena-auth/blob/7158f624cd318f3c3015e787a4aafe3d1a546f32/lib/auth.ts#L34-L40