Bug #3817

[API] Discovery document schema does not include generated fields like job dependencies

Added by Peter Amstutz over 4 years ago. Updated over 4 years ago.

Status:
New
Priority:
Normal
Assigned To:
-
Category:
API
Target version:
Start date:
Due date:
% Done:

0%

Estimated time:
Story points:
1.0

Description

schema_controller.rb:87:

        object_properties = {}
        k.columns.
          select { |col| col.name != 'id' }.
          collect do |col|
          if k.serialized_attributes.has_key? col.name
            object_properties[col.name] = {
              type: k.serialized_attributes[col.name].object_class.to_s
            }
          else
            object_properties[col.name] = {
              type: col.type
            }
          end
        end

This is introspecting over the internal SQL columns known to ActiveRecord, rather than the public data model declared in the 'api_accessible' stanzas of each subclass of ArvadosModel. This results in bugs such as Workbench recognizing fields on the internal SQL schema that are not intended for external consumption.

Fixing this is probably a prerequisite to #3818

History

#1 Updated by Peter Amstutz over 4 years ago

  • Subject changed from Discovery document generates resource description based on ActiveRecord columns, not api_response. to [API] Discovery document generates resource description based on ActiveRecord columns, not api_response.
  • Description updated (diff)
  • Category set to API

#2 Updated by Peter Amstutz over 4 years ago

  • Description updated (diff)

#3 Updated by Peter Amstutz over 4 years ago

  • Description updated (diff)

#4 Updated by Peter Amstutz over 4 years ago

  • Target version set to Arvados Future Sprints

#5 Updated by Tom Clegg over 4 years ago

Note - even if the discovery doc uses api_response, clients will still learn about fields that are not returned to them in API responses, as long as there are distinct api_response templates used depending on context (e.g., whether the current user is_admin).

The existence of this bug report suggests that an instance has been discovered where the schema advertises an attribute that isn't in API responses. If so, what is the model/attribute?

#6 Updated by Tom Clegg over 4 years ago

  • Subject changed from [API] Discovery document generates resource description based on ActiveRecord columns, not api_response. to [API] Discovery document schema does not include generated fields like job dependencies
  • Story points set to 1.0

Also available in: Atom PDF