Backend (Django 4.2 + DRF): - Admin auth with SimpleJWT - Volcengine API client with HMAC-SHA256 signing - IAM user management (create/sync/import/disable/enable) - Billing query with pagination - Feishu webhook notifications (async) - APScheduler for periodic spending checks - AES-256 encrypted credential storage - API key auth for external system integration Frontend (Vue 3 + Element Plus): - Login page - Dashboard with stats overview - IAM user list with per-user threshold config - Billing view with spending progress bars - Alert history with type filtering - Settings page for global config and Volcengine account management Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
31 lines
1.0 KiB
Python
31 lines
1.0 KiB
Python
from django.contrib import admin
|
|
from .models import VolcAccount, IAMUser, GlobalConfig, AlertRecord, SpendingRecord
|
|
|
|
|
|
@admin.register(VolcAccount)
|
|
class VolcAccountAdmin(admin.ModelAdmin):
|
|
list_display = ('name', 'access_key_hint', 'is_active', 'updated_at')
|
|
|
|
|
|
@admin.register(IAMUser)
|
|
class IAMUserAdmin(admin.ModelAdmin):
|
|
list_display = ('username', 'display_name', 'status', 'monitor_enabled',
|
|
'current_month_spending', 'alert_threshold', 'disable_threshold')
|
|
list_filter = ('status', 'monitor_enabled')
|
|
|
|
|
|
@admin.register(GlobalConfig)
|
|
class GlobalConfigAdmin(admin.ModelAdmin):
|
|
list_display = ('default_alert_threshold', 'default_disable_threshold', 'monitor_interval_seconds')
|
|
|
|
|
|
@admin.register(AlertRecord)
|
|
class AlertRecordAdmin(admin.ModelAdmin):
|
|
list_display = ('title', 'alert_type', 'spending_amount', 'notified', 'created_at')
|
|
list_filter = ('alert_type', 'notified')
|
|
|
|
|
|
@admin.register(SpendingRecord)
|
|
class SpendingRecordAdmin(admin.ModelAdmin):
|
|
list_display = ('iam_user', 'bill_period', 'amount', 'updated_at')
|