Files
docuseal/config/routes.rb
T

219 lines
10 KiB
Ruby
Raw Normal View History

2023-05-21 17:59:36 +03:00
# frozen_string_literal: true
Rails.application.routes.draw do
mount LetterOpenerWeb::Engine, at: '/letter_opener' if Rails.env.development?
2024-06-18 16:51:42 +03:00
if !Docuseal.multitenant? && defined?(Sidekiq::Web)
authenticated :user, ->(u) { u.sidekiq? } do
mount Sidekiq::Web => '/jobs'
end
end
2023-05-21 17:59:36 +03:00
root 'dashboard#index'
2023-12-29 19:29:13 +02:00
get 'up' => 'rails/health#show'
2025-02-01 21:55:47 +02:00
get 'manifest' => 'pwa#manifest'
2023-12-29 19:29:13 +02:00
2025-11-28 16:15:57 +02:00
devise_for :users, path: '/', only: %i[sessions passwords],
controllers: { sessions: 'sessions', passwords: 'passwords' }
2023-05-21 17:59:36 +03:00
devise_scope :user do
resource :invitation, only: %i[update] do
get '' => :edit
end
end
2023-08-04 00:40:13 +03:00
namespace :api, defaults: { format: :json } do
2024-07-21 15:16:55 +03:00
resource :user, only: %i[show]
2023-05-21 17:59:36 +03:00
resources :attachments, only: %i[create]
2023-09-10 12:55:41 +03:00
resources :submitter_email_clicks, only: %i[create]
resources :submitter_form_views, only: %i[create]
2023-12-17 18:39:10 +02:00
resources :submitters, only: %i[index show update]
2023-10-01 01:57:47 +03:00
resources :submissions, only: %i[index show create destroy] do
2024-10-15 19:16:09 +03:00
resources :documents, only: %i[index], controller: 'submission_documents'
2023-10-01 01:57:47 +03:00
collection do
2024-07-18 23:59:27 +03:00
resources :init, only: %i[create], controller: 'submissions'
2023-10-01 01:57:47 +03:00
resources :emails, only: %i[create], controller: 'submissions', as: :submissions_emails
end
end
resources :templates, only: %i[update show index destroy] do
2023-12-06 11:29:55 +02:00
resources :clone, only: %i[create], controller: 'templates_clone'
2023-10-01 01:57:47 +03:00
resources :submissions, only: %i[index create]
2023-05-21 17:59:36 +03:00
end
2024-07-10 01:42:10 +03:00
resources :tools, only: %i[] do
post :merge, on: :collection
2024-08-08 00:12:50 +03:00
post :verify, on: :collection
2024-07-10 01:42:10 +03:00
end
2024-07-19 11:49:22 +03:00
scope 'events' do
resources :form_events, only: %i[index], path: 'form/:type'
2024-08-13 00:27:40 +03:00
resources :submission_events, only: %i[index], path: 'submission/:type'
2024-07-19 11:49:22 +03:00
end
2023-05-21 17:59:36 +03:00
end
2023-08-31 01:12:24 +03:00
resources :verify_pdf_signature, only: %i[create]
2023-12-02 01:50:54 +02:00
resource :mfa_setup, only: %i[show new edit create destroy], controller: 'mfa_setup'
2025-05-20 22:41:47 +03:00
resources :account_configs, only: %i[create destroy]
2026-01-26 11:11:19 +02:00
resources :account_custom_fields, only: %i[create]
resources :user_configs, only: %i[create]
2024-02-12 12:26:22 +02:00
resources :encrypted_user_configs, only: %i[destroy]
2026-02-14 11:40:59 +02:00
resources :timestamp_server, only: %i[create] unless Docuseal.multitenant?
2023-05-21 17:59:36 +03:00
resources :dashboard, only: %i[index]
resources :setup, only: %i[index create]
2023-07-01 13:43:46 +03:00
resource :newsletter, only: %i[show update]
2023-10-21 15:33:10 +03:00
resources :enquiries, only: %i[create]
2025-09-05 21:48:22 +03:00
resources :users, only: %i[new create edit update destroy] do
2025-09-06 09:52:35 +03:00
resource :send_reset_password, only: %i[update], controller: 'users_send_reset_password'
2025-09-05 21:48:22 +03:00
end
resource :user_signature, only: %i[edit update destroy]
2024-06-02 17:06:09 +03:00
resource :user_initials, only: %i[edit update destroy]
2024-04-03 00:59:25 +03:00
resources :submissions_archived, only: %i[index], path: 'submissions/archived'
resources :submissions, only: %i[index], controller: 'submissions_dashboard'
2024-11-01 21:23:55 +02:00
resources :submissions, only: %i[show destroy] do
resources :unarchive, only: %i[create], controller: 'submissions_unarchive'
2025-02-11 22:23:51 +02:00
resources :events, only: %i[index], controller: 'submission_events'
2026-04-10 12:08:22 +03:00
resources :download, only: %i[index], controller: 'submissions_download'
2024-11-01 21:23:55 +02:00
end
2024-10-08 13:25:55 +03:00
resources :submitters, only: %i[edit update]
2023-08-05 11:02:00 +03:00
resources :console_redirect, only: %i[index]
2024-03-16 22:18:43 +02:00
resources :upgrade, only: %i[index], controller: 'console_redirect'
2024-05-26 20:51:02 +03:00
resources :manage, only: %i[index], controller: 'console_redirect'
2026-04-27 12:13:53 +03:00
resource :testing_account, only: %i[create destroy]
2024-01-20 23:53:14 +02:00
resources :testing_api_settings, only: %i[index]
2024-03-23 23:33:42 +02:00
resources :submitters_autocomplete, only: %i[index]
2025-01-25 19:37:15 +02:00
resources :submitters_resubmit, only: %i[update]
2024-03-23 23:33:42 +02:00
resources :template_folders_autocomplete, only: %i[index]
resources :webhook_secret, only: %i[show update]
2024-11-01 15:35:02 +02:00
resources :webhook_preferences, only: %i[update]
2023-09-14 01:43:08 +03:00
resource :templates_upload, only: %i[create]
2023-10-28 23:07:18 +03:00
authenticated do
resource :templates_upload, only: %i[show], path: 'new'
end
2024-04-03 00:59:25 +03:00
resources :templates_archived, only: %i[index], path: 'templates/archived'
2023-09-22 02:20:38 +03:00
resources :folders, only: %i[show edit update destroy], controller: 'template_folders'
resources :template_sharings_testing, only: %i[create]
2024-04-03 00:59:25 +03:00
resources :templates, only: %i[index], controller: 'templates_dashboard'
2024-11-23 01:45:10 +02:00
resources :submissions_filters, only: %i[show], param: 'name'
2024-03-23 23:16:40 +02:00
resources :templates, only: %i[new create edit update show destroy] do
2026-01-07 19:30:18 +02:00
resources :clone, only: %i[new create], controller: 'templates_clone'
2024-06-22 13:16:22 +03:00
resource :debug, only: %i[show], controller: 'templates_debug' if Rails.env.development?
2025-11-05 11:59:37 +02:00
resources :documents, only: %i[index create], controller: 'template_documents'
2025-05-09 00:01:50 +03:00
resources :clone_and_replace, only: %i[create], controller: 'templates_clone_and_replace'
2025-11-09 12:18:56 +02:00
resources :detect_fields, only: %i[create], controller: 'templates_detect_fields' unless Docuseal.multitenant?
2023-09-15 00:42:51 +03:00
resources :restore, only: %i[create], controller: 'templates_restore'
2023-09-17 00:45:57 +03:00
resources :archived, only: %i[index], controller: 'templates_archived_submissions'
2023-06-28 00:22:34 +03:00
resources :submissions, only: %i[new create]
2023-09-22 02:20:38 +03:00
resource :folder, only: %i[edit update], controller: 'templates_folders'
resource :preview, only: %i[show], controller: 'templates_preview'
2024-07-02 20:27:25 +03:00
resource :form, only: %i[show], controller: 'templates_form_preview'
resource :code_modal, only: %i[show], controller: 'templates_code_modal'
resource :preferences, only: %i[show create destroy], controller: 'templates_preferences'
2025-05-26 13:32:32 +03:00
resource :share_link, only: %i[show create], controller: 'templates_share_link'
2026-04-13 12:07:39 +03:00
resource :share_link_qr, only: %i[show], controller: 'templates_share_link_qr'
2024-09-06 19:30:49 +03:00
resources :recipients, only: %i[create], controller: 'templates_recipients'
2025-07-27 10:27:12 +03:00
resources :prefillable_fields, only: %i[create], controller: 'templates_prefillable_fields'
2023-08-20 15:18:15 +03:00
resources :submissions_export, only: %i[index new]
2023-05-21 17:59:36 +03:00
end
2026-02-12 09:22:08 +02:00
resources :preview_document_page, only: %i[show], path: '/preview/:signed_key'
2024-04-15 19:58:24 +03:00
resource :blobs_proxy, only: %i[show], path: '/file/:signed_uuid/*filename',
controller: 'api/active_storage_blobs_proxy'
2024-02-18 12:58:36 +02:00
resource :blobs_proxy, only: %i[show], path: '/blobs_proxy/:signed_uuid/*filename',
2024-02-18 11:26:30 +02:00
controller: 'api/active_storage_blobs_proxy'
2023-05-21 17:59:36 +03:00
2024-02-18 12:58:36 +02:00
if Docuseal.multitenant?
resource :blobs_proxy_legacy, only: %i[show],
path: '/blobs/proxy/:signed_id/*filename',
controller: 'api/active_storage_blobs_proxy_legacy',
as: :rails_blob
get '/disk/:encoded_key/*filename' => 'active_storage/disk#show', as: :rails_disk_service
put '/disk/:encoded_token' => 'active_storage/disk#update', as: :update_rails_disk_service
post '/direct_uploads' => 'active_storage/direct_uploads#create', as: :rails_direct_uploads
2025-03-05 18:29:39 +02:00
ActiveSupport.run_load_hooks(:multitenant_routes, self)
2024-02-18 12:58:36 +02:00
end
2023-06-20 00:24:39 +03:00
resources :start_form, only: %i[show update], path: 'd', param: 'slug' do
2023-05-21 17:59:36 +03:00
get :completed
end
2025-06-01 15:16:00 +03:00
resource :resubmit_form, controller: 'start_form', only: :update
2025-12-08 09:32:03 +02:00
resource :submit_form_email_2fa, only: %i[create update]
2025-07-11 09:02:18 +03:00
resources :start_form_email_2fa_send, only: :create
2025-06-01 15:16:00 +03:00
2024-01-14 12:11:13 +02:00
resources :submit_form, only: %i[], path: '' do
get :success, on: :collection
end
2023-06-13 00:29:07 +03:00
resources :submit_form, only: %i[show update], path: 's', param: 'slug' do
2024-06-02 14:50:37 +03:00
resources :values, only: %i[index], controller: 'submit_form_values'
2024-08-21 09:22:59 +03:00
resources :download, only: %i[index], controller: 'submit_form_download'
2026-04-10 12:08:22 +03:00
resources :documents, only: %i[index], controller: 'submit_form_completed_download'
2024-08-21 09:22:59 +03:00
resources :decline, only: %i[create], controller: 'submit_form_decline'
2026-03-27 12:56:52 +02:00
resources :delegate, only: %i[create], controller: 'submit_form_delegate'
2024-09-12 17:31:37 +03:00
resources :invite, only: %i[create], controller: 'submit_form_invite'
2026-04-17 14:49:14 +03:00
resources :metadata, only: %i[index], controller: 'submit_form_metadata'
2026-04-10 12:08:22 +03:00
resources :debug, only: %i[index], controller: 'submissions_debug' if Rails.env.development?
2023-05-21 17:59:36 +03:00
get :completed
2026-03-27 12:56:52 +02:00
get :delegated
2023-05-21 17:59:36 +03:00
end
2024-06-02 14:50:37 +03:00
resources :submit_form_draw_signature, only: %i[show], path: 'p', param: 'slug'
2024-02-18 19:29:14 +02:00
resources :submissions_preview, only: %i[show], path: 'e', param: 'slug' do
get :completed
2026-04-10 12:08:22 +03:00
resources :download, only: %i[index], controller: 'submissions_preview_download'
2024-02-18 19:29:14 +02:00
end
2025-02-06 22:10:17 +02:00
resources :send_submission_email, only: %i[create]
2023-05-21 17:59:36 +03:00
2026-04-10 12:08:22 +03:00
resources :submitters, only: %i[] do
resources :download, only: %i[index], controller: 'submitters_download', constraints: { submitter_id: /\d+/ }
resources :download, only: %i[index], controller: 'submit_form_completed_download'
2023-09-03 14:05:31 +03:00
resources :send_email, only: %i[create], controller: 'submitters_send_email'
2023-05-21 17:59:36 +03:00
end
scope '/settings', as: :settings do
2023-06-30 20:31:17 +03:00
unless Docuseal.multitenant?
resources :storage, only: %i[index create], controller: 'storage_settings'
2025-06-21 22:52:10 +03:00
resources :search_entries_reindex, only: %i[create]
2023-09-03 14:05:31 +03:00
resources :sms, only: %i[index], controller: 'sms_settings'
2026-03-05 12:17:14 +02:00
resources :mcp, only: %i[index new create destroy], controller: 'mcp_settings'
2023-06-30 20:31:17 +03:00
end
2025-09-18 10:12:28 +03:00
if Docuseal.demo? || !Docuseal.multitenant?
resources :api, only: %i[index create], controller: 'api_settings'
resource :reveal_access_token, only: %i[show create], controller: 'reveal_access_token'
end
2024-10-21 23:26:01 +03:00
resources :email, only: %i[index create], controller: 'email_smtp_settings'
2024-04-05 19:28:57 +03:00
resources :sso, only: %i[index], controller: 'sso_settings'
2023-09-17 20:38:09 +03:00
resources :notifications, only: %i[index create], controller: 'notifications_settings'
2023-08-31 01:12:24 +03:00
resource :esign, only: %i[show create new update destroy], controller: 'esign_settings'
2023-05-21 17:59:36 +03:00
resources :users, only: %i[index]
2024-04-19 16:08:12 +03:00
resources :archived_users, only: %i[index], path: 'users/:status', controller: 'users',
defaults: { status: :archived }
2024-10-24 20:09:57 +03:00
resources :integration_users, only: %i[index], path: 'users/:status', controller: 'users',
defaults: { status: :integration }
2023-08-16 22:57:59 +03:00
resource :personalization, only: %i[show create], controller: 'personalization_settings'
2024-11-09 01:32:56 +02:00
resources :webhooks, only: %i[index show new create update destroy], controller: 'webhook_settings' do
2024-11-08 20:14:43 +02:00
post :resend
2025-07-04 21:11:08 +03:00
resources :events, only: %i[show], controller: 'webhook_events' do
post :resend, on: :member
2025-07-05 10:27:35 +03:00
post :refresh, on: :member
2025-07-04 21:11:08 +03:00
end
2024-11-08 20:14:43 +02:00
end
2024-01-29 01:13:41 +02:00
resource :account, only: %i[show update destroy]
2023-06-07 12:04:11 +03:00
resources :profile, only: %i[index] do
2023-06-07 01:36:47 +03:00
collection do
2023-06-07 12:04:11 +03:00
patch :update_contact
patch :update_password
patch :update_app_url
2023-06-07 01:36:47 +03:00
end
end
2023-05-21 17:59:36 +03:00
end
2023-08-12 12:34:02 +03:00
2026-03-05 12:17:14 +02:00
match '/mcp', to: 'mcp#call', via: %i[get post]
2024-07-31 10:41:28 +03:00
get '/js/:filename', to: 'embed_scripts#show', as: :embed_script
2023-08-12 12:34:02 +03:00
ActiveSupport.run_load_hooks(:routes, self)
2023-05-21 17:59:36 +03:00
end