Export List of Legacy Pages and their Eligibility Status
プラットフォームについて: Cloud のみ - この記事は クラウド プラットフォームのアトラシアン製品に適用されます。
要約
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.
問題の説明
Currently, there is no option to generate a list in the UI.
Pending feature requests:
CONFCLOUD-77396 - 課題情報を取得中... ステータス
動作の仕組み
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
セットアップ
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" } }
スクリプト
- 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: 7-24-25-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
# Detailed page export only node legacy-editor-export.js -f your-spaces.csv # Both detailed and space summary reports node legacy-editor-export.js -f your-spaces.csv -sr
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
# Detailed export without admin key node legacy-editor-export.js -f your-spaces.csv -dak # Both reports without admin key node legacy-editor-export.js -f your-spaces.csv -dak -sr
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.
出力
The script generates one or two CSV files depending on options:
Detailed Page Export (always generated):
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
Space Report Summary (when -sr
flag is used):
Space Key
- Space keySpace Name
- Space nameTotal Content
- Total number of content in the space (pages, blogs, databases, etc.)Cloud Editor Pages
- Pages using the modern cloud editor (v2)Legacy Editor Pages
- Pages still using the legacy editor (v1)SUPPORTED Count
SUPPORTED_WITH_MIGRATION Count
PARTIALLY_SUPPORTED Count
UNSUPPORTED Count
UNSUPPORTED_TOO_BIG Count
UNKNOWN Count
ERROR Count
- Pages that couldn't be analyzed due to API errors
Eligibility Statuses
Statuses are generated dynamically, so you might see a conflict where the script shows SUPPORTED, but the page displays a message that prevents conversion.
The tool checks the published page's eligibility status. Drafts may have different statuses and are not included.
Here’s a list of 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_TOO_BIG: NEW This page is considered a large page. Enhancements are in progress to support this status.
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.
カスタム ワークフロー
# 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
トラブルシューティング
Common Issues
Statuses are generated dynamically, so you might see a conflict where the script shows SUPPORTED, but the page displays a message that prevents conversion.
"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
エラー処理
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
サポート
This script is provided as-is and is not officially supported by Atlassian. It's intended to help with your own analysis and planning.