重构: 切换存储至SQLite,启用INI配置与API Key校验
This commit is contained in:
63
create_api_key.py
Normal file
63
create_api_key.py
Normal file
@ -0,0 +1,63 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Create initial API key for GasFlux
|
||||
"""
|
||||
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
# Add src to path
|
||||
src_dir = Path(__file__).parent / "src"
|
||||
sys.path.insert(0, str(src_dir))
|
||||
|
||||
from gasflux.config_reader import config_reader
|
||||
|
||||
def main():
|
||||
print("GasFlux API Key Creator")
|
||||
print("=" * 30)
|
||||
|
||||
# Check if bootstrap key is configured
|
||||
bootstrap_key = config_reader.admin_bootstrap_key
|
||||
if not bootstrap_key:
|
||||
print("ERROR: No admin_bootstrap_key configured in gasflux.ini")
|
||||
print("Please set [security] admin_bootstrap_key in gasflux.ini first")
|
||||
return
|
||||
|
||||
print(f"Bootstrap key configured: {'Yes' if bootstrap_key else 'No'}")
|
||||
|
||||
# Get key details
|
||||
description = input("Enter API key description (default: 'Default API Key'): ").strip()
|
||||
if not description:
|
||||
description = "Default API Key"
|
||||
|
||||
scopes = input("Enter API key scopes (default: '*'): ").strip()
|
||||
if not scopes:
|
||||
scopes = "*"
|
||||
|
||||
try:
|
||||
from gasflux.app import app
|
||||
from gasflux.auth import create_api_key
|
||||
|
||||
with app.app_context():
|
||||
key_id, plain_key = create_api_key(description=description, scopes=scopes)
|
||||
|
||||
print("\n✅ API Key Created Successfully!")
|
||||
print("=" * 30)
|
||||
print(f"Key ID: {key_id}")
|
||||
print(f"Key: {plain_key}")
|
||||
print(f"Description: {description}")
|
||||
print(f"Scopes: {scopes}")
|
||||
print("\n⚠️ IMPORTANT: Save this key securely!")
|
||||
print(" This key will only be shown once.")
|
||||
print("\nTo use this key in API requests:")
|
||||
print(f" curl -H 'X-API-Key: {plain_key}' http://localhost:5000/upload")
|
||||
print("\nOr set it as an environment variable:")
|
||||
print(f" export GASFLUX_API_KEY={plain_key}")
|
||||
|
||||
except Exception as e:
|
||||
print(f"ERROR: Failed to create API key: {e}")
|
||||
import traceback
|
||||
traceback.print_exc()
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user