Commit Graph

866 Commits

Author SHA1 Message Date
Jordan Bancino 8d75d8a023 Add simple HTTP CLI tool that uses the HttpClient API.
You might be asking why I would just write a simple curl replacement
when curl does the job just fine. Well, the most immediate reason is
to test the HttpClient API, but since Telodendria's goal is to not
be dependent on any third-party code if at all possible, it makes
sense to have a simple HTTP client to use not only for testing
Telodendria, but also for configuring it. When we move the
configuration to the database, we'll ship a script that uses this
tool to allow admins to easily submit API requests.

Do not be concerned that HttpClient does not support TLS yet. TLS
support is necessary for federation to work, so it is coming
eventually.
2023-03-08 03:30:36 +00:00
Jordan Bancino 7e144ae488 Clean up a few bugs in HttpClient and Uri 2023-03-08 02:53:47 +00:00
Jordan Bancino 3e42da279c Make improvements to HttpClient, add Uri 2023-03-08 01:54:33 +00:00
Jordan Bancino 313f0e2e73 Add HttpClient API 2023-03-07 23:10:06 +00:00
Jordan Bancino fc8fbc9a70 I forgot to set the date in the changelog. 2023-03-07 00:51:16 +00:00
Jordan Bancino 7e41251f07 Update README 2023-03-07 00:50:59 +00:00
Jordan Bancino cfba96edee Prepare for v0.2.0 release. 2023-03-07 00:44:53 +00:00
Jordan Bancino 04bf8ca1a1 Document Uia API. 2023-03-07 00:28:52 +00:00
Jordan Bancino 17734c90e8 This is unnecessary. 2023-03-06 23:54:55 +00:00
Jordan Bancino 154e5b82df Looks like CVS is being weird with Mdocdate strings. 2023-03-06 23:51:55 +00:00
Jordan Bancino 7750963c29 Something weird is going on here. 2023-03-06 23:49:30 +00:00
Jordan Bancino eae8fc5c79 Update Matrix documentation. 2023-03-06 22:49:21 +00:00
Jordan Bancino f2c2888c87 Document DbList() and DbListFree() 2023-03-06 22:29:46 +00:00
Jordan Bancino f1e565ef7b Update Json man page. 2023-03-06 22:21:56 +00:00
Jordan Bancino 0ac21d430a Document User API 2023-03-06 22:09:57 +00:00
Jordan Bancino e73cea64b7 Apply modified #60 2023-03-04 21:43:41 +00:00
Jordan Bancino c8c4c705a5 Convert proposals to man pages. 2023-03-04 20:26:16 +00:00
Jordan Bancino 8c2ed1c8f1 Apply #59 2023-03-04 15:34:44 +00:00
Jordan Bancino 0cbdb5f615 Multi-stage flows should theoretically work now. 2023-03-04 01:53:33 +00:00
Jordan Bancino e4ec250d8f Apply modified #57: Implement logout all. 2023-03-03 22:49:37 +00:00
Jordan Bancino 97990c5009 Get some more of my thoughts in the TODO file. 2023-03-03 18:56:36 +00:00
Jordan Bancino 5d590df83d Remove DB_MIN_CACHE because that's dumb.
You should be able to totally disable the cache if you so please. This
should ensure Telodendria uses less memory on constrained systems.
2023-03-03 14:26:10 +00:00
Jordan Bancino 1770789333 Fix leak in DbList() 2023-03-03 03:11:49 +00:00
Jordan Bancino 676d6f4c61 Basic formatting. 2023-03-02 22:32:47 +00:00
Jordan Bancino d899a836b6 Apply #54 2023-03-02 22:06:33 +00:00
Jordan Bancino f4838f8211 Remove non-standard use of d_type 2023-03-02 02:53:43 +00:00
Jordan Bancino d6f96757bc Apply #52: d_namlen is non-standard. 2023-03-01 21:39:22 +00:00
Jordan Bancino 7a951c980f Cleanup old user interactive auth sessions. 2023-03-01 19:52:44 +00:00
Jordan Bancino 8c4e6aa594 Implement DbList() 2023-03-01 19:33:25 +00:00
Jordan Bancino ce6d483135 Implement static login page. 2023-03-01 19:03:42 +00:00
Jordan Bancino 55b3728e7e Bake the platform name into the version number.
This is helpful as we're porting to different operating systems. I guess
it just makes the porting effort more satisfying. Seeing this header
makes me happy:

Server: Telodendria/0.2.0-Haiku
2023-03-01 03:19:21 +00:00
Jordan Bancino 2b77681763 Move getent check to common.sh 2023-03-01 03:11:10 +00:00
Jordan Bancino dd1b26bad8 Only use getent if the command can be found. 2023-03-01 03:09:46 +00:00
Jordan Bancino 755d08946a Add some more obscure platforms to td build script. 2023-03-01 03:08:53 +00:00
Jordan Bancino e7d1c0d951 Cross-platform code improvements. 2023-03-01 01:55:26 +00:00
Jordan Bancino 2e1220621c Use -pipe, supposedly this speeds things up.
The codebase is getting kind of big, we'll need all the help we can get.
2023-03-01 01:26:34 +00:00
Jordan Bancino 334a711b02 Fix compile error. 2023-03-01 01:23:52 +00:00
Jordan Bancino 2747660473 Add a TODO in Uia 2023-02-28 18:48:43 +00:00
Jordan Bancino 63634407d4 Update TODO.txt, add stub functions in Db. 2023-02-28 18:44:02 +00:00
Jordan Bancino 16c31b63d7 Begin work on static login page. 2023-02-28 17:52:09 +00:00
Jordan Bancino 36169181dd Build basic framework for creating static pages.
The login fallback, as well as the user-interactive authentication
fallbacks, are static HTML pages.
2023-02-28 16:51:40 +00:00
Jordan Bancino fae9eb4473 Implement password-based user interactive authentication. 2023-02-28 15:17:11 +00:00
Jordan Bancino e2806bc810 Add UserIdParse() and UserIdFree() functions.
The spec says that a username can be either just the localpart, or a
localpart and a server. This commit now ensures that the login endpoint
actually handles usernames properly by calling the proper parsing
functions.
2023-02-28 13:44:34 +00:00
Jordan Bancino 58dae3a0c9 Remove user create Admin endpoint, and the associated privilege.
If an admin wants to create a user, he or she should have the ISSUE_TOKEN
privilege. The admin can use that to create a one-time registration token,
and then just use the regular registration API with that token.
2023-02-27 18:02:35 +00:00
Jordan Bancino d89e3fd753 Update TODO 2023-02-27 17:25:39 +00:00
Jordan Bancino 6ce6cb4525 Implement flow handling in Uia API.
This commit should fix user interactive authentication for dummy flows,
but I still have to implement a few more flows, including passwords and
refresh token. I also have to fix the cleanup logic: when do we purge
UIA sessions?
2023-02-27 15:39:12 +00:00
Jordan Bancino 7703405c70 Fix bugs in Json API. 2023-02-26 15:07:46 +00:00
Jordan Bancino 31be432f7a Just discovered some bugs in Json. 2023-02-25 16:35:33 +00:00
Jordan Bancino adea499813 Add UiaFlowsFree() function, and clean up some memory issues. 2023-02-24 14:40:21 +00:00
Jordan Bancino 26b0f33f96 -not is not portable, grep -v should work good enough though. 2023-02-24 02:02:47 +00:00