{"version":"1.4","metadata":{"app":"appland/AppLand","language":{"name":"ruby","engine":"ruby","version":"2.6.6"},"client":{"name":"appmap","url":"https://github.com/applandinc/appmap-ruby","version":"0.40.0"},"frameworks":[{"name":"rails","version":"5.2.4.2"},{"name":"rspec","version":"3.9.1"}],"git":{"repository":"git@github.com:applandinc/appland.git","branch":"apply-labels","commit":"5428f5df16a93d59a15d2559c626f6918d8f0523","status":["M app/controllers/api/scenarios_controller.rb","M app/controllers/application_controller.rb","M app/controllers/applications_controller.rb","M app/controllers/concerns/current_user.rb","M app/controllers/home_controller.rb","M app/controllers/js/examples_controller.rb","M app/controllers/profile_filters_controller.rb","M app/controllers/scenario_uploads_controller.rb","M app/controllers/scenarios_controller.rb","M app/controllers/sessions_controller.rb","M app/controllers/setup_controller.rb","M app/controllers/static_controller.rb","M app/controllers/web_resources_controller.rb","M appmap.yml"],"git_last_annotated_tag":null,"git_last_tag":"v0.17.1","git_commits_since_last_annotated_tag":null,"git_commits_since_last_tag":0},"name":"API::APIKeysController revoke an existing api key","feature":"API::APIKeysController revoke","feature_group":"API API keys","labels":["api_keys","api"],"recorder":{"name":"rspec"}},"classMap":[{"name":"app/models","type":"package","children":[{"name":"ApiKey","type":"class","children":[{"name":"issue","type":"function","location":"app/models/api_key.rb:28","static":true},{"name":"encode","type":"function","location":"app/models/api_key.rb:20","static":true},{"name":"authenticate","type":"function","location":"app/models/api_key.rb:52","static":true,"labels":["provider.authentication"]},{"name":"decode","type":"function","location":"app/models/api_key.rb:24","static":true},{"name":"touch","type":"function","location":"app/models/api_key.rb:11","static":true},{"name":"revoke","type":"function","location":"app/models/api_key.rb:40","static":true}]}]},{"name":"app/controllers","type":"package","children":[{"name":"API","type":"class","children":[{"name":"APIKeysController","type":"class","children":[{"name":"destroy","type":"function","location":"app/controllers/api/api_keys_controller.rb:15","static":false}]}]}]},{"name":"json","type":"package","children":[{"name":"JSON","type":"class","children":[{"name":"Ext","type":"class","children":[{"name":"Generator","type":"class","children":[{"name":"State","type":"class","children":[{"name":"generate","type":"function","location":"JSON::Ext::Generator::State#generate","static":false,"labels":["serialization","json"]}]}]}]}]}]}],"events":[{"id":6835,"event":"call","thread_id":70342530023440,"defined_class":"ApiKey","method_id":"issue","path":"app/models/api_key.rb","lineno":28,"static":true,"parameters":[{"name":"login","class":"String","object_id":70342617628840,"value":"admin","kind":"req"},{"name":"description","class":"String","object_id":70342580224440,"value":"example api key","kind":"key"},{"name":"encode","class":"NilClass","object_id":8,"value":null,"kind":"key"}],"receiver":{"class":"Class","object_id":70342537284160,"value":"ApiKey"}},{"id":6836,"event":"call","thread_id":70342530023440,"sql_query":{"sql":"INSERT INTO \"api_keys\" (\"login\", \"description\") VALUES ('admin', 'example api key') RETURNING *","database_type":"postgres","server_version":120003}},{"id":6837,"event":"return","thread_id":70342530023440,"parent_id":6836,"elapsed":0.0013},{"id":6838,"event":"call","thread_id":70342530023440,"defined_class":"ApiKey","method_id":"encode","path":"app/models/api_key.rb","lineno":20,"static":true,"parameters":[{"name":"api_key","class":"DAO::ApiKey","object_id":70342635443280,"value":"#<DAO::ApiKey:0x00007ff3d798a8a0>","kind":"req"}],"receiver":{"class":"Class","object_id":70342537284160,"value":"ApiKey"}},{"id":6839,"event":"return","thread_id":70342530023440,"parent_id":6838,"elapsed":2.2e-05,"return_value":{"class":"String","value":"YWRtaW46YzQ3MDNiZWMtZTBhNC00Njc5LThmYjktNDBlMWY3ZGI0MDUy","object_id":70342537401700}},{"id":6840,"event":"return","thread_id":70342530023440,"parent_id":6835,"elapsed":0.004678,"return_value":{"class":"String","value":"YWRtaW46YzQ3MDNiZWMtZTBhNC00Njc5LThmYjktNDBlMWY3ZGI0MDUy","object_id":70342537401700}},{"id":6841,"event":"call","thread_id":70342530023440,"http_server_request":{"request_method":"DELETE","path_info":"/api/api_keys","normalized_path_info":"/api/api_keys(.:format)"},"message":[{"name":"controller","class":"String","value":"api/api_keys","object_id":70342617273180},{"name":"action","class":"String","value":"destroy","object_id":70342617275480}]},{"id":6842,"event":"call","thread_id":70342530023440,"defined_class":"ApiKey","method_id":"authenticate","path":"app/models/api_key.rb","lineno":52,"static":true,"parameters":[{"name":"api_key","class":"String","object_id":70342537429640,"value":"YWRtaW46YzQ3MDNiZWMtZTBhNC00Njc5LThmYjktNDBlMWY3ZGI0MDUy","kind":"req"}],"receiver":{"class":"Class","object_id":70342537284160,"value":"ApiKey"}},{"id":6843,"event":"call","thread_id":70342530023440,"defined_class":"ApiKey","method_id":"decode","path":"app/models/api_key.rb","lineno":24,"static":true,"parameters":[{"name":"api_key","class":"String","object_id":70342537429640,"value":"YWRtaW46YzQ3MDNiZWMtZTBhNC00Njc5LThmYjktNDBlMWY3ZGI0MDUy","kind":"req"}],"receiver":{"class":"Class","object_id":70342537284160,"value":"ApiKey"}},{"id":6844,"event":"return","thread_id":70342530023440,"parent_id":6843,"elapsed":1.4e-05,"return_value":{"class":"Array","value":"[\"admin\", \"c4703bec-e0a4-4679-8fb9-40e1f7db4052\"]","object_id":70342558616760}},{"id":6845,"event":"call","thread_id":70342530023440,"sql_query":{"sql":"SELECT * FROM \"api_keys\" WHERE (\"login\" = 'admin')","database_type":"postgres","server_version":120003}},{"id":6846,"event":"return","thread_id":70342530023440,"parent_id":6845,"elapsed":0.001354},{"id":6847,"event":"call","thread_id":70342530023440,"defined_class":"ApiKey","method_id":"touch","path":"app/models/api_key.rb","lineno":11,"static":true,"parameters":[{"name":"api_key","class":"DAO::ApiKey","object_id":70342635632020,"value":"#<DAO::ApiKey:0x00007ff3d79e6b28>","kind":"req"}],"receiver":{"class":"Class","object_id":70342537284160,"value":"ApiKey"}},{"id":6848,"event":"call","thread_id":70342530023440,"sql_query":{"sql":"UPDATE \"api_keys\" SET \"last_used\" = '2021-02-01 15:52:48.011849+0000' WHERE (\"id\" = 3)","database_type":"postgres","server_version":120003}},{"id":6849,"event":"return","thread_id":70342530023440,"parent_id":6848,"elapsed":0.001371},{"id":6850,"event":"return","thread_id":70342530023440,"parent_id":6847,"elapsed":0.022899,"return_value":{"class":"DAO::ApiKey","value":"#<DAO::ApiKey:0x00007ff3d79e6b28>","object_id":70342635632020}},{"id":6851,"event":"call","thread_id":70342530023440,"sql_query":{"sql":"SELECT * FROM \"users\" WHERE (\"users\".\"login\" = 'admin') LIMIT 1","database_type":"postgres","server_version":120003}},{"id":6852,"event":"return","thread_id":70342530023440,"parent_id":6851,"elapsed":0.001451},{"id":6853,"event":"return","thread_id":70342530023440,"parent_id":6842,"elapsed":0.034333,"return_value":{"class":"User::Show","value":"#<User::Show:0x00007ff3d68c8760>","object_id":70342626657200}},{"id":6854,"event":"call","thread_id":70342530023440,"defined_class":"API::APIKeysController","method_id":"destroy","path":"app/controllers/api/api_keys_controller.rb","lineno":15,"static":false,"parameters":[],"receiver":{"class":"API::APIKeysController","object_id":70342537416460,"value":"#<API::APIKeysController:0x00007ff3cbe91e18>"}},{"id":6855,"event":"call","thread_id":70342530023440,"defined_class":"ApiKey","method_id":"revoke","path":"app/models/api_key.rb","lineno":40,"static":true,"parameters":[{"name":"api_key","class":"String","object_id":70342537429640,"value":"YWRtaW46YzQ3MDNiZWMtZTBhNC00Njc5LThmYjktNDBlMWY3ZGI0MDUy","kind":"req"}],"receiver":{"class":"Class","object_id":70342537284160,"value":"ApiKey"}},{"id":6856,"event":"call","thread_id":70342530023440,"defined_class":"ApiKey","method_id":"decode","path":"app/models/api_key.rb","lineno":24,"static":true,"parameters":[{"name":"api_key","class":"String","object_id":70342537429640,"value":"YWRtaW46YzQ3MDNiZWMtZTBhNC00Njc5LThmYjktNDBlMWY3ZGI0MDUy","kind":"req"}],"receiver":{"class":"Class","object_id":70342537284160,"value":"ApiKey"}},{"id":6857,"event":"return","thread_id":70342530023440,"parent_id":6856,"elapsed":1.1e-05,"return_value":{"class":"Array","value":"[\"admin\", \"c4703bec-e0a4-4679-8fb9-40e1f7db4052\"]","object_id":70342626696460}},{"id":6858,"event":"call","thread_id":70342530023440,"sql_query":{"sql":"SELECT * FROM \"api_keys\" WHERE (\"login\" = 'admin')","database_type":"postgres","server_version":120003}},{"id":6859,"event":"return","thread_id":70342530023440,"parent_id":6858,"elapsed":0.001071},{"id":6860,"event":"call","thread_id":70342530023440,"sql_query":{"sql":"DELETE FROM \"api_keys\" WHERE \"id\" = 3","database_type":"postgres","server_version":120003}},{"id":6861,"event":"return","thread_id":70342530023440,"parent_id":6860,"elapsed":0.001253},{"id":6862,"event":"return","thread_id":70342530023440,"parent_id":6855,"elapsed":0.010014,"return_value":{"class":"DAO::ApiKey","value":"#<DAO::ApiKey:0x00007ff3d103a648>","object_id":70342580228900}},{"id":6863,"event":"return","thread_id":70342530023440,"parent_id":6854,"elapsed":0.010242,"return_value":{"class":"String","value":"","object_id":70342529845780}},{"id":6864,"event":"return","thread_id":70342530023440,"parent_id":6841,"elapsed":0.045335,"http_server_response":{"status":200,"mime_type":"application/json; charset=utf-8"}},{"id":6865,"event":"call","thread_id":70342530023440,"http_server_request":{"request_method":"DELETE","path_info":"/api/api_keys","normalized_path_info":"/api/api_keys(.:format)"},"message":[{"name":"controller","class":"String","value":"api/api_keys","object_id":70342617273180},{"name":"action","class":"String","value":"destroy","object_id":70342617275480}]},{"id":6866,"event":"call","thread_id":70342530023440,"defined_class":"ApiKey","method_id":"authenticate","path":"app/models/api_key.rb","lineno":52,"static":true,"parameters":[{"name":"api_key","class":"String","object_id":70342539215260,"value":"YWRtaW46YzQ3MDNiZWMtZTBhNC00Njc5LThmYjktNDBlMWY3ZGI0MDUy","kind":"req"}],"receiver":{"class":"Class","object_id":70342537284160,"value":"ApiKey"}},{"id":6867,"event":"call","thread_id":70342530023440,"defined_class":"ApiKey","method_id":"decode","path":"app/models/api_key.rb","lineno":24,"static":true,"parameters":[{"name":"api_key","class":"String","object_id":70342539215260,"value":"YWRtaW46YzQ3MDNiZWMtZTBhNC00Njc5LThmYjktNDBlMWY3ZGI0MDUy","kind":"req"}],"receiver":{"class":"Class","object_id":70342537284160,"value":"ApiKey"}},{"id":6868,"event":"return","thread_id":70342530023440,"parent_id":6867,"elapsed":1.0e-05,"return_value":{"class":"Array","value":"[\"admin\", \"c4703bec-e0a4-4679-8fb9-40e1f7db4052\"]","object_id":70342539228120}},{"id":6869,"event":"call","thread_id":70342530023440,"sql_query":{"sql":"SELECT * FROM \"api_keys\" WHERE (\"login\" = 'admin')","database_type":"postgres","server_version":120003}},{"id":6870,"event":"return","thread_id":70342530023440,"parent_id":6869,"elapsed":0.001161},{"id":6871,"event":"return","thread_id":70342530023440,"parent_id":6866,"elapsed":0.004864},{"id":6872,"event":"call","thread_id":70342530023440,"defined_class":"JSON::Ext::Generator::State","method_id":"generate","path":"JSON::Ext::Generator::State#generate","static":false,"parameters":[{"name":"arg","class":"Hash","object_id":70342626915040,"value":"{\"error\"=>\"must provide authorization\"}","kind":"req"}],"receiver":{"class":"JSON::Ext::Generator::State","object_id":70342626915000,"value":"#<JSON::Ext::Generator::State:0x00007ff3d6946570>"}},{"id":6873,"event":"return","thread_id":70342530023440,"parent_id":6872,"elapsed":2.1e-05,"return_value":{"class":"String","value":"{\"error\":\"must provide authorization\"}","object_id":70342626913440}},{"id":6874,"event":"return","thread_id":70342530023440,"parent_id":6865,"elapsed":0.005674,"http_server_response":{"status":401,"mime_type":"application/json; charset=utf-8"}}]}