Commit graph

125 commits

Author SHA1 Message Date
1e0fa7279f
chore: apply clippy lints 2022-11-15 18:09:34 +05:30
b07f076634
feat: read config from repository on every deploy and deployment update 2022-11-12 15:51:53 +05:30
2d9d511bb8
feat: read configuration from repositories
ref: #8
2022-11-12 15:51:34 +05:30
ccb0ac9d09
feat: test util: accept custom filename and content in write_file_util 2022-11-12 15:50:55 +05:30
3c3ff0f8a7
feat: report 404 when file not found in Git repo 2022-11-12 14:27:05 +05:30
3a961bc524
feat: add tracing log identifier to each HTTP route handler 2022-11-11 15:37:33 +05:30
0b2db58483
feat: replace log crate with tracing 2022-11-11 14:56:36 +05:30
58bb606879
feat: serve requests on auto-assigned default deployment hostnames
TODO: serving custom domain requests are not yet implemented
2022-11-10 17:36:01 +05:30
ed68b4570c
feat: auto assign default deployment hostnames using crate::subdomains
utils
2022-11-10 17:35:48 +05:30
30be3a293d
feat: use settings.page.base_domain to generate default deployment hostname 2022-11-10 17:34:21 +05:30
dd38dd05d1
feat: add base_path to settings to specify deploy host name.
DESCRIPTION
    Each deployment should have a default hostname before a custom
    domain can be assigned. Therefore, this domain must be in control of
    the Librepages system (Librepages/conductor, namely)

SECURITY
    base_domain must be different from the domains hosting confidential
    information (authentication systems, PII data, etc.) to make use of
    browser domain sandboxing safety. If Librepages deployment is open
    to the public, unaudited, third-party content may be hosted in this
    domain, so it is very important that this domain shouldn't be used
    for critical infrastructure dealing with confidential information.
2022-11-10 17:19:35 +05:30
344cc85935
feat: construct random subdomains from wordlists.
SUMMARY
    Using data 1) and approach 2) mentioned here[0]

[0]: #5 (comment)
2022-11-10 17:02:41 +05:30
79a8b6586c
feat: rm loading pages from settings and rely on DB. Propagate changes
across codebase
2022-11-10 16:26:19 +05:30
4d7d2fd359
feat: controllers for adding and updating sites 2022-11-10 16:25:37 +05:30
e5450801c1
feat: add DB method to check if hostname exists 2022-11-10 16:19:28 +05:30
74a33cf044
feat: test utils to add site 2022-11-10 16:18:52 +05:30
8aa736da27
fix: use ServiceError::WebsiteNotFound for site related DB operations 2022-11-10 15:23:30 +05:30
c86ca3467f
feat: website FS path construction utility 2022-11-09 14:45:37 +05:30
ec7d698252
feat: db: get_site_from_secret for API authentication 2022-11-09 14:45:25 +05:30
76692109bc
feat: add Settings.pages.base_path to store website content
DIRECTORY STRUCTURE:
    Settings.pages.base_path > page.hostname
2022-11-09 14:20:56 +05:30
71533b9860
feat: db: add, rm, list and get site 2022-11-09 14:07:45 +05:30
1b9e1215c9
feat: bootstrap dashboard homepage 2022-11-09 13:32:06 +05:30
d9fc1b8533
feat: bootstrap homepage for unauthenticated visitors 2022-11-09 13:31:15 +05:30
d994400ff1
feat: speed up DB migrations sub cmd 2022-09-21 18:01:04 +05:30
0bf5a35673
feat: login and join HTML pages 2022-09-16 17:41:39 +05:30
928700bb54
feat: setup static files embedding and serving 2022-09-16 17:39:56 +05:30
0d107609b3
feat: mv routes into main and extract serve from api services 2022-09-16 17:39:37 +05:30
1ada27924e
feat: add support email config param 2022-09-16 14:49:13 +05:30
04d7f872d5
feat: auth and account management API 2022-09-16 13:24:30 +05:30
7185bac60b
feat: auth and account management 2022-09-16 13:23:06 +05:30
90dabb206d
feat: init settings in main fn 2022-09-16 13:22:29 +05:30
e3996134e4
chore: refactor: use api::v1::services and tests::get_ctx 2022-09-12 01:39:37 +05:30
94702b81b0
feat: load actix-identity middleware 2022-09-12 01:39:11 +05:30
6451055e2b
feat: argon2_creds error handlling 2022-09-12 00:24:24 +05:30
45073bb1a4
feat: add registration flag 2022-09-12 00:23:38 +05:30
d80274712d
feat: add health endpoint 2022-09-12 00:23:19 +05:30
4e860fc253
feat: add random string gen util 2022-09-12 00:23:09 +05:30
d8f2f82ab4
fix: expose update_* db methods 2022-09-12 00:22:56 +05:30
a0e93f0287
feat: auth db ops 2022-09-10 20:08:59 +05:30
5df38a9b3f
feat: imple CLI to migrate and serve 2022-09-10 19:29:37 +05:30
8150aa9ca1
feat: init and load db 2022-09-10 19:21:49 +05:30
086c4f5911
feat: replace my_codegen with actix_web_codegen_const_routes 2022-09-10 18:31:05 +05:30
c51df7daf2
feat: serve previews 2022-09-08 00:59:47 +05:30
4d136f2407
feat: update customer specified branch 2022-09-08 00:59:39 +05:30
af76be0e40
feat: preview subdomain identifier extractor 2022-09-08 00:59:02 +05:30
313264a5e1
feat: read files off of preview branches 2022-09-08 00:58:27 +05:30
53bd8c54bb
feat: serve files from git repository 2022-09-07 10:29:35 +05:30
0fff342913
feat: read files from git repository 2022-09-07 10:28:53 +05:30
b1ce2549bf
chore: clippy lints 2022-09-07 10:28:26 +05:30
d676599bf5
feat: add server domain parameter 2022-09-07 01:58:25 +05:30
56de3990b8
fix: page update with merge analysis 2022-08-15 19:34:26 +05:30
63967d4074
feat: add deploy information endpoint and tests 2022-04-27 14:36:40 +05:30
46c88b74c7
fix: return tmp dir in context creation test util to prolong
auto-cleanup

DESCRIPTION
    > Once the variable goes out of scope, the underlying file system resource is removed.
    https://docs.rs/mktemp/latest/mktemp/

    Return mktemp::Temp instance created to prolong lifetime and
    postpone auto-cleanup via Drop until the test suite runs to
    completion
2022-04-27 14:34:35 +05:30
101234e300
chore: convert check_status into macro to satisfy borrow checker 2022-04-27 13:47:46 +05:30
a787a48d41
feat: add methods to get current state of repositories 2022-04-27 13:47:21 +05:30
e757e52582
chore: tests-compatible logging and abstract repo initialization in settings 2022-04-27 11:50:06 +05:30
58e928eeda
feat: test utils init separate tmp dirs for deployed pages and assert status codes 2022-04-27 11:49:52 +05:30
68d63bba07
chore: load app settings via app ctx and do away with global static loader 2022-04-27 10:52:24 +05:30
624646f836
feat: add test utils 2022-04-27 10:51:39 +05:30
b758042836
feat: handle Git errors 2022-04-26 20:13:23 +05:30
eb87453bd1
feat: handle errors in deploy endpoint 2022-04-26 19:56:59 +05:30
4b43c4ed3d
fix: rename AccountNotFound to WebsiteNotFound 2022-04-26 19:56:31 +05:30
aa9cffd4cb
feat: setup error handling 2022-04-26 19:39:05 +05:30
325d110e9a
feat: switch to user configured branch even when configuration is changed
DESCRIPTION

Branch switching wasn't possible in earlier versions. If user deploys
"master" branch first and then wants to switch to "pages" branch, they
would have to delete the Pages-managed copy of the repository to
re-initialize the repository.

This patch introduces changes to switch to user configured branch on
startup and at each repository update.
2022-04-09 11:04:44 +05:30
55b7bf92bb
fix: set logging env var if unset 2022-03-29 19:16:38 +05:30
1fe29fd9b2
fix: config loading order 2022-03-29 19:05:31 +05:30
c6f9cb7ac1
chore: update dep: config 2022-03-29 18:13:26 +05:30
c76b351198
chore: improve git workflow testing 2022-03-29 18:02:32 +05:30
3c40a32fba
feat: expose source code url in build details meta endpoint 2022-03-29 17:38:29 +05:30
da98218d31
chore: update copyright notice 2022-03-29 17:36:22 +05:30
8b075a66fd
fix: get rid of useless configuraiton options 2022-03-29 17:35:44 +05:30
837c3fd3e0
chore: address clippy lints 2022-03-29 16:56:06 +05:30
ef424cf070
make repository updates non-blocking 2021-10-30 15:37:24 +05:30
8cd9f0030d
configurable workers
This server will only see occasional traffic so it makes sense to spawn
only limited number of workers as opposed to spawning one worker/thread,
which is the default behavior.

I recommend at least two workers.
2021-10-30 15:30:38 +05:30
954ac6c578
routes:
- get build metadata
    - authenticate and update repository with branch configuration
2021-10-29 20:23:07 +05:30