【新卒 / 中途採用】サーバー / クラウドエンジニア 募集中!【大阪】

【新卒 / 中途採用】サーバー / クラウドエンジニア 募集中!【大阪】

【導入実績300社以上】AWS 構築・運用保守サービス

【導入実績300社以上】AWS 構築・運用保守サービス

【ECサイト構築】Shopify カスタムアプリ開発サービス

【ECサイト構築】Shopify カスタムアプリ開発サービス

【100URLの登録が0円】Webサイト監視サービス「Appmill」

【100URLの登録が0円】Webサイト監視サービス「Appmill」

【音声アプリ開発】Twilio アプリ開発サービス』

【音声アプリ開発】Twilio アプリ開発サービス』

【メッセージアプリ】LINE アプリ開発サービス

【メッセージアプリ】LINE アプリ開発サービス

【対談記事】「やっぱクラウド移設っていいですよね」マイネット × ビヨンド エンジニア対談

【対談記事】「やっぱクラウド移設っていいですよね」マイネット × ビヨンド エンジニア対談

ビヨンド公式YouTubeチャンネル「びよまるチャンネル」

ビヨンド公式YouTubeチャンネル「びよまるチャンネル」

Workspace Trust 大幅調整入りました。 VisualStudioCode 1.5.8 リリース


こんにちは。
開発チームのワイルド担当、まんだいです。
前回のバージョンアップで急に「このフォルダー内のファイルの作成者を信頼しますか?」と出てくるようになった Visual Studio Code (以下、VSCode) ですが、先日 1.58 がリリースされました。
しばらくぶりではありますが、1.58 の主要なアップデート内容をリリースノートからご紹介していきたいと思います。

やっぱり調整が入った Workspace Trust

やっぱりな、という気がしなくもないですが、冒頭でもご紹介した「このフォルダー内のファイルの作成者を信頼しますか?」を表示するか挙動を調整できるようになりました。

そもそもこれはなに?という方は Visual Studio Code Workspace Trust security に詳しいことが書かれているのでご覧いただきたいのですが、VSCode の開発者たちは "we believe it is important that developers can safely browse code" という感じで、この機能が我々のセキュリティリスクの低減に一役買っていることを信じてやまないようです。
とはいえ新しいプロジェクトを開くたびにこのダイアログを見たくない!という人たちが一定数存在するのは容易に想像できますので、調整項目を作ったよ!という形ですね。

ちなみに制限モードで開いてもコードの読み書きは問題なくできるようですが、以下の制限が掛かります。

  • タスクの実行(実行できなくなる)
  • デバッグの実行(デバッグ起動できなくなる)
  • ワークスペースの設定の一部が無効化
  • 拡張機能の一部が無効化

得体の知れないオープンソースのコードを github からクローンするといったことを行う場合は制限モードで開くとリスクは減らせるなと思います。

設定画面から「trust」で検索すると幾つか項目が出てきますので少し見ていきましょう。

 

この設定で制限モードに移行するか選択するダイアログの表示を制御できます。

  • デフォルトは untilDismissed で信頼するかしないか選択すれば、以降はダイアログが表示されません
  • always を選択すると、信頼しないを選択した場合、毎回ダイアログが表示されます
  • never を選択するとダイアログは表示されません

ダイアログが出なくなるだけで機能は有効のままです。

 

Empty Window

ワークスペースではない空のウィンドウの場合、 Workspace Trust を有効化するかを設定します。
このオプションを有効化した上で、後述する Untrusted Files と合わせて使うことで空のウィンドウでダイアログを表示させずに信頼したワークスペースと同様の扱いができます。

 

Enabled

Workspace Trust の機能を有効化 / 無効化します。
変更を有効化するために再起動が必要です。

 

Startup Prompt

起動時に Workspace Trust のダイアログを表示するタイミングを調整します。

 

always

信頼していないワークスペースを開く際、起動時に毎回確認のダイアログを表示します。

 

once

初回のみダイアログを表示し、2回目以降は表示しません。

 

never

ダイアログは表示しません。

 

Untrusted Files

ややこしいですが信頼されたワークスペース上でワークスペース外のファイル(これが信頼されていないファイルにあたる)を開く場合の振る舞いを設定します。
デフォルトは Workspace Trust のダイアログを開く「prompt」になっており、ダイアログを表示させずに開く「open」と、新しいウィンドウでファイルを開く「newWindow」があります。

 

Support Untrusted Workspace

信頼されていないワークスペースでの拡張機能を制御します。
このオプションは、 settings.json を直接編集する必要があり、拡張機能ごとにワークスペースが信頼されているかに合わせて有効化する設定を記載します。
導入している拡張機能の数によってはまぁまぁな作業量を必要としますので、挫けそうですね。

"eamodio.gitlens": {
    "supported": true
    "version": "11.6.0"
},

 

上記の JSON は settings.json から抜粋した一部ですが、拡張機能の Unique Identifier をキーとした値を2つ取るオブジェクトが拡張機能1つに対する設定です。
supported は信頼されていないワークスペースでどう起動させるかで、 true の場合は無条件で有効化され、 false の場合は無効化されます。
limited という値もあり、これは拡張機能自体は有効化されますが、拡張機能が持つ信頼を必要とする機能(例えばファイルの実行など)に関しては、対象ファイルの拡張子に合わせて非表示となります。

 

Transient workspaces ってなんですか?

Transient という見慣れない単語が出てきましたが Transient workspaces もワークスペースの一種のようです。
通常のワークスペースとの違いは2点あるようです。

  • VSCode をリスタートやリロードした場合、ワークスペースの再オープンを行わない
  • Transient workspaces と設定されたワークスペースは最近使用した項目に表示されない

使い所は局所的ですが、見られると恥ずかしいワークスペースが履歴に出てこなくなる、ブラウザで言うところのプライベートタブ的な扱いができるのかなと思いました。

 

ターミナルをエディタ扱いできる日が来ました

ターミナルをエディタエリアに移動させられるようになり、より自由度の高いレイアウトが組めるようになりました。
今まではパネルを最大化表示したり、分割レイアウトしたりとあくまでもパネル内での調整しかできなかったターミナルですが、ここに来てエディタ領域へ進出。

やり方は、ターミナルパネルの右側から開いているターミナルを右クリックし、 Move into Editor Area を選択、もしくはドラッグアンドドロップでエディタへ移動させます。
移動させたターミナルのレイアウトの操作感は通常のエディタを変わらず、ターミナルの中の操作感も今までのターミナルと変わらず、といった形なので自然に使えますね。

複数のターミナルをエディタとして並べて表示できるのですが、オペミスにはくれぐれもご注意を。

 

スクロールバーのサイズ調整ができるようになりました

今までできなかったんだ、と逆に思ってしまった設定ですが、スクロールバーを太くしたり細くしたりといった調整ができるようになりました。

ちょっと調整してみましたが太くしすぎると表示領域が狭まるし、細くするとマウス操作のストレスになるし。
結局デフォルトがいいと思いました。

 

Markdown プレビューで数式の表示ができるようになりました

Markdown で KaTeX の数式を書くと、正しくプレビューしてくれるようになりました。

 

まとめ

前回のバージョンアップで Workspace Trust が導入された際に詳しくご紹介できなかったのが悔やまれる今回の記事ですが、ちょうど色々と調整が入ったこともあって合わせてご紹介できてよかったのかなと思いました。
エディタでセキュリティって「どういうことやねん」と思いましたが、導入の経緯を見れば見るほど悪意のあるプログラムは「あやしいリンクを踏むだけではなく github にも存在してしまう時代になってしまったんだな」ということを痛感しました。

Workspace Trust に紙幅をかなり使いましたが、サーバーサイドエンジニア目線でいうと、ターミナルがエディタ扱いできるようになったというのは外せません。
エディタ化できたということは、フローティングできるようになるのももうすぐなの……かも。

以上です。


この記事をかいた人

About the author

萬代陽一

ソーシャルゲームのウェブ API などの開発がメイン業務ですが、ありがたいことにマーケティングなどいろんな仕事をさせてもらえています。
なおビヨンド内での私の肖像権は CC0 扱いになっています。