Commit graph

282 commits

Author SHA1 Message Date
Felipe M.
ca949c5dab
fix: resolve linting errors and e2e test failures
- Fix ST1005 linting errors by lowercasing error message strings
- Fix QF1008 linting errors by removing embedded field selectors in containers.go
- Update Alpine version from 3.22 to 3.21 in Makefile to fix Docker image resolution
- Update corresponding test expectations for error message changes
2025-07-30 17:48:13 +02:00
Federico Scodelaro
9f6a4c39d4
feat: support proxy forward headers authentication (#1105)
* feat: Add SSO forward header

* fix: Use domain layer

* test: Some test

* chore: Print new values when debugging

* chore: Rename enabled envvar

* fix: Wrongly parsing remote ip

* fix: Always validate token. NPE on validateSession

* fix: Dont overwrite token when sso

* fix: Best effort to get ip. Parse as ip:port and then as ip

* fix: Forgot to update handler version

* fix: Forgot to commit changes

* test: GetAccountByUsername

* chore: Rename some variables

* chore: return error from ssoAccount

* refactor: Extract sso proxy auth to own middleware

* fix: Dont panic if not sso account on legacy validate session

* ci: gofmt

---------

Co-authored-by: Felipe Martin <812088+fmartingr@users.noreply.github.com>
2025-07-12 12:11:42 +02:00
Marc Brugger
3091d844c0
fix: parse pocket new CSV format (#1112)
* fix pocket parsing error

Signed-off-by: bakito <github@bakito.ch>

* add tests forpocket csv

Signed-off-by: bakito <github@bakito.ch>

* Use file name from test case

* fix lint ant test issues

Signed-off-by: bakito <github@bakito.ch>

---------

Signed-off-by: bakito <github@bakito.ch>
Co-authored-by: Felipe Martin <812088+fmartingr@users.noreply.github.com>
2025-06-27 13:35:15 +02:00
Felipe Martin
1f309469c5
feat: reverts message in json output and allows configuration (#1082)
* feat: allow future deprecated message response with config

* tests: middleware

* fix: middleware order

* fix: frontend using message in body

* fix: cors

* feat: modify response type with header

* fix(webapp): added new headers

* dist: updated webapp files

* test(e2e): fixes

* fix: middleware returning body for 204 requests

* fix: frontend apis

* tests: cors middleware
2025-03-16 19:09:28 +01:00
Felipe Martin
d41981861c
feat: add apis to handle bookmark tags (#1081)
* feat: add tag search api

* feat: add apis to add/remove bookmark tags

* chore: removed debug logger

* docs: updated swagger

* test: added tests

* test: invalid ids

* feat: webapp v2

* chore: updated swagger

* fix: route params missing

* feat: added cors middleware

* feat: built api implementation

* feat: implemented login in webapp

* feat; dark mode in web app

* feat: labels + i18n

* refactor: remove custom message output in json apis

* docs: updated swagger

* chore: make lint

* chore: make styles

* fix: include new webapp dist files (for now)
2025-03-15 21:28:26 +01:00
Felipe Martin
21165aa2e7
feat: allow tag filtering and count retrieval via api v1 (#1079)
* fix: frontend url to retrieve bookmark count

* chore: unneeded type in generic

* feat: allow tag filtering and count retrieval

* fix: make styles

* fix: make swagger

* fix: make swag

* tests: refactored gettags tests

* fix: initialise tags empty slice
2025-03-12 23:10:50 +01:00
Felipe Martin
cdc13edb77
feat(apiv1): refactor tags api (#1075)
* refactor: tags api into v1 api

* feat: tags api huge refactor

* fix: pg & sqlite tests

* tests: added more tests

* fix: bug on mysql bookmark and tag creation

* test: re-enabled test

* tests: slices test

* tests: model bookmarks

* test: use filepath.Join for path construction in bookmark tests
2025-03-11 17:37:08 +01:00
Felipe Martin
f6279ecef4
fix: pwa display on phones with pills (#1070)
* fix: menu buttons on mobile with pill

* fix: use all viewport for archive content

* chore: remove refresh button
2025-03-01 09:34:46 +01:00
Felipe Martin
514df1e8ab
fix: auth validation on existing sessions, rely on token only (#1069)
* chore: use http.NoBody

* fix: remove cookie token on logout

* fix: remove token cookie on middleware and redirect

* fix: frontend sets cookie token if authenticated

* refactor: remove session-id, rely on token only

* docs: make swagger

* fix: redirect

* fix: archive route handler

* fix: properly unset cookie
2025-02-28 20:30:07 +01:00
Felipe Martin
876d27f337
refactor: remove gin and use stdlib http server (#1064)
* refactor: base http server stdlib

* refactor: swagger and frontend routes

* fix: use global middlewares

* refactor: removed gin from testutils

* fix: object references in legacy webserver

* refactor: legacy, swagger and system handlers

* fix: added verbs to handlers

* fix: server handlers ordering

* refactor: bookmarks handlers

* refactor: system api routes

* tests: bookmark handlers

* refactor: migrated api auth routes

* chore: remove unused middlewares

* docs: add swagger docs to refactored system api

* chore: remove old auth routes

* refactor: account apis

* chore: removed old handlers

* fix: api v1 handlers missing middlewares

* refactor: migrated tag list route

* refactor: bookmark routes

* refactor: remove gin

* chore: make styles

* test: fixed tests

* test: generate binary file without text

* fix: global middleware missing from system api handler

* fix: incorrect api handler

* chore: avoid logging screenshot contents

* tests: bookmarks domain

* tests: shortcuts

* test: missing tests

* tests: server tests

* test: remove test using syscall to avoid windows errors

* chore: added middlewares
2025-02-26 20:50:48 +01:00
Felipe Martin
73a5239753
refactor(apiv1): accounts api (#825)
* list account and create account

* deleteaccount (wip)

* remove old accounts code

* fix from merge

* remove serve method from makefile

* ListAccounts, password hash on domain

* make lint

* more permissive assertion

* rename test

* update account

* Authorization

* updated api calls

* apis, pointers, auth

* swagger

* stylecheck

* domain validation

* tests

* swagger

* error handling

* fix system account changes

* Cleanup database interface

* test cleanup

* fixed nil references

* feat: Add logout endpoint to auth routes

* feat: Add logoutHandler for stateless JWT token logout

* fixed some bug catched in tests

* auth/account patch

* prettier

* remove test logs

* fixed incorrect number of parameters

* fixed swagger docs

* enable swagger in dev environment

* errors.Wrap -> fmt.Errorf

* test: Add comprehensive test cases for accounts API handlers

* fix: Resolve test failures in accounts_test.go

* test: Add tests for duplicate username handling in account creation and update

* feat: Add username uniqueness checks for account creation and update

refactor: Improve username existence checks in SQLite account methods

* linted

* test: Add comprehensive tests for auth domain token and credential validation

* test: Add comprehensive test cases for auth domain token creation and validation

* test: Add comprehensive error handling test cases for accounts domain

* refactor: Remove `SaveAccountSettings` method from database implementations

* test: Add test cases for password update functionality

* test(e2e): auth login

* lint

* send regular context to domain

* fixed e2e auth tests

* test: Add auth_test.go for end-to-end authentication testing

* feat: Add comprehensive authentication tests using Playwright and testcontainers

* fix: Handle multiple return values in Playwright test methods

* error message

* e2e playwrigth tests

* ci: setup playwrigth

* refactor: Update Playwright tests to use locator-based API

* refactor: Remove unnecessary alias for playwright-go expect import

* refactor: Replace deprecated expect package with WaitFor() method in Playwright tests

* fix: Resolve linting issues in e2e Playwright tests

* remove npm ci from e2e ci

* make playwright available in path

* typo

* re enabled ci

* base e2e accounts test

* more account e2e

* feat: Add HTML test reporter with screenshots and detailed results

* feat: Embed screenshots as base64 in HTML test report

* refactor: Remove GitHub step summary functionality from test helper

* refactor: Make reporter global to share test results across test helpers

* refactor: Add HandleSuccess method to TestHelper for consistent test result reporting

* feat: Add descriptive messages to all test assertions in TestHelper

* test: Add descriptive messages to assertions in accounts_test.go

* test: Add descriptive error messages to assertions in accounts_test.go

* feat: Add descriptive messages to assertions in accounts_test.go

* refactor: Update assertion functions to receive *testing.T as first argument

* refactor: Update accounts_test.go assertions to pass *testing.T argument

* refactor: Update accounts_test.go assertions to use *testing.T argument

* refactor: Update `accounts_test.go` to use `*testing.T` argument in `Require()` calls

* refactor: Update `th.Require()` calls with `t *testing.T` argument in accounts_test.go

* assert helper

* refactor: Refactor `False` test helper to use `Assert` function consistently

* refactor: Refactor `Equal` test helper to use `Assert` function

* refactor: Simplify Error test helper to use Assert function

* refactor: Refactor `NoError` to use `Assert` function for consistent error handling

* typo

* refactor: Differentiate between test cases and assertions in reporter

* refactor: Simplify AddResult method signature and use error message for assertion

* refactor: Simplify test report with focused failure details and screenshots

* refactor: Ensure assertions are always called in PlaywrightRequire helper methods

* refactor: Update test error messages to be action-oriented

* refactor: Update error messages to be more action-oriented in accounts_test.go

* refactor: Update error messages to be action-oriented in accounts_test.go

* refactor: Improve error messages in auth_test.go for better test readability

* refactor: Improve screenshot handling and test result reporting in Playwright test helper

* fix: Improve test reporting with detailed error messages and logging

* refactor: Remove unused runningInCI field from TestHelper struct

* fix: Improve message formatting in Assert method for better reporting

* assertions

* test: Add `Require()` calls to 007 test for improved error handling

* refactor: Update test reporter to include error details and improve HTML rendering

* fix: Properly escape and render base64 screenshot in HTML report

* fix: Correct base64 screenshot rendering in test reporter

* fixed tests + html report

* feat: Add artifact upload for e2e test report

* make lint

* chore: use correct version in user agent

* ci: run e2e after other checks

* chore: remove pre-commit
2025-02-22 20:38:36 +01:00
Federico Scodelaro
07819b59b9
feat: add PWA support share functionality (#1060)
* feat: Add manifest file

* fix: Embed webmanifest file

* fix: use standalone mode, not fullscreen

* feat: Open add dialog by default if share query params are present

* fix: Use relative url in manifest to allow subfolder

* fix: Remove missing icon

* fix: Repĺace current history entry if sharing

* chore: Make query params consistent

* feat: Add more pwa icons

* fix: js prettier

---------

Co-authored-by: Felipe Martin <812088+fmartingr@users.noreply.github.com>
Co-authored-by: Felipe M. <me@fmartingr.com>
2025-02-22 20:03:12 +01:00
Felipe Martin
a9a45cc2ce
test: test all supported engines on their oldest supported releases (#1050)
* test: test all supported engines on their oldest supported releases

* update pre-hook file

* update mysql container options
2025-01-05 09:07:24 +01:00
Pr0m1x
b9db270816
fix: incorrectly set cookie's expires value in login.js (#1049) 2025-01-03 09:16:52 +01:00
Felipe Martin
c58c35509b
feat: improve SQLite performance (#1024)
* refactor: Improve SQLite performance with connection pooling and retry logic

* feat: Add withTx and withTxRetry methods to SQLiteDatabase for handling database locks

* refactor: add Init command to all databases

* refactor: Improve transaction handling with retry and error management

* refactor: Remove panic/recover pattern in transaction handling

* refactor: Replace `errors.WithStack` with `fmt.Errorf` in transaction methods

* docs: Add docstrings to `withTx` and `withTxRetry` methods in SQLite database implementation

* feat: use new withTxRetry in SaveBookmarks

* feat: sqlite inmmediate transactions by default

* refactor: Split SQLiteDatabase into separate writer and reader dbbase instances

* refactor: Update Init method to configure both reader and writer database connections

* feat: use writer/reader sqlite databases

* refactor: Replace all read calls to use the `reader` database instance

* refactor: Replace errors.WithStack with fmt.Errorf and add nil checks

refactor: Replace errors.WithStack with fmt.Errorf and add proper error handling

fix: Handle potential database connection errors with improved error wrapping

refactor: Replace errors.WithStack with fmt.Errorf and improve error handling

refactor: Replace error handling with fmt.Errorf and proper nil checks

refactor: Replace errors.WithStack with fmt.Errorf and add nil error checks

refactor: Replace errors.WithStack with fmt.Errorf and add nil checks in sqlite.go

refactor: Replace errors.WithStack with fmt.Errorf and add nil checks

refactor: Replace errors.WithStack with fmt.Errorf and improve error handling

refactor: Replace remaining errors.WithStack with fmt.Errorf in sqlite.go

* refactor: Use withTxRetry for SetDatabaseSchemaVersion method

* fix: Simplify error handling in GetBookmark and GetAccount methods

* refactor: Remove duplicated non-nil error checks in sqlite.go

fix: duplicated non-nil checks

* tests: use testutil instead of a manual in memory sqlite db

* fix: openbsd sqlite connection
2025-01-02 09:46:39 +01:00
Felipe Martin
45bd4d693f
feat: fixes to webroot feature and improvements to development using it (#1046)
* feat: Add nginx service to test shiori webroot configuration

chore: Update nginx configuration to resolve 502 gateway error

fix: Update SHIORI_WEBROOT to SHIORI_HTTP_ROOT_PATH in docker-compose

feat: Add debug log level flag to shiori service

refactor: Update docker-compose with simplified command and log configuration

fix: Change nginx port mapping from 80 to 8081

feat: Add volume for Go module cache in docker-compose

style: Add type attribute to script tags in index.html

feat: Update import statements to use RootPath variable in index.html

* docs: Update contribution guide with server and docker instructions

* docs: Add Docker and nginx documentation for local development

* test: IsValid()
2025-01-01 16:22:30 +01:00
Felipe Martin
d75de89701
fix: use mysql json default as expression (#1048) 2025-01-01 16:12:07 +01:00
Felipe Martin
e1e58289a2
fix: login redirect not working properly after component refactor (#1044)
* feat: Add secure destination URL handling for login redirect

* fix: rootpath on redirect to login

* fixed tests
2024-12-31 17:35:50 +01:00
Ed Summers
f23c982ee3
fix: webroot not working in archive view (#1043)
Without this the archive page fails to render.
2024-12-31 09:27:31 +01:00
Mel
c2821ff5fd
feat: allow import of newer pocket data export files in csv format (#1023)
* feat: allow import of newer pocket data export files in csv format

Signed-off-by: Mel <einebeere@gmail.com>

* fix: linter error

Signed-off-by: Mel <einebeere@gmail.com>

---------

Signed-off-by: Mel <einebeere@gmail.com>
Co-authored-by: Felipe Martin <812088+fmartingr@users.noreply.github.com>
2024-12-11 22:56:39 +01:00
Felipe Martin
87bc7a87a5
feat: allow disabling swagger ui and disable it by default (#1026)
* feat: allow disabling swagger ui and disable by default

* chore: Add codecov configuration to disable GitHub PR annotations
2024-12-11 19:31:16 +01:00
Felipe Martin
4aa0f51f10
fix: postgresql migration not working with other languages (#1013)
* fix: word check on migration error

* refactor: Improve PostgreSQL migration error handling using error codes

* refactor: Improve PostgreSQL migration error handling and transaction management

* refactor: Remove unused compareWordsInString function and its tests

* style: Clean up migrations.go imports and comments

* style: Fix gofmt formatting in migrations.go

* chore: remove migrations_test file

* ci: address golangci-lint warning

* test: stop tests if creating database fails

* fix: ensure migration transaction is commited or rolled back
2024-12-11 13:10:56 +01:00
Felipe Martin
6ccd64f1e5
fix: login component behavior when logging out and refreshing the page (#1022)
* fix: Validate session on login component mount to prevent unnecessary login form

* fix: Replace non-existent `api/v1/auth/check` with `api/v1/auth/me`

* feat: Prevent login form flickering by conditionally rendering only when needed

* feat: Show login component after user logout

* fix: make styles
2024-12-09 14:34:45 +01:00
Felipe Martin
fb51755e32
refactor: move login.html into a login component (#1017)
* feat: Add login component JavaScript file

* feat: Create login component and refactor login view

* refactor: Convert login to single-page application with dynamic component rendering

* feat: Enhance session validation and login form display logic

* fix: Resolve Vue app mounting and method duplication issues

* fix: Prevent null reference error when focusing username input

* fix: Initialize `isLoggedIn` to true to show login form during async check

* refactor: Improve session validation and login flow logic

* fix: Adjust login component visibility and initial login state

* feat: Add login form template to login component

* feat: Update login template to match original login.html design

* fix: Resolve login view rendering and state management issues

* refactor: Remove login route from frontend routes

* refactor: Remove login-footer from login component template

* fix: Modify logout to show login form without redirecting

* refactor: Remove /login route test for SPA architecture

* refactor: delete login.html file

* style: Remove extra blank line in frontend_test.go

* chore: run make style changes
2024-12-09 10:51:45 +01:00
Felipe Martin
617f5ddcd7
fix: documentation update breaking urls in test and readme (#1020)
* test: fixed test pointing to removed url file

* chore: updated readme screenshots
2024-12-08 16:05:53 +01:00
Felipe Martin
4a58ef0ff2
tests: added tests to the account domain (#993)
* tests: added tests to account domain

* refactor: ensure expiration comes from same value

* refactor: jwtclaims to model package

* refactor: add testutil.GetValidAccount
2024-11-01 10:07:11 +01:00
Monirzadeh
0128107220
fix: force a change in thumbnail cache using the modified_at field (#858)
* force to not use cache in ui for thumbnail fix #857

* use modifiedAt instead of current time

* now can define custom Header for SendFile

* remvoe use of cacheBuster

* send 304 to the user if file not change

* back to queryparameter

---------

Co-authored-by: Felipe Martin <812088+fmartingr@users.noreply.github.com>
2024-09-22 18:55:20 +02:00
Monirzadeh
9492075d32
fix: --storage-directory flag not being honored in the CLI (#981)
Co-authored-by: Felipe Martin <812088+fmartingr@users.noreply.github.com>
2024-09-22 18:18:32 +02:00
Monirzadeh
027c56d02e
fix: bookmarks full width while in list mode (#979) 2024-09-22 18:03:40 +02:00
Mario Rugiero
2bcb890a64
fix: temporary files not being correctly deleted (#969)
* fix: use os.Remove for tmpFile

* fix: delete double file remove

---------

Co-authored-by: Felipe Martin <812088+fmartingr@users.noreply.github.com>
2024-08-28 11:51:19 +02:00
Felipe Martin
a4304bc19b
fix: wrong eventBus.js path and non-existant method call (#971)
* fix: eventBus.js path reference

* fix: non-existant method call
2024-08-28 07:43:57 +02:00
Monirzadeh
9a113af6cb
fix: better style for quotes in readable mode (#951)
* better style for quotes

* add box for qoutes

* simpler style

---------

Co-authored-by: Felipe Martin <812088+fmartingr@users.noreply.github.com>
2024-08-27 18:54:06 +02:00
Monirzadeh
d7a91f7c48
chore: change public and archive wording to make usage more clear (#958) 2024-08-27 18:37:44 +02:00
Lifepillar
e34cd36e3f
fix: add freebsd flag to nonCGO build (#947) (#948)
Fix broken build on FreeBSD after commit 02247b215b.
2024-07-01 09:34:52 +02:00
Monirzadeh
4a5564d60b
feat: store created and modified time separately on database for bookmarks (#896)
* sqlite migrate script

* create time just when bookmark added and modified update if change happen

* show added and modified time in footer instead of header

* add bun.lockb that missing

* add migrate for postgres

* add pg support of created time

* change modifed to modifed_at and create to created_at in sqlite

* change modifed to modifed_at and create to created_at in postgre

* add created_at to mariadb

* fix migration file names

* better variable name and more clear code for add modified time if created and modified is not in same day

* add unittest

* add unittest to sure filters work as expected

* index for created_at and modified_at

* build new styles.css

* update swagger documents

* make styles

* change Created and Modified to CreatedAt and ModifiedAt

* fix missing Modified

* fix typo

* missing Modified

* fix typo

* make swagger

* run tests parallel

Co-authored-by: Felipe Martin <812088+fmartingr@users.noreply.github.com>

* remove t.Parallel()

* remove dayjs dependency and combine two function

* better unittest name

* fix typo

* diffrnt footer style for login and content page

* use class instead of id

* back parallel

* change duplicate url

* remvoe run Parallel

* make styles

---------

Co-authored-by: Felipe Martin <812088+fmartingr@users.noreply.github.com>
2024-06-26 20:17:51 +02:00
Monirzadeh
a3d4a687aa
feat: use bookmark thumbnail as ebook cover (#943)
* use thumbnail as ebook cover

* add TODO for improve that later

Co-authored-by: Felipe Martin <812088+fmartingr@users.noreply.github.com>

---------

Co-authored-by: Felipe Martin <812088+fmartingr@users.noreply.github.com>
2024-06-26 19:15:13 +02:00
Felipe Martin
06efb08d01
fix: always show bookmark menu on tablets (#944)
* fix: always show bookmark menu on tablets

* make styles
2024-06-26 18:26:40 +02:00
Monirzadeh
bc8c06a1c4
fix: remove ui gap on empty bookmark results (#945) 2024-06-26 17:56:22 +02:00
Felipe Martin
72aecd2b60
feat: new system info panel in webui settings (#926)
* frontend

* fixed Database.DBx return value

* api endpoint

* updated swagger

* fix openbsd variable dereference

* tests

* only load information if user is owner

* memory improvement for other routes
2024-06-08 17:48:55 +02:00
Monirzadeh
2a231ecc37
feat: allow selecting light/dark/follow themes in the webui (#924)
* login page follow browser darkmode settings

* theme change based on selection in settings between follw system , light, dark

* content page follow settings and fix syntax error

* drop down menu color follow current theme

* version number follow theme in login page

* use footer instead of id for version

* replace space with tab

* move theme settings to the top of the list and fix typo

* remove duplicate code and use a function instead

* fix logic of change theme if you select follow system to not need reload anymore

* fix code style with make styles

* fix bug that eventlistener not remove when activate light or dark theme

* less js and add theme with patch by @fmartingr

* remove NightMode config and now everythings control with Theme

* error instead of log if invalid theme selected

Co-authored-by: Felipe Martin <812088+fmartingr@users.noreply.github.com>

* remove unneeded part and update swagger documents

---------

Co-authored-by: Felipe Martin <812088+fmartingr@users.noreply.github.com>
2024-06-06 10:44:43 +02:00
Monirzadeh
47a0143d1a
fix: swagger document response type (#932) 2024-06-06 07:46:41 +02:00
Felipe Martin
a1d7579b85
fix: incorrect original link in archive page (#931) 2024-06-05 21:56:34 +02:00
Monirzadeh
6c94d56bf0
feat: Home button clear search query (#916)
* click on home will clear searchbox

* clearHome when mounted

* clearHomePage just when you are in homepage

* check clearHomePage signal out of clearHomePage method

* fix style
2024-05-26 15:33:17 +02:00
Felipe Martin
4de4799ef8
fix: ensure tmp folder is present on docker container (#910)
* chore: add logger to bookmark update cache

* ensure there's a tmp folder in the container
2024-05-15 17:02:59 +02:00
Felipe Martin
a6e55705da
fix: not checking for nil-pointer errors on migrations (#906) 2024-05-12 19:07:16 +02:00
Monirzadeh
eaa6f0ea2a
fix(sqlite): id column should be unique (#894)
Co-authored-by: Felipe Martin <812088+fmartingr@users.noreply.github.com>
2024-05-12 17:02:19 +02:00
Paco Esteban
02247b215b
refactor: allow specific sqlite engine for OpenBSD (#780)
* remove dependencies that use syscall.Syscall*

OpenBSD will be removing direct access to `syscall(2)` soon.
Shiori will stop working because of this, as some of its dependencies
rely heavily on the use of `syscall.Syscall*`, which ends up using
`syscall(2)`.  This commit removes those dependencies by reverting back
to use github.com/mattn/go-sqlite3 instead of modernc.org/sqlite to deal
with the sqlite database backend.

* add ~emersion/go-sqlite3-fts5

* enable cgo to check ci

* fts5 build flag

* split sqlite logic using build flags

* disable cgo again

* added ci test for bsd systems

* remove openbsd ci

* Revert "remove openbsd ci"

This reverts commit f394148385.

* fix makefile go_test_flags

---------

Co-authored-by: Felipe M <me@fmartingr.com>
Co-authored-by: Felipe Martin <812088+fmartingr@users.noreply.github.com>
2024-05-02 16:38:16 +02:00
Felipe Martin
31767f75e6
feat: new migrations system (#876)
* feat: new migration system

* use newFuncMigration

* database version -> database schema version

* column name

* use path instead of filepath for goembed

* simplified migrations, added backwards compatible migrations
2024-04-27 07:46:36 +02:00
Monirzadeh
b8a357829d
feat: api endpoint to serve readable content (#885)
* add endpoint to serve readable content

* add id and modified time in response

* revert id and modified time

* remove public check status

* chnage 401 to 403

* add basic unittest for readable content

* check response in unittest

* update strcut name and move that above handler
2024-04-21 00:59:03 +02:00
Felipe Martin
db313f5c62
fix: authentication flow should abort early (#888)
* fix: finish connection once we send auth response

* removed interface for now

* handle authentication in each route group

* tags api tests

* typo

* testutil improvements

* bookmarks api auth

* cache update requires owner
2024-04-13 19:45:03 +02:00