Export List of Legacy Pages and their Eligibility Status
Platform Notice: Cloud - This article applies to Atlassian products on the cloud platform.
Summary
To assist in identifying pages eligible for the legacy editor, we drafted a Node.js script that exports data about legacy editor eligibility for published pages across Confluence.
Problem Description
Currently, there is no option to generate a list in the UI.
Pending feature requests:
CONFCLOUD-77396 - Getting issue details... STATUS
How it works
Enable the admin key using the Enable Admin Key API (optional)
Retrieve all pages within a space using the Get Pages in Space API
Determine the eligibility status or cloud editor property for a page using the Get Content Properties for Page API
Setup
System Prerequisites
Node.js (version 14 or higher)
- API token for authentication
- Admin access to a Confluence instance
Setup Configs
Use a 'no-scope' API token: Create a new API token and use your email and this token in the config file.
Generate Space Report: Download a Space Report from Admin → Space Reports to use as the CSV.
Configure the scripts: Create a file titled config.json with your Confluence instance details.
{ "confluenceUrl": "https://your-instance.atlassian.net", "auth": { "email": "your-email@example.com", "token": "your-api-token" } }
Scripts
- README.md: Instructions on how to use the scripts.
Admin Key Manager (admin-key-manager.js): Manages Confluence admin keys for API access.
Legacy Editor Export (legacy-editor-export.js): Exports data about legacy editor eligibility for pages.
Download: legacy-editor-export.zip
Using the Legacy Editor Export Tool
With Admin Key (Default - Recommended)
Enable admin key: First, enable an admin key to access the Confluence API
node admin-key-manager.js enable 60
Export legacy data: Run the export with your CSV file
node legacy-editor-export.js -f your-spaces.csv
Disable admin key: When finished, disable the admin key for security
node admin-key-manager.js disable
Without Admin Key (For Standard or Free Plans)
For customers whose Confluence plans don't include admin key functionality:
Export legacy data: Run the export with the disable admin key flag
node legacy-editor-export.js -f your-spaces.csv -dak
For best results without an admin key, bulk update space permissions to add a group or user to all spaces before running the script.
More information can be read here: Updating space permissions in bulk.
Without an admin key, you'll only see pages that your user token has permission to access.
Output
CSV Content
The script generates a CSV file into the exports/ folder with the following page information:
Page ID
- Unique page identifierSpace ID
- Space identifierSpace Key
- Space keyTitle
- Page titleOwner ID
- Page owner (may be blank for older pages)Author ID
- Original page author/creator (more reliable for older content)Eligibility Status
- Legacy editor eligibility statusCreated Date
- When the page was created (ISO 8601 format)Page URL
- Direct link to the page
Eligibility Statuses
The tool will check the eligibility status of the published page. Keep in mind that drafts might have different statuses and aren’t included.
Here’s a list of the possible statuses you might see in the export:
SUPPORTED: Almost no changes after conversion.
SUPPORTED_WITH_MIGRATION: This page can be converted to the new editing experience; however, you may notice slight changes.
PARTIALLY_SUPPORTED: Converting this page as-is may result in data loss.
UNSUPPORTED: Rare case. This would happen if a conversion error occurred.
UNKNOWN: The eligibility status is dynamically generated whenever a page is published. However, some pages may not have an eligibility status set, particularly if they were migrated or before the editor v2 was added to pages.
Custom Workflow
# Export all spaces (requires CSV file, uses admin key by default)
node legacy-editor-export.js -f spaces.csv
# Export without admin key (for customers without admin key access)
node legacy-editor-export.js -f spaces.csv -dak
# Export only global spaces (includes global, collaboration, hub, and other non-personal spaces)
node legacy-editor-export.js -f spaces.csv -g
# Export only personal spaces
node legacy-editor-export.js -f spaces.csv -p
# Export specific space keys
node legacy-editor-export.js -f spaces.csv -sk FSC,ZIS,SNT
# Show help
node legacy-editor-export.js -h
Troubleshooting
Common Issues
"Admin key not enabled": Run node admin-key-manager.js enable first, or use -dak flag if your plan doesn't support admin keys.
"CSV file not found": Check the file path and ensure the file exists
"Authentication failed": Verify your email and API token in config.json
- "Rate limit exceeded": The scripts include rate limiting, but you may need to wait if you've made many requests recently. Consider splitting the CSV into smaller chunks.
- "Error during export: ENOENT: no such file or directory": The folder "/exports" was not found during the export. Create a folder titled "exports" and rerun the script.
Debug Mode
Add console logging to debug issues:
// Add this to see detailed request information
console.log("Making request to:", url);
console.log("Response status:", response.statusCode);
Rate Limiting
The scripts include built-in rate limiting to avoid overwhelming the Confluence API:
1-2 second delays between page requests (depending on space size)
500ms delays between batch operations
Batch processing of 5-10 concurrent requests
Error Handling
The scripts will exit with error code 1 if critical errors occur
Non-critical errors (like individual page failures) are logged but don't stop the process
Progress information is displayed during long-running operations
Security Notes
Never commit your config.json file with real credentials
Admin keys should be disabled when not in use
Support
This script is provided as-is and is not officially supported by Atlassian. It's intended to help with your own analysis and planning.