Commit Graph
100 Commits
Author SHA1 Message Date
daniel156161 ed62837f6d feat: add self-contained link composer
Build and Push Docker Container / build-and-push (push) Successful in 1m36s
- Add structured URL codec with compact alphabets and dictionary support.
- Add public decode, redirect, and QR endpoints for composed links.
- Add authenticated encode API and link composer UI.
- Generate PNG QR codes via qrcode with Pillow support.
- Register the new blueprint and navigation entry.
- Cover public decode, auth gating, redirect URL parsing, and QR output.
- Bump NanoShare to 1.27.0 and lock new dependencies.
2026-08-14 08:56:42 +02:00
daniel156161 d3e5e11f8d fix(cli): ignore generated folders in subfolders
Build and Push Docker Container / build-and-push (push) Successful in 3m12s
- Match directory ignore patterns against every path segment.
- Prevent nested .comments folders from uploading XML sidecar files.
- Bump the standalone CLI to 0.4.2 for the ignore fix.
2026-07-28 00:14:00 +02:00
daniel156161 08d0d154c9 fix(api): keep file event streams alive
Build and Push Docker Container / build-and-push (push) Successful in 2m7s
- Disable the Quart response timeout for authenticated file event streams.
- Send SSE keepalives more often to avoid idle proxy disconnects.
- Treat remote stream interruptions as reconnectable disconnects in watch output.
- Bump NanoShare to 1.26.0 and the standalone CLI to 0.4.1.
2026-07-27 22:51:03 +02:00
daniel156161 d3c914285c feat(cli): watch files with event streams
Build and Push Docker Container / build-and-push (push) Successful in 2m3s
- Add a private SSE endpoint that emits file change events for authenticated clients.
- Replace the watch sleep loop with watchdog local file events and remote SSE triggers.
- Debounce local event bursts and keep watch running after transient sync failures.
- Add watchdog as a standalone CLI dependency and cover watch behavior in tests.
- Bump NanoShare to 1.25.0 and the standalone CLI to 0.4.0.
2026-07-27 22:18:09 +02:00
daniel156161 ffdcc979e6 fix(cli): ignore generated folders by default
- Skip .comments, virtualenvs, env files, VCS folders, and OS metadata in sync.
- Apply defaults before project .nanoshareignore and repeatable --ignore rules.
- Cover default ignores for local uploads and direct pattern matching.
2026-07-27 22:01:52 +02:00
daniel156161 472ed11e9f test(cli): cover expiry preservation on moves
- Assert tracked-file moves keep an existing remote expires_at value.
- Keep the move regression focused on metadata preservation.
2026-07-27 21:52:44 +02:00
daniel156161 2b0215cd94 fix(cli): preserve notes during sync moves
Build and Push Docker Container / build-and-push (push) Successful in 1m52s
- Leave sync and watch notes empty by default instead of writing placeholder text.
- Preserve existing remote notes when moving or adopting files without --note.
- Detect tracked local moves by SHA-256 and update remote metadata safely.
- Skip files that vanish during watch scans instead of aborting the sync cycle.
- Bump NanoShare to 1.24.0 and the standalone CLI to 0.3.0.
2026-07-27 21:40:30 +02:00
daniel156161 993337be9f feat(cli): sync folders with remote paths
Build and Push Docker Container / build-and-push (push) Successful in 1m36s
- Store synced folder locations in file_path instead of embedding them in file names.
- Add ignore rules from .nanoshareignore and repeatable sync --ignore flags.
- Adopt existing remote files only after SHA-256 verification.
- Move adopted remotes with metadata updates instead of uploading duplicates.
- Bump NanoShare to 1.23.0 and the standalone CLI to 0.2.0.
2026-07-27 20:53:00 +02:00
daniel156161 77c76b16c4 feat(cli): improve file discovery and completion
- Render remote files as an aligned table with JSON and TSV alternatives.
- Add Bash and Zsh completion for commands, options, paths, and remote files.
- Allow downloads by exact filename while rejecting ambiguous duplicate names.
- Cover table formatting, completion scripts, and selector resolution with tests.
2026-07-27 17:30:43 +02:00
daniel156161 9db36c2d5b fix: allow CLI file tokens for RPC access
Build and Push Docker Container / build-and-push (push) Successful in 1m2s
- Accept files-scoped bearer tokens on servicelink RPC calls.
- Keep mesh shared-secret auth for trusted internal callers.
- Validate CLI auth scopes and reject unsupported values early.
- Stop CLI browser login waiting for the full timeout after callback.
- Add tests for scope normalization, RPC access, and login callback timing.
2026-07-27 17:08:23 +02:00
daniel156161 6e4e5b837b chore(deps): update locked h2 package
Build and Push Docker Container / build-and-push (push) Successful in 1m12s
- Update h2 from 4.3.0 to 4.4.0 in uv.lock.
- Refresh the locked source distribution metadata.
- Refresh the locked wheel metadata for the new release.
2026-07-27 16:54:04 +02:00
daniel156161 d71f0838d6 chore(release): sync lockfile version
- Update the locked NanoShare package version to 1.22.0.
- Keep uv.lock aligned with the package metadata release bump.
2026-07-27 16:51:22 +02:00
daniel156161 4f223e529d fix(cli): package standalone client wheel
- Declare the NanoShare client package for Hatch wheel builds.
- Ensure uv tool install can build and install the CLI from cli/.
- Bump the server package version to 1.22.0 for the CLI release.
2026-07-27 16:27:21 +02:00
daniel156161 42064de633 feat(cli): add private NanoShare sync client
Build and Push Docker Container / build-and-push (push) Successful in 1m3s
- Add a separate installable NanoShare CLI package under cli/.
- Implement browser login with local callback and refresh-token config.
- Add upload, list, download, sync, and watch CLI commands.
- Add private owner-only file download endpoint for CLI downloads.
- Add CLI auth endpoints for browser login and token refresh.
- Return file_id from ServiceLink uploads for reliable sync state.
- Exclude the CLI package from NanoShare container builds.
- Include tests for private downloads and sync state updates.
2026-07-27 15:52:34 +02:00
daniel156161 4ee4d6a0a4 fix: align proxy diagnostics with shared web stack
Build and Push Docker Container / build-and-push (push) Failing after 1m54s
- Advance quart_common to the same revision used by webside-and-api.
- Log loaded proxy trust settings during NanoShare startup.
- Make deployed proxy header configuration easier to verify.
2026-07-26 13:06:55 +02:00
daniel156161 d418e2d9dc chore(deps): update certifi lockfile entry
- Bump certifi from 2026.6.17 to 2026.7.22 in uv.lock.
- Refresh the source distribution URL and checksum.
- Refresh the wheel URL and checksum.
- Leave untracked static assets out of this commit.
2026-07-23 10:57:42 +02:00
daniel156161 48414eb297 chore: refresh deps and adjust share rate limits
Build and Push Docker Container / build-and-push (push) Successful in 1m10s
- Raise index and file-serving limits to 20 requests per minute.
- Keep hourly file-serving allowance at 500 requests.
- Increase the index hourly allowance to 500 requests.
- Update the my_helpers submodule pointer.
- Refresh uv.lock for current dependency releases.
2026-07-21 09:13:20 +02:00
daniel156161 b45139f429 feat(mesh): support shared secret verification
- Allow the link API verifier to accept either mesh-scoped JWTs or a shared secret.
- Read SERVICELINK_MESH_SECRET from the environment for trusted Docker network calls.
- Update the servicelink submodule to include shared-secret verifier support.
2026-06-14 12:21:04 +02:00
daniel156161 60139f48f2 fix: harden storage proxy and error handling
Build and Push Docker Container / build-and-push (push) Successful in 2m3s
- Preserve Convex storage response headers while validating allowed component query parameters.
- Add fallback favicon routes for common browser and resource paths.
- Make Convex error tracking non-blocking so error pages still render when tracking fails.
- Return clearer 405 responses and map Convex outages to 503 or 504 with Retry-After headers.
- Route logging through wide-event-aware helpers to avoid duplicate logs when structured events are enabled.
2026-06-14 01:07:56 +02:00
daniel156161 ca85dc2265 refactor: use shared ServiceLink blueprint
- Replace the local /rpc Quart route with the shared ServiceLink blueprint helper.
- Move mesh scope enforcement into bearer_verifier via require_scope.
- Update ServiceLink tests to call the public handle_envelope and verify exports.
- Advance the servicelink submodule to include the shared CLI and RPC discovery work.
2026-06-14 00:32:27 +02:00
daniel156161 1dbf3b36ff chore(deps): refresh uv lock dependencies
Build and Push Docker Container / build-and-push (push) Successful in 1m17s
- Update the uv lockfile with the latest resolved dependency versions.
- Refresh security/auth-adjacent packages including cryptography, certifi, idna, and joserfc.
- Pull in current compatibility fixes for aiohappyeyeballs, yarl, werkzeug, wrapt, packaging, click, and propcache.
2026-06-14 00:14:36 +02:00
daniel156161 2982d44e55 feat: add servicelink RPC mesh endpoint
Build and Push Docker Container / build-and-push (push) Successful in 3m21s
- Add the servicelink submodule and register POST /rpc for node-to-node file operations.
- Require bearer tokens with the mesh scope and apply rate/body-size limits to RPC calls.
- Map database connectivity failures to the existing 504 database error flow, with JSON responses for API routes.
- Cover the new RPC handlers and database error handling with focused pytest tests.
- Bump the NanoShare package version to 1.21.0.
2026-06-13 23:59:35 +02:00
daniel156161 cb6422aacb chore: release NanoShare 1.20.0
Build and Push Docker Container / build-and-push (push) Successful in 2m4s
- Bump the application version from 0.1.0 to 1.20.0 using the project version scheme.

- Trim pyproject dependencies to direct root packages only and let uv.lock keep the resolved transitive set.

- Update the quart_common submodule to include the latest wide-event session context handling.

- Adjust NanoShare wide-event middleware expectations for the new session payload shape.
2026-05-13 22:01:06 +02:00
daniel156161 a73c0302a4 add joserfc package for new auth
Build and Push Docker Container / build-and-push (push) Successful in 1m14s
2026-05-13 21:01:30 +02:00
daniel156161 4cefc4e0ad update uv lock file to correct nameing
Build and Push Docker Container / build-and-push (push) Successful in 1m27s
2026-05-13 20:46:58 +02:00
daniel156161 5b619670ee update quart common with middleware pre_database_hooks
Build and Push Docker Container / build-and-push (push) Failing after 45s
2026-05-13 20:40:17 +02:00
daniel156161 9c731d6e67 feat(logging): add NanoShare wide event instrumentation
Build and Push Docker Container / build-and-push (push) Failing after 51s
- Register quart_common wide-event logging during app setup so every HTTP request emits one canonical structured event.

- Replace the inline security middleware with reusable quart_common security middleware wiring and move skip path configuration into app constants.

- Add NanoShare-specific wide-event context for health checks, auth/error handlers, file list/edit/delete/serve flows and upload outcomes.

- Rename runtime logging/project metadata from simple-picoshare to nanoshare where it is emitted in service context.

- Update my_helpers and quart_common submodules for Convex/wide-event integration and reusable security middleware support.

- Add NanoShare middleware tests covering safe user context, client IP enrichment, missing Convex handling and Convex security lookup failures.
2026-05-13 20:22:43 +02:00
daniel156161 42ce022d7b use new shared blueprint function
Build and Push Docker Container / build-and-push (push) Successful in 1m50s
2026-04-15 19:00:16 +02:00
daniel156161 6ead4b8541 update my_helpers submodule
Build and Push Docker Container / build-and-push (push) Successful in 1m29s
2026-04-15 18:49:58 +02:00
daniel156161 0b81d3d803 use login from quard_common 2026-04-15 18:49:17 +02:00
daniel156161 3d8d74785c fix file preview url
Build and Push Docker Container / build-and-push (push) Successful in 1m30s
2026-04-11 11:35:39 +02:00
daniel156161 1c58de68b6 update submodules 2026-04-11 11:35:20 +02:00
daniel156161 c28e4874d9 update my_helpers and remove useless newline into logger
Build and Push Docker Container / build-and-push (push) Successful in 1m23s
2026-04-06 14:25:48 +02:00
daniel156161 680e8dafff allow to strem upload to convex and reuse file id when upload error happend 2026-04-06 14:20:11 +02:00
daniel156161 b170fcfa98 use hypercorn from .venv folder 2026-04-01 22:11:17 +02:00
daniel156161 4773338ccc add convex health metrics route
Build and Push Docker Container / build-and-push (push) Successful in 2m4s
2026-04-01 21:32:28 +02:00
daniel156161 d9b7c88ccf fix login that it not shows 500 when authentik is to slow
Build and Push Docker Container / build-and-push (push) Successful in 1m51s
2026-04-01 21:17:01 +02:00
daniel156161 7b77387182 remove feature_flag_required for edit and info routes and buttons 2026-04-01 21:15:23 +02:00
daniel156161 65951a23ce use correct convex function and change how the edit html gets the file id 2026-04-01 21:05:07 +02:00
daniel156161 5bbc100d83 add info page for files 2026-04-01 20:39:25 +02:00
daniel156161 cf489c9f4a update submodules
Build and Push Docker Container / build-and-push (push) Failing after 11m40s
2026-04-01 19:45:39 +02:00
daniel156161 eeda177182 allow to edit files 2026-04-01 19:45:22 +02:00
daniel156161 0681bd398c not show pages that not exists yet
Build and Push Docker Container / build-and-push (push) Successful in 1m25s
2026-04-01 16:19:56 +02:00
daniel156161 ea4738ad06 use new quart_common functions 2026-04-01 16:17:30 +02:00
daniel156161 51f02ff5c8 add quart common submodule 2026-04-01 14:38:49 +02:00
daniel156161 b311bcae11 updateing my_helpers submodule 2026-04-01 13:44:55 +02:00
daniel156161 063ff3ca58 change convex from runtime to worker pool
Build and Push Docker Container / build-and-push (push) Successful in 1m52s
2026-03-28 13:21:09 +01:00
daniel156161 fc3a0219a0 update requirements 2026-03-28 13:15:40 +01:00
daniel156161 a6befb5aeb update actions to new version:
Build and Push Docker Container / build-and-push (push) Successful in 1m21s
- checkout: v6
- setup-buildx-action: v4
- login-action: v4
- build-push-action: v7
2026-03-10 08:59:17 +01:00
daniel156161 cc79e43b3c add /login and /logout paths to user auth
Build and Push Docker Container / build-and-push (push) Successful in 1m4s
2026-02-26 11:17:16 +01:00
daniel156161 367e9fbdb6 update requirements
Build and Push Docker Container / build-and-push (push) Successful in 1m17s
2026-02-26 10:39:40 +01:00
daniel156161 6137121209 update to get favicon from compontent by using the storage
Build and Push Docker Container / build-and-push (push) Successful in 1m36s
2026-02-16 12:02:52 +01:00
daniel156161 e8e37e8967 update requirements
Build and Push Docker Container / build-and-push (push) Successful in 1m18s
2026-02-11 12:44:20 +01:00
daniel156161 3cd30d3bad update requirements
Build and Push Docker Container / build-and-push (push) Successful in 1m42s
2026-02-09 10:09:06 +01:00
daniel156161 bea2d98fa6 update requirements
Build and Push Docker Container / build-and-push (push) Successful in 2m9s
2026-01-22 10:19:13 +01:00
daniel156161 d82ed3d43a fix adding of pasted text into convex and fix double paste problem
Build and Push Docker Container / build-and-push (push) Successful in 1m40s
2026-01-19 18:52:27 +01:00
daniel156161 e541000347 create Variables for to many 418 errors when they are a hacker or bot to get blocked
Build and Push Docker Container / build-and-push (push) Successful in 2m28s
2026-01-07 00:00:44 +01:00
daniel156161 b7ec488b44 add check if accessed storage file_id is a uuid and when not send them to a 404 error page
Build and Push Docker Container / build-and-push (push) Successful in 1m31s
2026-01-01 10:29:45 +01:00
daniel156161 9b69069367 update my_helpers submodule 2026-01-01 10:26:02 +01:00
daniel156161 6930bb3a61 remove not neaded safe_name and remove import of pathlib
Build and Push Docker Container / build-and-push (push) Successful in 1m20s
2025-12-29 09:17:42 +01:00
daniel156161 715af77a8c add code to increment blocked path access
Build and Push Docker Container / build-and-push (push) Successful in 1m21s
2025-12-29 09:12:52 +01:00
daniel156161 6280299770 add robots txt file
Build and Push Docker Container / build-and-push (push) Successful in 1m22s
2025-12-23 15:24:22 +01:00
daniel156161 a39862b5ab add testing files 2025-12-23 15:21:23 +01:00
daniel156161 ca7fbe9b80 update my_helpers and git ignore 2025-12-23 15:21:00 +01:00
daniel156161 729e7f5fca add protection that shares the data with my webside 2025-12-23 15:20:36 +01:00
daniel156161 0b2d635fd8 remove gel db completly with package
Build and Push Docker Container / build-and-push (push) Successful in 1m58s
2025-12-22 14:11:19 +01:00
daniel156161 e4171e4b73 delete gel db database schema 2025-12-22 14:03:53 +01:00
daniel156161 410e09a980 add working accessed quary and rename fields in html template
Build and Push Docker Container / build-and-push (push) Successful in 1m37s
2025-12-22 14:00:02 +01:00
daniel156161 fefda61c0b use new convex db base class and remove code that is already into the base class
Build and Push Docker Container / build-and-push (push) Successful in 1m21s
2025-12-22 11:43:05 +01:00
daniel156161 cdab1057cc remove pip package
Build and Push Docker Container / build-and-push (push) Successful in 1m38s
2025-12-22 02:04:30 +01:00
daniel156161 d635da039f move database and file storage from edgedb and disk to convex 2025-12-22 02:04:10 +01:00
daniel156161 88d72e3ee1 install convex package 2025-12-21 19:12:04 +01:00
daniel156161 6f0ad8bec2 move EdgeDB into db sub folder 2025-12-21 19:05:59 +01:00
daniel156161 2ea781c293 change gel db behafer to simple_scoping 2025-11-16 15:34:16 +01:00
daniel156161 51062d2e97 use uv python 3.13 debian slim as base image and not check config to use base image python and frozen to not check for updates of packages only lock file
Build and Push Docker Container / build-and-push (push) Successful in 58s
2025-10-31 14:17:43 +01:00
daniel156161 52f8e78e78 update dockerfile to use uv for packages and to run the server
Build and Push Docker Container / build-and-push (push) Successful in 1m27s
2025-10-31 13:44:50 +01:00
daniel156161 b93969a6c4 update my submodules 2025-10-31 13:42:57 +01:00
daniel156161 fea1cb12c5 add uv package manager files 2025-10-31 13:42:37 +01:00
daniel156161 f65ef26d42 create uploads volume in dockerfile
Build and Push Docker Container / build-and-push (push) Successful in 1m59s
2025-10-25 16:22:22 +02:00
daniel156161 340d72ca56 update repo path
Build and Push Docker Container / build-and-push (push) Successful in 1m30s
2025-10-25 16:11:39 +02:00
daniel156161 42c7047a92 show how many ids got deleted and when none got deleted
Build and Push Docker Container / build-and-push (push) Successful in 1m28s
2025-10-25 15:58:55 +02:00
daniel156161 fe4526bfe0 generate longer file_ids and retry if they is a collison in the database
Build and Push Docker Container / build-and-push (push) Successful in 1m31s
2025-10-25 15:45:13 +02:00
daniel156161 85407ad86f fix upload and redirect user to file list when upload successfully
Build and Push Docker Container / build-and-push (push) Successful in 1m38s
2025-10-25 15:11:17 +02:00
daniel156161 cd96e9135f fix not logging when user accessed they files and only show the file access from the user files and not all
Build and Push Docker Container / build-and-push (push) Successful in 1m37s
2025-10-25 14:54:00 +02:00
daniel156161 6f92fdefa9 add new accesslog menu point 2025-10-25 14:21:01 +02:00
daniel156161 31a3e25a16 move template page files into a better structure 2025-10-25 14:20:12 +02:00
daniel156161 501acce9ba don't log if the same user access they shared files
Build and Push Docker Container / build-and-push (push) Successful in 1m30s
2025-10-25 13:55:55 +02:00
daniel156161 0ff61a9e81 rename static template file folder to static and update middleware to not show access in logging 2025-10-25 13:54:06 +02:00
daniel156161 180fd1c071 add better rate limits
Build and Push Docker Container / build-and-push (push) Successful in 1m48s
2025-10-24 21:59:02 +02:00
daniel156161 6f85ee1856 fix submenu nav color
Build and Push Docker Container / build-and-push (push) Successful in 1m27s
2025-10-24 20:30:57 +02:00
daniel156161 a1c2b50b2a change api groupe to NanoShare
Build and Push Docker Container / build-and-push (push) Successful in 1m37s
2025-10-24 20:25:35 +02:00
daniel156161 e6b55e498d fix nav color
Build and Push Docker Container / build-and-push (push) Successful in 1m31s
2025-10-24 20:05:14 +02:00
daniel156161 a418a16b1a let chatgpt combine styles into one css file and use it
Build and Push Docker Container / build-and-push (push) Successful in 1m28s
2025-10-24 19:57:38 +02:00
daniel156161 ae4995f49c remove of upsert 404 error pages into database 2025-10-24 19:40:37 +02:00
daniel156161 b88c01c884 add fontawsome web fonts 2025-10-24 19:39:02 +02:00
daniel156161 8a90c1d85b add fontawsome and font for error page 2025-10-24 19:34:21 +02:00
daniel156161 fd20755f39 add error images 2025-10-24 11:11:38 +02:00
daniel156161 1b6689f111 import errorsAndBots to get server error messages
Build and Push Docker Container / build-and-push (push) Successful in 1m38s
2025-10-24 11:03:04 +02:00
daniel156161 84acbe28d1 add my favicons 2025-10-24 10:58:21 +02:00
daniel156161 cb07d0b95e update requirements 2025-10-24 10:57:35 +02:00