Class: M365ActiveStorage::Configuration
- Inherits:
-
Object
- Object
- M365ActiveStorage::Configuration
- Defined in:
- lib/active_storage/configuration.rb
Overview
SharePoint Configuration Manager
Manages and validates all configuration parameters needed to connect to Microsoft 365 SharePoint via the Microsoft Graph API.
Responsibilities
-
Load and parse configuration parameters
-
Validate that all required parameters are present
-
Provide convenient accessors for configuration values
-
Raise informative errors for missing or invalid configurations
Required Configuration Parameters
-
ms_graph_url- The Microsoft Graph API base URL (typically graph.microsoft.com) -
ms_graph_version- The Graph API version (e.g., “v1.0”, “beta”) -
auth_host- The OAuth2 authentication endpoint (typically login.microsoftonline.com) -
tenant_id- Your Azure AD tenant ID (directory ID from Azure Portal) -
app_id- Your Azure AD application ID (client ID from your app registration) -
secret- Your Azure AD client secret -
site_id- The target SharePoint site ID -
drive_id- The target SharePoint drive ID within the site
Configuration Sources
Configuration can be provided via:
-
Rails credentials (config/credentials.yml.enc)
-
Environment variables
-
Direct parameter passing
Example in config/storage.yml:
sharepoint:
ms_graph_url: <%= Rails.application.credentials.sharepoint[:ms_graph_url] %>
ms_graph_version: <%= Rails.application.credentials.sharepoint[:ms_graph_version] %>
auth_host: <%= Rails.application.credentials.sharepoint[:auth_host] %>
tenant_id: <%= Rails.application.credentials.sharepoint[:oauth_tenant] %>
app_id: <%= Rails.application.credentials.sharepoint[:oauth_app_id] %>
secret: <%= Rails.application.credentials.sharepoint[:oauth_secret] %>
site_id: <%= Rails.application.credentials.sharepoint[:sharepoint_site_id] %>
drive_id: <%= Rails.application.credentials.sharepoint[:sharepoint_drive_id] %>
Example Usage
config = M365ActiveStorage::Configuration.new(
ms_graph_url: "https://graph.microsoft.com",
ms_graph_version: "v1.0",
auth_host: "https://login.microsoftonline.com",
tenant_id: "your-tenant-id",
app_id: "your-app-id",
secret: "your-client-secret",
site_id: "your-site-id",
drive_id: "your-drive-id"
)
puts config.ms_graph_endpoint # => "https://graph.microsoft.com/v1.0"
Instance Attribute Summary collapse
-
#app_id ⇒ String
readonly
The Azure AD application ID.
-
#auth_host ⇒ String
readonly
The OAuth2 authentication host.
-
#drive_id ⇒ String
readonly
The SharePoint drive ID.
-
#ms_graph_endpoint ⇒ String
readonly
The complete Graph API endpoint (url + version).
-
#ms_graph_url ⇒ String
readonly
The Microsoft Graph API base URL.
-
#ms_graph_version ⇒ String
readonly
The Graph API version.
-
#secret ⇒ String
readonly
The Azure AD client secret.
-
#site_id ⇒ String
readonly
The SharePoint site ID.
-
#tenant_id ⇒ String
readonly
The Azure AD tenant ID.
Instance Method Summary collapse
-
#initialize(**options) ⇒ Configuration
constructor
Initialize Configuration with the provided parameters.
Constructor Details
#initialize(**options) ⇒ Configuration
Initialize Configuration with the provided parameters
All parameters are required. Missing parameters will raise a KeyError with a detailed message listing which parameters are missing.
100 101 102 103 104 105 |
# File 'lib/active_storage/configuration.rb', line 100 def initialize(**) fetch_configuration_params() validate_configuration! rescue KeyError => e raise KeyError, "Configuration error: #{e.}" end |
Instance Attribute Details
#app_id ⇒ String (readonly)
The Azure AD application ID
70 71 72 |
# File 'lib/active_storage/configuration.rb', line 70 def app_id @app_id end |
#auth_host ⇒ String (readonly)
The OAuth2 authentication host
70 71 72 |
# File 'lib/active_storage/configuration.rb', line 70 def auth_host @auth_host end |
#drive_id ⇒ String (readonly)
The SharePoint drive ID
70 71 72 |
# File 'lib/active_storage/configuration.rb', line 70 def drive_id @drive_id end |
#ms_graph_endpoint ⇒ String (readonly)
The complete Graph API endpoint (url + version)
70 71 72 |
# File 'lib/active_storage/configuration.rb', line 70 def ms_graph_endpoint @ms_graph_endpoint end |
#ms_graph_url ⇒ String (readonly)
The Microsoft Graph API base URL
70 71 72 |
# File 'lib/active_storage/configuration.rb', line 70 def ms_graph_url @ms_graph_url end |
#ms_graph_version ⇒ String (readonly)
The Graph API version
70 71 72 |
# File 'lib/active_storage/configuration.rb', line 70 def ms_graph_version @ms_graph_version end |
#secret ⇒ String (readonly)
The Azure AD client secret
70 71 72 |
# File 'lib/active_storage/configuration.rb', line 70 def secret @secret end |
#site_id ⇒ String (readonly)
The SharePoint site ID
70 71 72 |
# File 'lib/active_storage/configuration.rb', line 70 def site_id @site_id end |
#tenant_id ⇒ String (readonly)
The Azure AD tenant ID
70 71 72 |
# File 'lib/active_storage/configuration.rb', line 70 def tenant_id @tenant_id end |