Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
55 commits
Select commit Hold shift + click to select a range
0e97d8a
lots of copy paste, start slow
taylor-vann Jul 21, 2026
c5fbb9e
type flyweight
taylor-vann Jul 24, 2026
c62548a
type flyweight proto
taylor-vann Jul 28, 2026
07de08a
list some actions
taylor-vann Jul 28, 2026
12ddd61
actions
taylor-vann Jul 29, 2026
a26dbe5
add errors enum for sqlite interfaces
taylor-vann Jul 29, 2026
31300ec
lots of drafts, made create delete params
taylor-vann Jul 29, 2026
04e9470
organization crud done
taylor-vann Jul 29, 2026
a3b68d1
start ip_address tests
taylor-vann Jul 29, 2026
55d9596
test ip_address ratelimits
taylor-vann Jul 29, 2026
b0e5bba
add patch for organizations
taylor-vann Jul 29, 2026
1b6817f
full cycle with deletions
taylor-vann Jul 30, 2026
ff55041
dangerously deleted tested, ip addresses organizations
taylor-vann Jul 30, 2026
d38f204
multi_factor_required
taylor-vann Jul 30, 2026
dfd15c3
delete people
taylor-vann Jul 30, 2026
97da916
dangerously delete people
taylor-vann Jul 30, 2026
fe98029
contact_kinds
taylor-vann Jul 30, 2026
118b701
contacts
taylor-vann Jul 30, 2026
7051363
totp, good place to pause
taylor-vann Jul 30, 2026
615ce52
add api keys and totp
taylor-vann Jul 30, 2026
0844ad8
add totp
taylor-vann Aug 1, 2026
9cd3408
start api keys
taylor-vann Aug 1, 2026
d9a42ad
create interface
taylor-vann Aug 1, 2026
a940882
api keys
taylor-vann Aug 1, 2026
ea212df
action kinds
taylor-vann Aug 1, 2026
ffa434f
add a paginated read by organization
taylor-vann Aug 1, 2026
16e88e1
add pagination to people
taylor-vann Aug 1, 2026
a7978ae
paginated read for organizations
taylor-vann Aug 1, 2026
1d080ca
add pagination tests to orgs people
taylor-vann Aug 1, 2026
ba3e68a
catchup, add read params to totp
taylor-vann Aug 1, 2026
f62e1ac
ip addresses, essentially what ips are _live_ according to rate limits
taylor-vann Aug 1, 2026
b1f678b
action tickets
taylor-vann Aug 2, 2026
980567d
add read to contact kinds, api keys
taylor-vann Aug 2, 2026
383491f
add read by org to all interfaces, still ened tests
taylor-vann Aug 2, 2026
e7335be
add action rate limits
taylor-vann Aug 2, 2026
dceecdc
sketch interfaces for sessions
taylor-vann Aug 7, 2026
141e01d
before my flight
taylor-vann Aug 13, 2026
9ee2e4d
sessions tests
taylor-vann Aug 17, 2026
198e2f2
add tests for sessions
taylor-vann Aug 17, 2026
baaf8cb
sessions and tests
taylor-vann Aug 17, 2026
bc1b989
fix deletes for ratelimiters, update table creators
taylor-vann Aug 17, 2026
9bd3e03
dangerously delets acutally delete
taylor-vann Aug 17, 2026
47a41b2
got and error
taylor-vann Aug 18, 2026
85ef3c8
reads need logic upgrade, cookie time
taylor-vann Aug 18, 2026
feecc6a
review totp
taylor-vann Aug 18, 2026
924c3dc
sessions sqlite review
taylor-vann Aug 18, 2026
cb0b31d
people
taylor-vann Aug 18, 2026
78693f3
organizations
taylor-vann Aug 18, 2026
60003ca
boundaries on updates, time must move forward
taylor-vann Aug 18, 2026
945692c
account_requests tests pass
taylor-vann Aug 18, 2026
a926bc8
read by org test timestampes were off
taylor-vann Aug 18, 2026
603e490
sessions pass, debate <= for windows
taylor-vann Aug 18, 2026
bf43e1b
checkpoint
taylor-vann Aug 18, 2026
f6e97d8
add git workflow
taylor-vann Aug 18, 2026
d298429
add cargo paths to workflow
taylor-vann Aug 18, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 17 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
name: Test

on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]

jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Build
run: cargo build --manifest-path authd-rs/Cargo.toml
- name: Test
run: cargo test --manifest-path authd-rs/Cargo.toml
7 changes: 7 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
target/


node_modules/


.DS_Store
3 changes: 1 addition & 2 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
BSD 3-Clause License

Copyright (c) 2026, Here by There
Copyright (c) 2026, Here by There LLC

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
Expand All @@ -16,7 +16,6 @@ modification, are permitted provided that the following conditions are met:
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
Expand Down
32 changes: 32 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# Authd

An authentication service for multiple projects, organizaitons, and web services.

Authd is a REST api for self-hosted services, DIYers, and organizations that want to own their data.

## Setup

### Auth-cmd

```sh
auth-cmd setup ./db.sqlite
auth-cmd maintenance ./db.sqlite
```

## Start a service

It's recommended to use a service manager like `systemd`.

### Auth-server

Use the following command to run an api server:

```sh
auth_server ./db.sqlite 127.0.0.1:4000
```

## Todos

- last read at for data that needs cleanup
- a way to reset a "secret" from the admin api and reset that stuff

47 changes: 47 additions & 0 deletions api.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
## API

Inital setup
- create admin with password

Web interface:
How maintainers manage the authd service
(Someting like 127.0.0.1:3050)
- Admin login
- Create API key (with expiration date)
- View organizations (view org id)
- View members of organizaiton
- Suspend ban or block members
- View Delete sessions
- Set global ratelimits (per organization)?
(Stretch)
- create / invite / delete patron

Web api (requires API key)
How organizations access the authd service.
Returns an answer via status code OR a one-line body response
- Create invite for organization (includes contact, possible email to send)
- Create person for organization with invite (dangerous action with "invite" category)
- Create person for organization with initial password (old school, can reset password on first login)
- Log person in and create session
- Rate limit ip session
- Rate limit logins
- Rate limit session
- Rate limit 404s (crawlers)
- Set ratelimits
- IP icebox
- Person icebox

Constants?
- there are lots of "kinds" but really it's just a string
- could there be a series of constants?

Dangerous actions:
- request add contact
- request reset password
- request add / delete account (signup delete)
- request create / delete TOTP

Server maintenance:
- Delete stale sessions
- Delete stale dangerous actions
- Delete stale api keys
Loading
Loading