Class: Machina::PermissionSync

Inherits:
Object
  • Object
show all
Defined in:
lib/machina/permission_sync.rb

Overview

Reads the local permission manifest (machina.yml) and synchronises it with the Machina Console so the Console knows which permissions exist.

Supports flat manifests, environment-scoped manifests, and ERB interpolation.

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.call!Object



10
11
12
# File 'lib/machina/permission_sync.rb', line 10

def self.call!
  new.call!
end

Instance Method Details

#call!Object



14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/machina/permission_sync.rb', line 14

def call!
  manifest = load_manifest

  if Machina.config.product_id.blank?
    raise Machina::ConfigurationError, 'product_id is required for permission sync (set Machina.config.product_id)'
  end

  Machina.identity_client.sync_permissions(
    product_id: Machina.config.product_id,
    policies: manifest.fetch(:policies, []),
    permissions: manifest.fetch(:permissions),
  )
end