Create skeleton for Extensions Marketplace settings in admin section

MR:

Description

This issue encompasses the BE work required to add extensions marketplace section in the admin setting and skeleton for the FE. This involves:

  • Adding a new field vscode_extensions_marketplace in the existing application_settings model.
  • Creating a new Vue app that is mounted in app/assets/javascripts/pages/admin/application_settings/index.js and accepts a submit path and initial values.

These changes will be behind a new feature flag: vscode_extensions_marketplace_settings to allow iterative development of the Extensions Marketplace admin settings.

Acceptance Criteria

  • A wip feature flag vscode_extensions_marketplace_settings is added to the main project and disabled by default. Follow steps outlined in this doc. Feature flag rollout issue: #508996 (closed)
  • We have a skeleton of the Extension Marketplace settings in the Admin Area under General. The new vscode_extensions_marketplace field is passed to the UI.

Technical Requirements:

Backend:

  • Db migration added for vscode_extensions_marketplace JSONB field under application_settings model with a default value of nil. See this thread for some notes on db approach.
  • application_settings_controller.rb is set up to receive vscode_extensions_marketplace param in visible_application_setting_attributes (see Spike MR).
  • [ ]
  • Update admin_setting helpers and controllers to allow passing the vscode_extensions_marketplace field to the Vue app.

Frontend:

  • Create placeholder view for Extensions Marketplace settings app in app/views/admin/application_settings/general.html.haml that is protected by feature flag vscode_extensions_marketplace.

Investigation

Please see DRAFT: Spike of Extensions marketplace admin se... (!175055 - closed) for Spike implementation to guide the implementation of this issue.

Edited by Paul Slaughter