20470: Fix discovery document generation to drop unpublished fields
authorPeter Amstutz <peter.amstutz@curii.com>
Thu, 4 May 2023 22:34:01 +0000 (18:34 -0400)
committerPeter Amstutz <peter.amstutz@curii.com>
Thu, 4 May 2023 22:34:01 +0000 (18:34 -0400)
Now uses the list of API published fields (selectable_attributes) to
generate discovery doc, this causes some obsolete and nonpublic fields
to disappear from the discovery doc (but actually they were never part
of the public API in the first place).

The immediate reason to do this is because workbench 1 was using the
discovery document to craft a list of fields to select, but the
changes to the way select work in this branch means that asking for
unpublished fields now throws an error.

Arvados-DCO-1.1-Signed-off-by: Peter Amstutz <peter.amstutz@curii.com>

sdk/python/arvados-v1-discovery.json
services/api/app/controllers/arvados/v1/schema_controller.rb

index f015978bdf28b34e6f4ec2876787c88c44d51a25..5d4666bf9435440e7774f0899e90e21e116a8c38 100644 (file)
         "created_at": {
           "type": "datetime"
         },
-        "updated_at": {
-          "type": "datetime"
-        },
         "is_locked_by_uuid": {
           "type": "string"
         },
         },
         "components": {
           "type": "Hash"
-        },
-        "script_parameters_digest": {
-          "type": "string"
         }
       }
     },
         "created_at": {
           "type": "datetime"
         },
-        "updated_at": {
-          "type": "datetime"
-        },
         "is_trusted": {
           "type": "boolean"
         }
         "created_at": {
           "type": "datetime"
         },
-        "updated_at": {
-          "type": "datetime"
-        },
         "default_owner_uuid": {
           "type": "string"
         },
         },
         "created_at": {
           "type": "datetime"
-        },
-        "updated_at": {
-          "type": "datetime"
         }
       }
     },
         "replication_confirmed": {
           "type": "integer"
         },
-        "updated_at": {
-          "type": "datetime"
-        },
         "manifest_text": {
           "type": "text"
         },
         "delete_at": {
           "type": "datetime"
         },
-        "file_names": {
-          "type": "text"
-        },
         "trash_at": {
           "type": "datetime"
         },
         "priority": {
           "type": "integer"
         },
-        "updated_at": {
-          "type": "datetime"
-        },
         "exit_code": {
           "type": "integer"
         },
         "runtime_auth_scopes": {
           "type": "Array"
         },
-        "runtime_token": {
-          "type": "text"
-        },
         "lock_count": {
           "type": "integer"
         },
         "filters": {
           "type": "text"
         },
-        "updated_at": {
-          "type": "datetime"
-        },
         "container_count": {
           "type": "integer"
         },
         "output_ttl": {
           "type": "integer"
         },
-        "runtime_token": {
-          "type": "text"
-        },
         "output_storage_classes": {
           "type": "Array"
         },
         "description": {
           "type": "string"
         },
-        "updated_at": {
-          "type": "datetime"
-        },
         "group_class": {
           "type": "string"
         },
         },
         "created_at": {
           "type": "datetime"
-        },
-        "updated_at": {
-          "type": "datetime"
         }
       }
     },
         "created_at": {
           "type": "datetime"
         },
-        "updated_at": {
-          "type": "datetime"
-        },
         "created_by_job_task_uuid": {
           "type": "string"
         },
         "modified_at": {
           "type": "datetime"
         },
-        "ping_secret": {
-          "type": "string"
-        },
         "node_uuid": {
           "type": "string"
         },
         "created_at": {
           "type": "datetime"
         },
-        "updated_at": {
-          "type": "datetime"
-        },
         "keep_service_uuid": {
           "type": "string"
         }
         "created_at": {
           "type": "datetime"
         },
-        "updated_at": {
-          "type": "datetime"
-        },
         "read_only": {
           "type": "boolean"
         }
         },
         "properties": {
           "type": "Hash"
-        },
-        "updated_at": {
-          "type": "datetime"
         }
       }
     },
           "type": "string",
           "description": "Object version."
         },
+        "id": {
+          "type": "integer"
+        },
         "owner_uuid": {
           "type": "string"
         },
         "created_at": {
           "type": "datetime"
         },
-        "updated_at": {
-          "type": "datetime"
-        },
         "modified_at": {
           "type": "datetime"
         },
         "ip_address": {
           "type": "string"
         },
-        "first_ping_at": {
-          "type": "datetime"
-        },
         "last_ping_at": {
           "type": "datetime"
         },
-        "info": {
-          "type": "Hash"
-        },
-        "updated_at": {
-          "type": "datetime"
-        },
         "properties": {
           "type": "Hash"
         },
         "prefs": {
           "type": "Hash"
         },
-        "updated_at": {
-          "type": "datetime"
-        },
-        "default_owner_uuid": {
-          "type": "string"
-        },
         "is_active": {
           "type": "boolean"
         },
         "username": {
           "type": "string"
-        },
-        "redirect_to_user_uuid": {
-          "type": "string"
         }
       }
     },
         "components": {
           "type": "Hash"
         },
-        "updated_at": {
-          "type": "datetime"
-        },
         "properties": {
           "type": "Hash"
         },
         "components": {
           "type": "Hash"
         },
-        "updated_at": {
-          "type": "datetime"
-        },
         "description": {
           "type": "string"
         }
         },
         "created_at": {
           "type": "datetime"
-        },
-        "updated_at": {
-          "type": "datetime"
         }
       }
     },
         "material": {
           "type": "string"
         },
-        "updated_at": {
-          "type": "datetime"
-        },
         "properties": {
           "type": "Hash"
         }
         },
         "created_at": {
           "type": "datetime"
-        },
-        "updated_at": {
-          "type": "datetime"
         }
       }
     },
         },
         "created_at": {
           "type": "datetime"
-        },
-        "updated_at": {
-          "type": "datetime"
         }
       }
     },
         },
         "definition": {
           "type": "text"
-        },
-        "updated_at": {
-          "type": "datetime"
         }
       }
     },
         "replication_confirmed": {
           "type": "integer"
         },
-        "updated_at": {
-          "type": "datetime"
-        },
         "manifest_text": {
           "type": "text"
         },
         "delete_at": {
           "type": "datetime"
         },
-        "file_names": {
-          "type": "text"
-        },
         "trash_at": {
           "type": "datetime"
         },
index 34dfe966b0a38a7d347eb7427706d35b12465557..4d15cb121524e530adf0008d8c62deac6b8cad91 100644 (file)
@@ -127,7 +127,7 @@ class Arvados::V1::SchemaController < ApplicationController
       end
       object_properties = {}
       k.columns.
-        select { |col| col.name != 'id' && !col.name.start_with?('secret_') }.
+        select { |col| k.selectable_attributes.include? col.name }.
         collect do |col|
         if k.serialized_attributes.has_key? col.name
           object_properties[col.name] = {