License Permits

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

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 info


Based 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



Didn't find what you were looking for?