Warda-DNSDocs

Hours of Internet

Household → Hours of Internet (administrators; a function of the subscription, open to every installation during the beta) sets, for each child and teenager, the hours when Internet answers: a week of 15 minute slots painted with the pointer (the time at the top and bottom, a line per quarter of an hour; the week starts on Sunday where the country does). Nothing applies until a parent turns the hours of a person on; the page proposes hours by age (child: weekdays 07:00–08:00 and 16:30–19:30, weekend 08:00–20:00; teenager: weekdays 07:00–22:00, weekend 08:00–23:00).

Outside the hours, every name is blocked for the devices of the person (reason "schedule" in the reports), whatever the pauses and the rules, except the names always permitted and their subdomains (school sites; by default index-education.net and ecoledirecte.com, 100 names at most), to which the other protections still apply. The names of the box and of the local network keep answering. A parent gives extra time in one click (+15, +30 or +60 minutes, from now or from the end of the current hours, 12 hours ahead at most) and can end it. Adults never have hours. The times are those of the box. The cut is not always instant: devices keep the answers they already have for their lifetime (TTL) and the connections already open.

Right now (same page): a parent cuts Internet at once for 30 minutes, an hour or until the morning (the next opening of the hours, or 07:00), whatever the hours and the extra time (reason "schedule"), or starts the homework mode for one or two hours (social networks, videos and games blocked, reason "category"). PUT /api/v1/people/{id}/mode {"mode": "cut" | "homework", "duration": "30" | "60" | "120" | "morning"}, DELETE /api/v1/people/{id}/mode.

Bypass: a device of a child or teenager used during a cut (it asked Warda at least 5 minutes after the cut began) then silent for 15 minutes gives a notice: when it still answers on the network (ARP, IPv4) but no longer asks Warda, "a VPN or another DNS?"; otherwise "switched off, or on another network?". Used means at least 3 queries to sites (not the services the systems call on their own) in one step of 5 minutes; a cut that began more than a day ago (hours closed all week) is not watched. Warda cannot be sure: the notice says so. The names of VPN, proxies and encrypted DNS asked by a minor's device are blocked (answered "does not exist", so that iCloud Private Relay and the browsers fall back to Warda) and told too, once a day per device and name.

Time a day (same page): for games, videos and social networks, a time allowed each day (15 minutes to 8 hours), whatever the hours; then the category is blocked until midnight (reason "category"). A step of 5 minutes counts from the second name of the category asked in it; the time used is kept on the box (category_usage, 7 days). PUT /api/v1/people/{id}/limits {"category": "games", "minutes": 60} (0: no limit).

School holidays (same page): during a period, the weekdays take the hours of Saturday, for every child. GET/POST /api/v1/vacations {"first_day": "2026-10-17", "last_day": "2026-11-02"}, DELETE /api/v1/vacations/{id}. The official calendar of a country and a region can be imported from OpenHolidays (open data): the coming year, checked again when the last import is a week old (the holidays of the region and of its school groups only); the service is asked only when an administrator opens that part or imports, and only the country, the region and the language leave the box. Imported holidays removed by hand are not imported again (GET /api/v1/holidays/countries?lang=FR, GET /api/v1/holidays/regions?country=FR&lang=FR, POST /api/v1/holidays/import {"country": "FR", "region": "FR-HF", "lang": "FR"}, DELETE /api/v1/holidays/import stops the weekly import).

Requests: a child opens http://warda/ask on their device (served over plain HTTP too: their device has not accepted the certificate of the box). No sign-in: Warda knows the device by its address, only on the allowed networks, and only a device given to a child or a teenager can ask: 15, 30 or 60 minutes more of Internet or of a category used up, with a short message; one request at a time, six a day at most. The parents accept or refuse from the dashboard or the Alerts page; an accepted request gives the extra time (Internet: also over a cut made by a parent; category: minutes more today). GET/POST /api/v1/ask (the device), GET /api/v1/requests, POST /api/v1/requests/{id}/accept|refuse.

A home filter cannot see a device that leaves the network (mobile data, a friend's hotspot): lock the phone with the tools of its system (Family Link, Screen Time).

API: GET /api/v1/schedules, PUT /api/v1/people/{id}/schedule {"enabled": true, "grid": "<672 characters 0 or 1 from Monday 00:00>"}, POST /api/v1/people/{id}/bonus {"minutes": 30}, DELETE /api/v1/people/{id}/bonus, PUT /api/v1/schedule-allow {"domains": [...]}. A function of the subscription answers 402 on the free plan once subscriptions open.