stream-fusion-better/stream_fusion/static/admin/create_peer_key.html
LimeDrive 8468bae024 feat(admin): add metadata mappings table and complete admin UI redesign
Introduce a metadata_mappings table with DAO/model layers for admin-managed
IMDB→TMDB/title overrides, and overhaul the admin panel with a modern
Bootstrap 5 sidebar UI.

- Add metadata_mappings table with migrations (search_titles, year_override)
- Add MetadataMappingDAO with standalone session helpers for use outside FastAPI
- Add new admin pages: dashboard, mappings CRUD, maintenance, config, hash/TMDB search
- Integrate DB mapping lookups into Cinemeta and TMDB metadata providers
- Update catalog views to use DB mappings before hitting external APIs
- Rewrite all admin templates with Bootstrap 5, sidebar navigation, French labels
- Add session-based auth for admin routes with Redis session store
2026-03-29 04:46:51 +02:00

33 lines
1.6 KiB
HTML

{% extends "base.html" %}
{% block title %}Nouvelle peer key — StreamFusion Admin{% endblock %}
{% block page_title %}Nouvelle peer key{% endblock %}
{% block content %}
<div style="max-width:480px;">
<form action="{{ url_for('create_peer_key')(request) }}" method="post">
<div class="mb-3">
<label for="name" class="form-label">Nom <span class="text-danger">*</span></label>
<input type="text" class="form-control" id="name" name="name" required
placeholder="ex: instance-b-prod">
<div class="form-text">Identifiant de l'instance peer à laquelle cette clé est destinée.</div>
</div>
<div class="mb-3">
<label for="rate_limit" class="form-label">Limite de requêtes par fenêtre</label>
<input type="number" class="form-control" id="rate_limit" name="rate_limit"
value="60" min="1" max="1000">
</div>
<div class="mb-4">
<label for="rate_window" class="form-label">Fenêtre de temps (secondes)</label>
<input type="number" class="form-control" id="rate_window" name="rate_window"
value="60" min="10" max="3600">
<div class="form-text">Le peer peut faire au maximum <em>limite</em> requêtes par <em>fenêtre</em> secondes.</div>
</div>
<div class="d-flex gap-2">
<button type="submit" class="btn btn-primary px-4">
<i class="bi bi-plus-lg me-1"></i>Créer
</button>
<a href="{{ url_for('list_peer_keys')(request) }}" class="btn btn-outline-secondary px-4">Annuler</a>
</div>
</form>
</div>
{% endblock %}