Dmitry Maranik
81fc467187
test(connectors): regression tests for cross-search-space index authorization
...
Two integration tests pinning the connector index endpoint's authorization:
- cross-space index (attacker owns space B, connector lives in victim's
space A, request passes search_space_id=B) is rejected with 404 at the
search-space reconciliation, before the permission check (which would
otherwise pass for the attacker's own space).
- same-space index authorizes check_permission against the connector's
own search space, not the caller-supplied query param.
Mirrors the existing tests/integration harness (direct handler calls with
the savepoint-rolled-back db_session; check_permission patched so the test
needs no real RBAC wiring).
2026-06-16 16:18:40 -07:00
Dmitry Maranik
e1ea82d7cf
fix(connectors): scope index endpoint authorization to the connector's own search space
...
The POST /search-source-connectors/{connector_id}/index endpoint loaded
the connector by id and then called check_permission() against the
client-supplied search_space_id query parameter (the caller's own space)
rather than the connector's own search_space_id, and never verified that
the two matched.
A user could therefore index another user's connector by passing their
own search_space_id: the indexer ran with the victim connector's stored
credentials and wrote the fetched content into the attacker's search
space. The read/update/delete handlers already authorize against
connector.search_space_id; this brings the index handler in line.
Reject a connector that does not belong to the requested search space
(404, to avoid disclosing connectors in other spaces) and authorize the
permission check against connector.search_space_id.
2026-06-16 15:58:30 -07:00
DESKTOP-RTLN3BA\$punk
8172f0f586
chore(migration): added dead users cleanup
2026-06-16 15:48:17 -07:00
DESKTOP-RTLN3BA\$punk
5d99489f4b
feat(migration): implement chunk position backfill with batched updates and indexing for improved performance
2026-06-16 15:19:56 -07:00
Thierry CH.
284df841ef
Merge pull request #1501 from CREDO23/feat/podcast-brief-duration-seconds
...
feat(podcasts): short default brief length with seconds and unit picker
2026-06-16 15:04:07 -07:00
CREDO23
7584312712
style(podcasts): fix ruff issues in podcast spec schema
...
Remove duplicate typing import and format legacy minute coercion guard.
2026-06-16 23:57:36 +02:00
CREDO23
7a415b61ea
test: align QuotaInsufficientError fixtures with balance_micros API
...
Billable calls now raise quota errors with balance_micros instead of
used_micros/limit_micros; update mocks so CI passes on main.
2026-06-16 23:56:11 +02:00
CREDO23
fd96c930bf
test(podcasts): cover seconds duration and legacy minute specs
2026-06-16 23:38:28 +02:00
CREDO23
f997b6464e
test(podcasts): update renderer test for second-based duration
2026-06-16 23:38:28 +02:00
CREDO23
cb70b64a70
test(podcasts): update unit fixtures for second-based duration
2026-06-16 23:38:28 +02:00
CREDO23
38991c7db8
test(podcasts): update integration fixtures for second-based duration
2026-06-16 23:38:28 +02:00
CREDO23
bab3f7c0d4
feat(web): add unit dropdown for podcast brief target length
2026-06-16 23:38:28 +02:00
CREDO23
608620d649
feat(web): add seconds-based podcast duration types with legacy support
2026-06-16 23:38:28 +02:00
CREDO23
16d226e5ce
refactor(podcasts): plan transcript length from midpoint seconds
2026-06-16 23:38:28 +02:00
CREDO23
116c38feac
refactor(podcasts): build DurationTarget from brief seconds config
2026-06-16 23:38:28 +02:00
CREDO23
af08e2f033
refactor(podcasts): propose brief with min_seconds and max_seconds
2026-06-16 23:38:28 +02:00
CREDO23
d0ed5b94d9
refactor(podcasts): use shared second-based brief duration defaults
2026-06-16 23:38:28 +02:00
CREDO23
845653cbac
feat(podcasts): pass min_seconds and max_seconds when proposing brief
2026-06-16 23:38:27 +02:00
CREDO23
085442ed9a
feat(podcasts): use seconds defaults on create podcast request
2026-06-16 23:38:27 +02:00
CREDO23
32e0d21604
feat(podcasts): store brief duration in seconds with legacy load
2026-06-16 23:38:27 +02:00
CREDO23
9583e8f250
feat(podcasts): add shared duration limit constants
2026-06-16 23:38:27 +02:00
Rohan Verma
b6d25d3828
Merge pull request #1499 from AnishSarkar22/feat/reverse-proxy
...
feat: Add single-origin reverse proxy deployment with runtime web config
2026-06-16 14:03:27 -07:00
Anish Sarkar
61f071ae68
refactor(web): replace Card component with Alert for messaging channels notification to enhance user experience
2026-06-17 00:06:41 +05:30
Anish Sarkar
9b7e278114
refactor(config): update GATEWAY_ENABLED variable to FALSE and adjust related configurations for improved messaging gateway handling
2026-06-16 23:49:26 +05:30
Thierry CH.
683a827300
Merge pull request #1500 from CREDO23/fix/podcast-stream-missing-audio
...
fix(podcasts): guard stream when audio missing and share object store volume
2026-06-16 11:16:27 -07:00
CREDO23
a7be41d50a
fix(docker): share persistent object_store volume in dev
2026-06-16 20:09:08 +02:00
CREDO23
fc045d200d
fix(docker): share persistent object_store volume across services
2026-06-16 20:09:08 +02:00
CREDO23
1048d0afc3
test(podcasts): cover public stream missing-object 404
2026-06-16 20:09:08 +02:00
CREDO23
810ded2dde
test(podcasts): cover in-flight 409 and missing-object 404
2026-06-16 20:09:08 +02:00
CREDO23
86a8833fb4
test(podcasts): add exists to fake storage backend
2026-06-16 20:09:08 +02:00
CREDO23
1d70af4684
fix(podcasts): guard public stream against missing audio
2026-06-16 20:09:08 +02:00
CREDO23
0c2808640a
fix(podcasts): guard stream against missing audio
2026-06-16 20:09:08 +02:00
CREDO23
d2558e546e
feat(podcasts): add audio_exists storage helper
2026-06-16 20:09:08 +02:00
Anish Sarkar
4ed6343b91
refactor(docker): remove docker-entrypoint.sh and update Dockerfile to use CMD for server execution
2026-06-16 22:01:23 +05:30
Anish Sarkar
55c2e5c0d8
refactor(web): enhance redirect response in callback route
2026-06-16 21:00:53 +05:30
Anish Sarkar
c3a96aa532
refactor(web): simplify redirect response construction in callback route
2026-06-16 20:13:00 +05:30
Anish Sarkar
97ac02eba8
refactor(web): update environment variable references to use HOSTED_BACKEND_URL for improved consistency across workflows and scripts
2026-06-16 16:15:45 +05:30
Anish Sarkar
695da76f2e
refactor(web): update environment variable handling to use build-time constants for auth type, deployment mode, and ETL service
2026-06-16 15:55:57 +05:30
Anish Sarkar
3f69bfd5e4
refactor(web): replace instances of BACKEND_URL with buildBackendUrl for improved URL handling
2026-06-16 14:51:25 +05:30
Anish Sarkar
371ff866c7
refactor(web): replace BACKEND_URL with buildBackendUrl for dynamic URL construction
2026-06-16 04:56:23 +05:30
Anish Sarkar
66659ee8d3
feat(docker): update Caddyfile to include specific reverse proxy routes for frontend auth and backend user profiles
2026-06-16 04:36:26 +05:30
Anish Sarkar
34a49df8a3
docs: document runtime env vars and same-origin proxy access
2026-06-16 02:12:11 +05:30
Anish Sarkar
2fb0f0c050
ci: align workflows and playwright with runtime env vars
2026-06-16 02:11:48 +05:30
Anish Sarkar
1313ec2109
fix(docker): disable response buffering for backend streaming
2026-06-16 02:11:32 +05:30
Anish Sarkar
cd5e0abe53
refactor(docker): drop build-time NEXT_PUBLIC injection for runtime env
2026-06-16 02:11:13 +05:30
Anish Sarkar
2a840fcc10
refactor(backend): derive frontend and backend urls from SURFSENSE_PUBLIC_URL
2026-06-16 02:10:50 +05:30
Anish Sarkar
1d050e7d40
refactor(web): drop google sign-in cta from marketing pages
2026-06-16 02:10:00 +05:30
Anish Sarkar
bc31b10ca6
refactor(web): consume runtime config in connectors and document uploads
2026-06-16 01:39:52 +05:30
Anish Sarkar
c5dd55e964
refactor(web): consume runtime config in auth and dashboard flows
2026-06-16 01:39:32 +05:30
Anish Sarkar
9ef2c6a60e
refactor(web): route server proxies through SURFSENSE_BACKEND_INTERNAL_URL
2026-06-16 01:39:00 +05:30