admin
977665d8c0
gates / gates (push) Successful in 27s
The family gate (decisions 63/64, R-780): family members with their own logins, a permanent forwardAuth door per family app, anchored exceptions, min_controller
...
- internal/family: the family list (bcrypt, generated 4x4 passwords shown once) + 30-day sessions in family.json
(0600, atomic); a reset (generation), a removal or a logout ends sessions at the next request.
- internal/stacks/family_gate.go: family_gate / family_gate_except / min_controller in .felhom.yml; the door is written
BEFORE the first start (install and a removed app's restore), a life record in app.yaml, reconciled by the gate loop;
priority below the install hold, setup gate and sign-up block; every exception anchored ^/prefix(/|$) (finding F1).
- internal/web/family_gate.go: forwardAuth /__felhom_gate/family (app cookie felhom_famgate, host-only, names a store
session); /__family/start|login|logout on the dashboard host (session cookie felhom_family, Path=/__family);
sign-in counted per visitor (clientIP) AND per name, short windows; the household's dashboard session vouches.
RequireAuth never reads a family cookie. The "Család" card on the security page: add / new password / remove.
Red-proofs RP-F1..RP-F7 (felhom.eu audits/family-gate-2026-10-02/A/).
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
2026-10-02 07:42:47 +02:00
..
2026-10-02 07:42:47 +02:00
2026-10-02 07:42:47 +02:00
2026-09-26 10:35:22 +02:00
2026-08-12 15:27:29 +02:00
2026-09-18 11:44:30 +02:00
2026-09-18 11:44:30 +02:00
2026-09-20 18:10:53 +02:00
2026-08-08 16:29:52 +02:00
2026-07-25 07:37:02 +02:00
2026-08-07 21:20:26 +02:00
2026-07-24 09:16:28 +02:00
2026-09-24 22:07:24 +02:00
2026-09-18 10:15:56 +02:00
2026-08-10 13:41:32 +02:00
2026-08-10 13:41:32 +02:00
2026-10-01 21:01:42 +02:00
2026-09-30 10:31:55 +02:00
2026-09-21 07:45:56 +02:00
2026-09-18 10:15:56 +02:00
2026-09-18 11:44:30 +02:00
2026-09-21 07:45:56 +02:00
2026-07-29 08:30:36 +02:00
2026-09-21 07:45:56 +02:00
2026-09-21 07:45:56 +02:00
2026-09-21 07:45:56 +02:00
2026-09-21 07:45:56 +02:00
2026-07-24 20:55:44 +02:00
2026-07-23 12:54:59 +02:00
2026-08-06 08:17:48 +02:00
2026-09-18 11:44:30 +02:00
2026-07-11 16:45:57 +02:00
2026-09-18 11:44:30 +02:00
2026-09-21 07:45:56 +02:00
2026-08-05 07:17:13 +02:00
2026-07-13 08:05:07 +02:00
2026-07-12 18:42:39 +02:00
2026-10-01 21:01:42 +02:00
2026-10-01 21:01:42 +02:00
2026-10-01 21:01:42 +02:00
2026-09-29 16:19:12 +02:00
2026-09-18 14:19:31 +02:00
2026-09-24 12:18:39 +02:00
2026-07-25 07:44:08 +02:00
2026-09-17 17:36:08 +02:00
2026-09-20 18:10:53 +02:00
2026-09-20 18:10:53 +02:00
2026-09-18 10:15:56 +02:00
2026-08-21 21:29:01 +02:00
2026-08-07 21:20:26 +02:00
2026-08-14 08:10:59 +02:00
2026-09-18 11:44:30 +02:00
2026-08-14 10:30:22 +02:00
2026-07-13 14:13:05 +02:00
2026-09-17 10:45:29 +02:00
2026-10-01 21:01:42 +02:00
2026-09-17 10:45:29 +02:00
2026-07-16 18:44:13 +02:00
2026-09-30 10:31:55 +02:00
2026-07-25 07:37:02 +02:00
2026-08-04 18:17:05 +02:00
2026-10-02 07:42:47 +02:00
2026-10-02 07:42:47 +02:00
2026-07-25 07:37:02 +02:00
2026-07-26 08:12:57 +02:00
2026-07-26 08:12:57 +02:00
2026-09-15 10:12:08 +02:00
2026-07-26 08:12:57 +02:00
2026-07-02 14:38:51 +02:00
2026-09-23 13:51:21 +02:00
2026-09-28 18:38:30 +02:00
2026-09-18 11:44:30 +02:00
2026-07-20 13:55:03 +02:00
2026-07-13 21:09:20 +02:00
2026-09-18 11:44:30 +02:00
2026-09-30 22:29:33 +02:00
2026-09-26 10:35:22 +02:00
2026-09-23 20:25:28 +02:00
2026-10-02 07:42:47 +02:00
2026-09-18 11:44:30 +02:00
2026-10-02 07:42:47 +02:00
2026-09-26 10:35:22 +02:00
2026-10-02 07:42:47 +02:00
2026-07-26 08:12:57 +02:00
2026-07-13 11:31:38 +02:00
2026-07-24 09:16:28 +02:00
2026-08-02 19:56:20 +02:00
2026-09-18 11:44:30 +02:00
2026-09-25 13:32:30 +02:00
2026-09-28 09:57:11 +02:00
2026-09-29 08:51:46 +02:00
2026-09-29 08:51:46 +02:00
2026-09-18 15:07:49 +02:00
2026-07-24 10:14:25 +02:00
2026-07-24 12:43:14 +02:00
2026-07-24 09:16:28 +02:00
2026-07-11 16:45:57 +02:00
2026-07-25 07:37:02 +02:00
2026-07-12 10:09:22 +02:00
2026-07-12 10:21:34 +02:00
2026-09-20 14:31:52 +02:00
2026-07-21 16:19:58 +02:00
2026-07-25 07:37:02 +02:00
2026-07-18 20:57:39 +02:00
2026-07-11 21:12:48 +02:00
2026-07-11 21:12:48 +02:00
2026-07-11 21:12:48 +02:00
2026-07-11 21:12:48 +02:00
2026-07-12 09:37:12 +02:00
2026-07-25 07:37:02 +02:00
2026-09-18 11:44:30 +02:00
2026-07-11 21:15:48 +02:00
2026-07-22 14:12:43 +02:00
2026-07-14 15:28:24 +02:00
2026-07-30 14:10:20 +02:00
2026-07-22 13:49:57 +02:00
2026-09-17 17:36:08 +02:00
2026-09-28 18:38:30 +02:00
2026-09-18 11:44:30 +02:00
2026-07-15 19:40:01 +02:00
2026-07-11 16:45:57 +02:00
2026-09-18 10:15:56 +02:00
2026-09-30 10:31:55 +02:00
2026-07-28 13:12:37 +02:00
2026-08-05 07:17:20 +02:00
2026-08-06 16:44:05 +02:00
2026-09-18 10:15:56 +02:00
2026-09-18 10:15:56 +02:00
2026-08-07 18:04:26 +02:00
2026-08-06 16:44:05 +02:00
2026-08-12 13:49:15 +02:00
2026-09-18 14:19:31 +02:00
2026-08-23 11:21:06 +02:00
2026-09-18 14:19:31 +02:00
2026-09-18 14:19:31 +02:00
2026-09-18 14:19:31 +02:00
2026-08-30 21:03:29 +02:00
2026-09-18 11:44:30 +02:00
2026-09-18 14:19:31 +02:00
2026-09-18 10:15:56 +02:00
2026-09-29 16:19:12 +02:00
2026-09-23 20:25:28 +02:00
2026-09-18 10:15:56 +02:00
2026-09-16 21:02:51 +02:00
2026-09-16 21:02:51 +02:00
2026-09-17 10:45:29 +02:00
2026-09-17 10:45:29 +02:00
2026-09-18 11:44:30 +02:00
2026-09-18 10:15:56 +02:00
2026-09-17 21:02:47 +02:00
2026-09-23 13:51:21 +02:00
2026-09-23 17:16:57 +02:00
2026-09-23 20:25:28 +02:00
2026-09-24 08:15:27 +02:00
2026-09-25 11:19:27 +02:00
2026-09-24 16:49:43 +02:00
2026-09-29 16:19:12 +02:00
2026-09-26 10:35:22 +02:00
2026-09-26 10:35:22 +02:00
2026-09-26 10:35:22 +02:00
2026-09-28 18:38:30 +02:00
2026-09-29 08:51:46 +02:00
2026-10-01 21:01:42 +02:00
2026-09-28 18:38:30 +02:00
2026-10-01 21:01:42 +02:00
2026-08-12 18:42:02 +02:00
2026-08-06 08:06:57 +02:00
2026-09-17 18:01:09 +02:00
2026-08-12 18:42:02 +02:00
2026-08-07 12:01:30 +02:00
2026-09-18 11:44:30 +02:00
2026-08-05 12:45:48 +02:00
2026-08-02 19:56:20 +02:00
2026-07-16 19:31:19 +02:00
2026-08-21 21:04:16 +02:00
2026-08-07 18:04:26 +02:00
2026-08-06 16:44:05 +02:00
2026-09-17 10:45:29 +02:00
2026-08-07 18:04:26 +02:00
2026-07-25 07:44:08 +02:00
2026-09-17 14:50:57 +02:00
2026-07-19 09:30:30 +02:00
2026-07-20 10:46:21 +02:00
2026-10-02 07:42:47 +02:00
2026-09-17 17:36:08 +02:00
2026-09-29 09:57:58 +02:00
2026-09-29 08:51:46 +02:00
2026-10-01 21:01:42 +02:00
2026-10-01 21:01:42 +02:00
2026-07-24 12:08:43 +02:00
2026-07-24 12:08:43 +02:00
2026-07-20 13:38:07 +02:00
2026-07-18 11:54:35 +02:00
2026-09-18 11:44:30 +02:00
2026-07-20 10:46:21 +02:00
2026-09-29 09:57:58 +02:00
2026-09-13 12:07:35 +02:00
2026-09-18 14:19:31 +02:00
2026-07-13 21:40:37 +02:00
2026-09-18 15:07:49 +02:00
2026-09-18 11:44:30 +02:00
2026-07-25 07:37:02 +02:00
2026-07-25 07:37:02 +02:00
2026-07-13 13:51:19 +02:00
2026-07-17 19:10:00 +02:00
2026-07-17 19:10:00 +02:00
2026-07-24 13:48:08 +02:00
2026-09-23 20:25:28 +02:00
2026-09-18 14:19:31 +02:00
2026-07-28 16:36:47 +02:00
2026-07-28 16:36:47 +02:00
2026-09-18 10:15:56 +02:00
2026-09-23 11:12:49 +02:00
2026-09-21 12:48:55 +02:00
2026-09-25 11:19:27 +02:00