License Permits
Published 31 October 2023
Licensing options are covered more widely in the licensing page
If you specifically need to use a license permit for offline licensing because your Flyway instance is isolated from the internet then an offline permit can be used
- These can be obtained from your Redgate account: link to obtain a license permit.
- This can be provided to Flyway CLI using the offline permit setting
CI/CD Usage
To use in CI/CD the CLI has more configuration options than Flyway Desktop, please see Flyway Offline Permit Path Setting.
Some examples are provided below. They work by:
- Base64 encoding the permit you receive from Redgate to safeguard the secrets manager from changing any non-text data in there
- This is put into your CI system secrets manager
- The permit is extracted and put into a file
- Flyway obtains the path to this permit via the FLYWAY_OFFLINE_PERMIT_PATH environment variable
Based on GitHub documentation as of 16/10/2025
Create secret:
base64 -w 0 permit.dat > permit.base64 gh secret set FLYWAY_OFFLINE_PERMIT < permit.base64
Use secret in runner:
name: Retrieve Base64 secret
on:
push:
branches: [ octo-branch ]
jobs:
decode-secret:
runs-on: ubuntu-latest
environment:
FLYWAY_OFFLINE_PERMIT_PATH: permit.dat
steps:
- uses: actions/checkout@v5
- name: Retrieve the secret and decode it to a file
env:
FLYWAY_OFFLINE_PERMIT: ${{ secrets.FLYWAY_OFFLINE_PERMIT}}
run: |
echo "$FLYWAY_OFFLINE_PERMIT" | base64 --decode > $FLYWAY_OFFLINE_PERMIT_PATH
- name: Show permit file metadata
run: |
ls -al $FLYWAY_OFFLINE_PERMIT_PATH
- name: Run Flyway
run: |
flyway infoBased on Azure DevOps Services documentation as of 16/10/2025
Create secret:
$Bytes = [System.Text.Encoding]::Unicode.GetBytes((Get-Content -Path "permit.dat" -Raw)) $EncodedText =[Convert]::ToBase64String($Bytes) Write-Host $EncodedText
Upload the outputted Base64 string to an ADO secret
Use secret in runner:
steps:
- bash: |
echo "$FLYWAY_OFFLINE_PERMIT" | base64 --decode > $FLYWAY_OFFLINE_PERMIT_PATH
ls -al $FLYWAY_OFFLINE_PERMIT_PATH
env:
FLYWAY_OFFLINE_PERMIT: $(FLYWAY_OFFLINE_PERMIT)
FLYWAY_OFFLINE_PERMIT_PATH: permit.dat
- bash: |
flyway info
env:
FLYWAY_OFFLINE_PERMIT_PATH: permit.dat