app/controllers/api/connect/v3/subscriptions/systems_controller.rb
class Api::Connect::V3::Subscriptions::SystemsController < Api::Connect::BaseController
def announce_system
@system = System.create!(hostname: params[:hostname], system_information: hwinfo_params[:hwinfo].to_json)
logger.info("System '#{@system.hostname}' announced")
respond_with(@system, serializer: ::V3::SystemSerializer, location: nil)
end
private
def hwinfo_params
# Allow all attributes without validating the key structure
# This is fine since the systems are only internal and RMT users
# can save in their own database whatever they want.
# When forwarded to SCC, SCC validates the payload for correctness.
params.permit(hwinfo: {})
end
end