Merge branch '16265-security-updates' into dependabot/bundler/apps/workbench/loofah...
[arvados.git] / services / api / app / controllers / arvados / v1 / schema_controller.rb
index 313fe5d0a086241ba9ca9cef95c8e29db60ad843..5c223410151788926445ac440e20a723ce6cf9aa 100644 (file)
@@ -33,7 +33,10 @@ class Arvados::V1::SchemaController < ApplicationController
         id: "arvados:v1",
         name: "arvados",
         version: "v1",
-        revision: "20131114",
+        # format is YYYYMMDD, must be fixed with (needs to be linearly
+        # sortable), updated manually, may be used by clients to
+        # determine availability of API server features.
+        revision: "20200212",
         source_version: AppVersion.hash,
         sourceVersion: AppVersion.hash, # source_version should be deprecated in the future
         packageVersion: AppVersion.package_version,
@@ -53,7 +56,7 @@ class Arvados::V1::SchemaController < ApplicationController
         blobSignatureTtl: Rails.configuration.Collections.BlobSigningTTL,
         maxRequestSize: Rails.configuration.API.MaxRequestSize,
         maxItemsPerResponse: Rails.configuration.API.MaxItemsPerResponse,
-        dockerImageFormats: Rails.configuration.Containers.SupportedDockerImageFormats,
+        dockerImageFormats: Rails.configuration.Containers.SupportedDockerImageFormats.keys,
         crunchLogBytesPerEvent: Rails.configuration.Containers.Logging.LogBytesPerEvent,
         crunchLogSecondsBetweenEvents: Rails.configuration.Containers.Logging.LogSecondsBetweenEvents,
         crunchLogThrottlePeriod: Rails.configuration.Containers.Logging.LogThrottlePeriod,
@@ -401,8 +404,30 @@ class Arvados::V1::SchemaController < ApplicationController
           end
         end
       end
-      Rails.configuration.API.DisabledAPIs.each do |method|
-        ctrl, action = method.split('.', 2)
+
+      discovery[:resources]['configs'] = {
+        methods: {
+          get: {
+            id: "arvados.configs.get",
+            path: "config",
+            httpMethod: "GET",
+            description: "Get public config",
+            parameters: {
+            },
+            parameterOrder: [
+            ],
+            response: {
+            },
+            scopes: [
+              "https://api.curoverse.com/auth/arvados",
+              "https://api.curoverse.com/auth/arvados.readonly"
+            ]
+          },
+        }
+      }
+
+      Rails.configuration.API.DisabledAPIs.each do |method, _|
+        ctrl, action = method.to_s.split('.', 2)
         discovery[:resources][ctrl][:methods].delete(action.to_sym)
       end
       discovery