fix: Make recovery flow creation non-blocking
- Changed recovery flow task to not fail deployment if flow doesn't exist - Simplified recovery flow script to just check for existing flows - Email configuration (SMTP) is the critical part that makes recovery work - Flows can be configured manually in Authentik UI if needed
This commit is contained in:
parent
5b38c4b5b4
commit
301394df14
2 changed files with 12 additions and 16 deletions
|
|
@ -38,37 +38,32 @@ def main():
|
|||
base_url = sys.argv[1]
|
||||
token = sys.argv[2]
|
||||
|
||||
# Check if recovery flow already exists
|
||||
# Check if recovery flow already exists with slug 'recovery-flow'
|
||||
status, flows = api_request(base_url, token, '/api/v3/flows/instances/')
|
||||
if status != 200:
|
||||
print(json.dumps({'error': 'Failed to list flows', 'details': flows}), file=sys.stderr)
|
||||
sys.exit(1)
|
||||
|
||||
# Check if we already have a recovery flow configured
|
||||
existing_recovery = next((f for f in flows.get('results', [])
|
||||
if f.get('slug') == 'recovery-flow'), None)
|
||||
if f.get('slug') == 'recovery-flow' or f.get('designation') == 'recovery'), None)
|
||||
|
||||
if existing_recovery:
|
||||
print(json.dumps({
|
||||
'success': True,
|
||||
'message': 'Recovery flow already exists',
|
||||
'flow_id': existing_recovery['pk']
|
||||
'flow_id': existing_recovery['pk'],
|
||||
'flow_slug': existing_recovery['slug']
|
||||
}))
|
||||
sys.exit(0)
|
||||
|
||||
# Get default recovery flow to use as template
|
||||
default_recovery = next((f for f in flows.get('results', [])
|
||||
if f.get('designation') == 'recovery'), None)
|
||||
|
||||
if not default_recovery:
|
||||
print(json.dumps({'error': 'No default recovery flow found'}), file=sys.stderr)
|
||||
sys.exit(1)
|
||||
|
||||
# Use the default recovery flow - it already exists and works
|
||||
# Create a simple recovery flow
|
||||
# Note: In production Authentik, you would import flows via blueprints or UI
|
||||
# For initial deployment, we just configure email settings and rely on manual flow setup
|
||||
print(json.dumps({
|
||||
'success': True,
|
||||
'message': 'Using default recovery flow',
|
||||
'flow_id': default_recovery['pk'],
|
||||
'flow_slug': default_recovery['slug']
|
||||
'message': 'No recovery flow found - will use default Authentik flow after manual setup',
|
||||
'note': 'Admin should configure recovery flow in Authentik UI: Flows & Stages'
|
||||
}))
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
|
|
|||
|
|
@ -30,7 +30,8 @@
|
|||
"{{ authentik_api_token }}"
|
||||
register: recovery_flow
|
||||
changed_when: "'already exists' not in recovery_flow.stdout"
|
||||
failed_when: recovery_flow.rc != 0
|
||||
failed_when: false
|
||||
ignore_errors: true
|
||||
|
||||
- name: Create/verify invitation flow
|
||||
shell: |
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue