Commit graph

243 commits

Author SHA1 Message Date
fr33domlover
df01560ea6 ActivityPub inbox test page
This patch includes some ugliness and commented out code. Sorry for that. I'll
clean it up soon.

Basically there's a TVar holding a Vector of at most 10 AP activities. You can
freely POST stuff to /inbox, and then GET /inbox and see what you posted, or an
error description saying why your activity was rejected.
2019-01-19 01:44:21 +00:00
fr33domlover
499e26db48 Periodically rotated AP actor key for signing ActivityPub requests
The actor key will be used for all actors on the server. It's held in a `TVar`
so that it can always be safely updated and safely retrieved (technically there
is a single writer so IORef and MVar could work, but they require extra care
while TVar is by design suited for this sort of thing).
2019-01-14 22:08:44 +00:00
fr33domlover
adaa920aa4 Launch service thread with a function that re-throws if they fail
In Haskell by default if a thread has an exception, the main thread isn't
notified at all. This patch changes service thread launching to re-throw their
exceptions in the main thread, so that their failure is noticed.
2019-01-14 22:03:49 +00:00
fr33domlover
5862b03019 Remove HTTP connection manager, it's not being used
I suppose there's no performance difference in using one, but it requires
`http-conduit` as a build dependency, so potentially we may be reducing build
time by removing unnecessary deps.
2019-01-14 02:30:39 +00:00
fr33domlover
33338a73cc Upgrade to GHC 8.4 and LTS 12 2018-12-05 03:41:19 +00:00
fr33domlover
c420b8d8ea Make the cookie encryption key and timeout configurable in settings file 2018-07-01 08:15:23 +00:00
fr33domlover
e29280959b Update the Vervis instance domain name everywhere 2018-06-11 12:39:06 +00:00
fr33domlover
7d237b7540 Adapt to darcs-lights and changes in darcs-rev 2018-05-24 21:45:01 +00:00
fr33domlover
9f77ea69cb Display commit diff for Git repos 2018-05-21 20:32:34 +00:00
fr33domlover
dbec638415 Generate commit diff data for git repos 2018-05-19 16:10:03 +00:00
fr33domlover
6d97636b0f Commit info display, no diff diplay yet 2018-05-17 23:33:37 +00:00
fr33domlover
8eca3fa647 Upgrade to GHC 8 and LTS 10.10 2018-05-16 00:02:54 +00:00
fr33domlover
54fded2f0c Rename NEWS.md to CHANGELOG.md 2018-05-14 15:25:16 +00:00
fr33domlover
3cc2810d4e Fix DB migrations and use the validating addEntities 2018-04-05 00:04:39 +00:00
fr33domlover
7c2faa7faa Email tokens expire within 1 day 2018-04-01 03:02:35 +00:00
fr33domlover
bfa6436bb3 Atom and RSS feeds for repo history 2018-03-31 22:04:33 +00:00
fr33domlover
bec9290783 Complete DB migration list, allowing to upgrade 2016-08-04 running instance
Until now the list of DB migration actions was incomplete, containing only
changes made since I added the migration system itself. It now contains the
2016-08-04 model, and then every change made since then.

IMPORTANT: The 2016-08-04 instance doesn't have a schema version entity at all,
so it is assigned version 0, while the actual version of its schema is 1. I'm
going to patch persistent-migration to allow it to be 1, making the migration
path smooth.
2018-03-27 14:28:56 +00:00
fr33domlover
f149da8ec6 getPersonR respond with minimal ActivityPub actor 2018-03-25 19:26:30 +00:00
fr33domlover
abfb77479f Move DarcsRev and code we're sharing with it into a separate library 2018-03-20 23:45:09 +00:00
fr33domlover
ff5bb97383 Move Yesod.Mail.Send to a new dedicated separate library 2018-03-20 16:01:33 +00:00
fr33domlover
f196bf38d6 Unverified variants of setCreds and clearCreds 2018-03-17 22:16:02 +00:00
fr33domlover
7b39381388 Releases are under AGPL 3 2018-03-17 18:21:51 +00:00
fr33domlover
139cc996d6 Write unverified login user functions 2018-03-17 17:30:46 +00:00
fr33domlover
d026cf0656 Treat email address as EmailAddress instead of Text including in the mailer 2018-03-06 02:26:27 +00:00
fr33domlover
33af9fb289 Use HTTPS for avatar URL if approot in settings is https:// 2018-03-06 00:55:52 +00:00
fr33domlover
3398b56931 Switch to yesod-auth-account and make the mail code independent of Vervis 2018-03-03 21:33:59 +00:00
fr33domlover
829fd72fef Use my new persistent-migration library, to which I moved the related modules 2018-02-26 14:23:02 +00:00
fr33domlover
3b4bd2a5e8 I made upgrades to the DB migration system in Funbot, apply them here too 2018-02-25 11:14:07 +00:00
fr33domlover
31410c7278 Update project URLs, Vervis is now officially hosted on a Vervis instance 2018-02-25 09:41:36 +00:00
fr33domlover
c2d1bb444b Add email sending capability to Vervis 2018-02-25 09:28:55 +00:00
fr33domlover
dc74456a6a Use the new migration system in place of persistent's one 2016-08-31 16:51:02 +00:00
fr33domlover
400c29289d Persistent schema backend, and PostgreSQL impl 2016-08-20 17:41:16 +00:00
fr33domlover
3329b49b2e Turn boolean ticketDone into TicketStatus enum 2016-08-11 00:44:11 +00:00
fr33domlover
941bd0ea03 Ticket content edit form lets you edit custom ticket params 2016-08-10 18:52:26 +00:00
fr33domlover
ec7dd4ee7e Experimental typeclass for ident+name model entities 2016-08-08 19:17:25 +00:00
fr33domlover
6e5ab77466 Projects must specify a ticket workflow 2016-08-08 19:05:22 +00:00
fr33domlover
01385c480b Per-workflow custom ticket fields 2016-08-08 14:01:06 +00:00
fr33domlover
687aa68a04 Per-sharer ticket workflows
A workflow is a new entity in Vervis. It defines the workflow of a
projects' ticket system. That includes the possible ticket states,
custom ticket fields, various filters and so on. All ticket system
customization is currently planned to be managed using workflows.

Currently workflows are private and per sharer, but the plan is to
support public workflows that can be shared and cloned.
2016-08-08 11:05:19 +00:00
fr33domlover
dc54a89503 Ticket tree view page 2016-08-04 07:36:24 +00:00
fr33domlover
e7abd8eb9d DAG tree view model builder, based on (V, E) and user choices 2016-08-03 23:09:42 +00:00
fr33domlover
5c153b0294 Ticket dependency add/remove and some fixes to recursive SQL 2016-07-28 16:40:10 +00:00
fr33domlover
a41f111bee Split recursive SQL query huge module into smaller modules 2016-07-20 10:08:42 +00:00
fr33domlover
87205772bb Transitive reduction of DAGs for FGL 2016-07-14 00:39:00 +00:00
fr33domlover
7a33ef16f8 PersistEntityGraph is for any graph, PersistEntityHierarchy for DAGs 2016-07-05 16:13:48 +00:00
fr33domlover
7d8596c52b Path existence checking between graph nodes 2016-07-05 12:37:31 +00:00
fr33domlover
644670b494 Not-yet-added empty test suite 2016-07-05 12:36:40 +00:00
fr33domlover
879ad873e3 DB graph cycle existence checking using recursive SQL query 2016-07-05 08:46:58 +00:00
fr33domlover
fcb68ceea7 List ticket deps and reverse deps in ticket page 2016-07-04 09:58:25 +00:00
fr33domlover
1191a3c5cd Role graph widget 2016-07-02 09:02:13 +00:00
fr33domlover
7be410f329 Upgrade LTS from 5.13 to 6.5 2016-07-02 08:51:29 +00:00
fr33domlover
063caab86d Insert links to DAG diagram 2016-06-28 22:19:48 +00:00
fr33domlover
5b4607e64d Initial code for intransitive DAG drawing 2016-06-28 19:46:54 +00:00
fr33domlover
a4eeb61a44 Define colors for use with 'diagrams' 2016-06-26 08:03:18 +00:00
fr33domlover
386d499a61 Define colors in dedicated Vervis.Palette module 2016-06-22 20:58:42 +00:00
fr33domlover
c7de6119ab Build role graph 2016-06-21 07:35:19 +00:00
fr33domlover
7886d9a515 Layering of intransitive DAGs 2016-06-20 22:50:16 +00:00
fr33domlover
5340cf23f1 Project role inheritance and graph queries with some raw SQL 2016-06-17 20:17:39 +00:00
fr33domlover
5e2e7f806a Forgot to record a file, darcs amend decided not to work 2016-06-13 13:48:31 +00:00
fr33domlover
76a627385c Recursive SQL queries, still need to test before use 2016-06-12 22:37:52 +00:00
fr33domlover
ae83a5f3ad Ticket un/assign (like un/claim but for other people) 2016-06-07 07:33:19 +00:00
fr33domlover
f8e1442e72 Initial minimal optional per-project wiki 2016-06-04 06:57:54 +00:00
fr33domlover
ef810f2854 Add simple Display class for showing-as-strict-Text 2016-06-03 09:12:33 +00:00
fr33domlover
c0e8ed0d2e Initial minimal limited per-repo RBAC system 2016-05-29 13:17:55 +00:00
fr33domlover
ec49a4c424 Libravatar support \o/ 2016-05-25 21:10:41 +00:00
fr33domlover
4c3aa8b269 Add group roles and make a group's creator its admin 2016-05-25 15:52:15 +00:00
fr33domlover
b7d443d031 Show creation date in group page 2016-05-25 07:50:10 +00:00
fr33domlover
bc66463776 Add group routes 2016-05-24 21:48:21 +00:00
fr33domlover
c6c41b485c Finish route change, it builds now
I used this chance to make some name changes, add some utils, tweak some
imports, remove more `setTitle`s and so on. I also made person, repo,
key and project creation forms verify CI-uniqueness.
2016-05-23 20:46:54 +00:00
fr33domlover
49807ed27f Start big route change, doesn't build yet
I decided to add some safety to routes:

- Use dedicated newtypes
- Use CI for the CI-unique DB fields

Since such a change requires so many changes in many source files, this
is also a chance to do other such breaking changes. I'm recording the
change gradually. It won't build until I finish, so for now don't waste
time trying to build the app.
2016-05-23 12:24:14 +00:00
fr33domlover
3a65568d8f PersistField instance for CI, i.e. case-insensitive DB fields 2016-05-22 21:43:59 +00:00
fr33domlover
1a3f976a81 Ticket filtering 2016-05-22 14:31:56 +00:00
fr33domlover
a56a7575fe Implement reply-to-existing-comment 2016-05-19 22:07:25 +00:00
fr33domlover
c942c7d398 Ticket discussion and message routes 2016-05-19 16:58:23 +00:00
fr33domlover
93aeae36a8 Implement building discussion message tree from DB 2016-05-19 12:06:27 +00:00
fr33domlover
ad9629d3f3 Dummy discussion widget 2016-05-18 10:10:07 +00:00
fr33domlover
1b1e4b978d Much richer set of Darcs rev TH splices 2016-05-18 07:00:19 +00:00
fr33domlover
e76c1f7206 Compressed inventory parser and DarcsRev TH utils 2016-05-17 20:34:22 +00:00
fr33domlover
9ba6761459 Darcs inventory parser: Add hash types and parse previous inventory 2016-05-16 14:02:43 +00:00
fr33domlover
0d7349cb5d Split git and darcs specific handlers into separate submodules 2016-05-13 10:11:17 +00:00
fr33domlover
b2f5b20184 Minimal pagination for git and darcs change log 2016-05-13 08:49:19 +00:00
fr33domlover
17c4ff3d23 Basic pagination for Vervis 2016-05-11 14:42:41 +00:00
fr33domlover
117034a8fa Initial incomplete pagination model 2016-05-10 11:05:56 +00:00
fr33domlover
5c288c7fdb Darcs change log view 2016-05-08 14:28:03 +00:00
fr33domlover
07b627eb9c Refactor Git log view into separate modules and Widgets 2016-05-06 10:29:02 +00:00
fr33domlover
96d73f3551 Basic TimeEvent support for 'hourglass', will need this for 'hit' 2016-05-05 23:05:56 +00:00
fr33domlover
ebbcc6afdc Explore friendly rendering of event time 2016-05-05 22:20:11 +00:00
fr33domlover
3ed04941e8 Refactor git source view code and implement the same for Darcs 2016-05-05 07:29:19 +00:00
fr33domlover
69229fb80e Enable Darcs repo creation using the executable
Darcs does export most of its module tree, but there's a problem: Darcs
relies on the current directory. It changes the current directory of the
process to the repo, and then proceeds using paths relative to the repo
dir. This is bad for my case here. If some other thread uses a relative
path (e.g. currently any repo path is relative by default) in parallel,
it will fail.

For now, the quick path around this problem is to use the `darcs`
program.
2016-05-04 11:44:06 +00:00
fr33domlover
1c4b674550 Dedicated module for "time ago" 2016-05-03 01:20:23 +00:00
fr33domlover
d69c5e8abc Repos specify their VCS (i.e. Git or Darcs) in the DB 2016-05-02 23:51:53 +00:00
fr33domlover
0b06b72b85 Implement an 'initRepo' that actually works 2016-05-02 23:11:32 +00:00
fr33domlover
13d814034c Breadcrumbs widget in default layout 2016-05-02 14:16:51 +00:00
fr33domlover
09b767a037 New ticket post form 2016-04-30 22:32:22 +00:00
fr33domlover
db06aeff0e New ticket form 2016-04-30 21:26:54 +00:00
fr33domlover
144918cd9f Send raw pack as git-upload-pack-result 2016-04-29 04:32:32 +00:00
fr33domlover
4381213446 Binary request body decoder 2016-04-24 18:48:07 +00:00
fr33domlover
e72284e182 Incremental binary stream decoder, generalized from hit-network 2016-04-24 18:25:30 +00:00
fr33domlover
19471d4ca2 Smart HTTP ref discovery 2016-04-22 19:46:46 +00:00
fr33domlover
8856bd2344 Git over HTTP: Add initial always-denying ref discovery handler 2016-04-21 00:32:22 +00:00
fr33domlover
6e29f246bd Enable git-fetch using the git executable 2016-04-19 14:56:02 +00:00
fr33domlover
09775e02ae Parse the git-uploac-pack SSH command properly 2016-04-19 09:42:02 +00:00
fr33domlover
a0945bfd87 Use Pandoc for document rendering, for now just Markdown 2016-04-17 17:55:23 +00:00
fr33domlover
85319ddfdc Render README below repo tree view when present 2016-04-13 16:17:34 +00:00
fr33domlover
b42d9db432 Split source file rendering into separate module 2016-04-13 06:55:39 +00:00
fr33domlover
b6b493d3ef No trailing zero components in version number 2016-04-12 15:19:02 +00:00
fr33domlover
05f537d288 Syntax highlighting suppport, but no colors in CSS yet 2016-04-12 11:21:14 +00:00
fr33domlover
9e9e7fc803 Display repo files in repo page instead of history log 2016-04-11 22:13:32 +00:00
fr33domlover
b68428d9b6 Remove some old code and adapt to hit-graph 2016-04-09 15:45:00 +00:00
fr33domlover
50198a1906 Move git protocol code away to separate package 2016-04-08 21:10:33 +00:00
fr33domlover
7b9f6e9714 Work on git pack protocol, not done yet
This is a lot of code, better save now than sorry later when something
gets deleted by mistake.

Either way, the code will move later - once tested and organized
properly - into its own package.
2016-04-01 05:00:02 +00:00
fr33domlover
4a6853e7e7 Add SSH key upload form 2016-03-08 02:52:46 +00:00
fr33domlover
df55bf23c9 Rely on stack for dep versions and upgrade to LTS 5.5 2016-03-07 01:12:55 +00:00
fr33domlover
78213db2fc Add UI for display of SSH keys 2016-03-07 00:42:06 +00:00
fr33domlover
8cf0f2502c Implement DB-based SSH authentication 2016-03-06 11:58:48 +00:00
fr33domlover
b20c672a01 Implement git history log in repo page 2016-03-03 08:15:54 +00:00
fr33domlover
100d2948cb Add Vervis.Path module with repo path utils 2016-03-01 22:43:31 +00:00
fr33domlover
4b0c444bcb Implement topsort for commits and apply to graph 2016-03-01 22:16:01 +00:00
fr33domlover
7a76703d25 Implement loading a commit graph 2016-02-29 21:42:37 +00:00
fr33domlover
40b4f4e475 Stop using classy-prelude-yesod 2016-02-29 14:04:23 +00:00
fr33domlover
ec9fc486ee Implement flexible Kahn topsort for use on git commit graphs 2016-02-29 01:59:33 +00:00
fr33domlover
ec4c7de582 Add repo pages and repo creation form 2016-02-27 05:41:36 +00:00
fr33domlover
9b686c6db0 Write initial overview content and add project creation form 2016-02-25 03:10:30 +00:00
fr33domlover
004fdb118e Put all modules under a new Vervis module 2016-02-23 08:45:03 +00:00
fr33domlover
9154ad8f8b Move some utils to new modules 2016-02-23 08:28:25 +00:00
fr33domlover
ab98930caa Add style palette module for later use 2016-02-18 13:36:25 +00:00
fr33domlover
5287a47372 Add project pages 2016-02-17 21:53:53 +00:00
fr33domlover
a6525d7549 Add people and person pages 2016-02-17 16:43:23 +00:00
fr33domlover
7857a8a964 Make initial homepage with table and simple login 2016-02-16 11:41:13 +00:00
fr33domlover
3da488b3a2 Remove example code I don't need 2016-02-14 10:17:31 +00:00
fr33domlover
f4dcf17f3f Move some files around, tweak the generated code a bit 2016-02-14 09:10:21 +00:00
fr33domlover
952f6baafd Bring Yesod scaffolding 2016-02-13 03:35:30 +00:00
fr33domlover
0bfef83458 Remove obsolete code and start using stack 2016-02-12 11:01:53 +00:00
fr33domlover
1abfc11ffa Make minimal Yesod app that returns main view as an HTML table 2016-02-12 01:53:19 +00:00
fr33domlover
552b17e219 Write initial main view query with Esqueleto 2016-02-11 20:58:40 +00:00
fr33domlover
b7aa7ec45d Make it build with persistent 2016-02-06 13:36:35 +00:00
fr33domlover
e6fbca1c2a Split code into submodules 2016-02-06 13:08:35 +00:00
fr33domlover
6440550f48 Support loading and saving to JSON, step 5 2016-02-02 12:31:36 +00:00
fr33domlover
c8e5de868c Ugly, hacky, dirty, full-of-warnings basic JSON persistence 2016-02-02 12:14:21 +00:00
fr33domlover
56dddddde6 Define Vervis monad as a newtype over RWST 2016-01-31 05:58:50 +00:00
fr33domlover
a953923a3e Add a basic data model and determine change times from it 2016-01-29 09:39:35 +00:00
fr33domlover
f51aa09159 Return formatted last change time for a repo 2016-01-29 00:59:27 +00:00
fr33domlover
ccdd98ca7e Return a list of subdirs of a given dir 2016-01-28 15:37:04 +00:00
fr33domlover
abbef763e7 Initial record with empty package that builds 2016-01-28 14:15:54 +00:00