Merge branch 'master' into 1971-show-image-thumbnails
[arvados.git] / services / api / config / routes.rb
1 Server::Application.routes.draw do
2   themes_for_rails
3
4   resources :humans
5   resources :traits
6   resources :repositories
7   resources :virtual_machines
8   resources :authorized_keys
9   resources :keep_disks
10   resources :commit_ancestors
11   resources :commits
12   resources :job_tasks
13   resources :jobs
14   resources :api_client_authorizations
15   resources :api_clients
16   resources :logs
17   resources :groups
18   resources :specimens
19   resources :collections
20   resources :links
21   resources :nodes
22   resources :pipeline_templates
23   resources :pipeline_instances
24
25   # The priority is based upon order of creation:
26   # first created -> highest priority.
27
28   # Sample of regular route:
29   #   match 'products/:id' => 'catalog#view'
30   # Keep in mind you can assign values other than :controller and :action
31
32   # Sample of named route:
33   #   match 'products/:id/purchase' => 'catalog#purchase', :as => :purchase
34   # This route can be invoked with purchase_url(:id => product.id)
35
36   # Sample resource route (maps HTTP verbs to controller actions automatically):
37   #   resources :products
38
39   # Sample resource route with options:
40   #   resources :products do
41   #     member do
42   #       get 'short'
43   #       post 'toggle'
44   #     end
45   #
46   #     collection do
47   #       get 'sold'
48   #     end
49   #   end
50
51   # Sample resource route with sub-resources:
52   #   resources :products do
53   #     resources :comments, :sales
54   #     resource :seller
55   #   end
56
57   # Sample resource route with more complex sub-resources
58   #   resources :products do
59   #     resources :comments
60   #     resources :sales do
61   #       get 'recent', :on => :collection
62   #     end
63   #   end
64
65   # Sample resource route within a namespace:
66   #   namespace :admin do
67   #     # Directs /admin/products/* to Admin::ProductsController
68   #     # (app/controllers/admin/products_controller.rb)
69   #     resources :products
70   #   end
71
72   # You can have the root of your site routed with "root"
73   # just remember to delete public/index.html.
74   # root :to => 'welcome#index'
75
76   # See how all your routes lay out with "rake routes"
77
78   # This is a legacy wild controller route that's not recommended for RESTful applications.
79   # Note: This route will make all actions in every controller accessible via GET requests.
80   # match ':controller(/:action(/:id(.:format)))'
81
82   namespace :arvados do
83     namespace :v1 do
84       match '/nodes/:uuid/ping' => 'nodes#ping', :as => :ping_node
85       match '/keep_disks/ping' => 'keep_disks#ping', :as => :ping_keep_disk
86       match '/links/from/:tail_uuid' => 'links#index', :as => :arvados_v1_links_from
87       match '/users/current' => 'users#current'
88       match '/users/system' => 'users#system'
89       match '/jobs/queue' => 'jobs#queue'
90       match '/jobs/:uuid/log_tail_follow' => 'jobs#log_tail_follow'
91       post '/jobs/:uuid/cancel' => 'jobs#cancel'
92       match '/users/:uuid/event_stream' => 'users#event_stream'
93       post '/users/:uuid/activate' => 'users#activate'
94       post '/users/setup' => 'users#setup'
95       post '/users/:uuid/unsetup' => 'users#unsetup'
96       match '/virtual_machines/get_all_logins' => 'virtual_machines#get_all_logins'
97       match '/virtual_machines/:uuid/logins' => 'virtual_machines#logins'
98       post '/api_client_authorizations/create_system_auth' => 'api_client_authorizations#create_system_auth'
99       match '/repositories/get_all_permissions' => 'repositories#get_all_permissions'
100       get '/user_agreements/signatures' => 'user_agreements#signatures'
101       post '/user_agreements/sign' => 'user_agreements#sign'
102       get '/collections/:uuid/provenance' => 'collections#provenance'
103       get '/collections/:uuid/used_by' => 'collections#used_by'
104       resources :collections
105       resources :links
106       resources :nodes
107       resources :pipeline_templates
108       resources :pipeline_instances
109       resources :specimens
110       resources :groups
111       resources :logs
112       resources :users
113       resources :api_clients
114       resources :api_client_authorizations
115       resources :jobs
116       resources :job_tasks
117       resources :keep_disks
118       resources :authorized_keys
119       resources :virtual_machines
120       resources :repositories
121       resources :traits
122       resources :humans
123       resources :user_agreements
124     end
125   end
126
127   # omniauth
128   match '/auth/:provider/callback', :to => 'user_sessions#create'
129   match '/auth/failure', :to => 'user_sessions#failure'
130
131   # Custom logout
132   match '/login', :to => 'user_sessions#login'
133   match '/logout', :to => 'user_sessions#logout'
134
135   match '/discovery/v1/apis/arvados/v1/rest', :to => 'arvados/v1/schema#index'
136
137   match '/static/login_failure', :to => 'static#login_failure', :as => :login_failure
138
139   # Send unroutable requests to an arbitrary controller
140   # (ends up at ApplicationController#render_not_found)
141   match '*a', :to => 'arvados/v1/links#render_not_found'
142
143   root :to => 'static#home'
144 end