All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 41s
Phase 0+1 of AP integration. New 5th Quart microservice: Blueprints: - wellknown: WebFinger, NodeInfo 2.0, host-meta - actors: AP actor profiles (JSON-LD + HTML), outbox, inbox, followers - identity: username selection flow (creates ActorProfile + RSA keypair) - auth: magic link login/logout (ported from blog, self-contained) Services: - Registers SqlFederationService (real impl) for federation domain - Registers real impls for blog, calendar, market, cart - All cross-domain via shared service contracts Templates: - Actor profiles, username selection, platform home - Auth login/check-email (ported from blog) Infrastructure: - Dockerfile + entrypoint.sh (matches other apps) - CI/CD via Gitea Actions - shared/ as git submodule Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
35 lines
1003 B
HTML
35 lines
1003 B
HTML
{% extends "federation/base.html" %}
|
|
{% block title %}Login — Rose Ash{% endblock %}
|
|
{% block content %}
|
|
<div class="py-8 max-w-md mx-auto">
|
|
<h1 class="text-2xl font-bold mb-6">Sign in</h1>
|
|
|
|
{% if error %}
|
|
<div class="bg-red-50 border border-red-200 text-red-700 p-3 rounded mb-4">
|
|
{{ error }}
|
|
</div>
|
|
{% endif %}
|
|
|
|
<form method="post" action="{{ url_for('auth.start_login') }}" class="space-y-4">
|
|
<div>
|
|
<label for="email" class="block text-sm font-medium mb-1">Email address</label>
|
|
<input
|
|
type="email"
|
|
name="email"
|
|
id="email"
|
|
value="{{ email | default('') }}"
|
|
required
|
|
autofocus
|
|
class="w-full border border-stone-300 rounded px-3 py-2 focus:outline-none focus:ring-2 focus:ring-stone-500"
|
|
>
|
|
</div>
|
|
<button
|
|
type="submit"
|
|
class="w-full bg-stone-800 text-white py-2 px-4 rounded hover:bg-stone-700 transition"
|
|
>
|
|
Send magic link
|
|
</button>
|
|
</form>
|
|
</div>
|
|
{% endblock %}
|