Skip to content

Commit d3e7c99

Browse files
committed
fix: rename API parameter 'ref' to 'doc' for privacy extensions compatibility
ClearURLs and similar privacy extensions block the 'ref' parameter as it's commonly used for referrer tracking. Renamed to 'doc' which is not targeted by these extensions. Closes #19
1 parent 2fb9339 commit d3e7c99

File tree

6 files changed

+12
-12
lines changed

6 files changed

+12
-12
lines changed

backend/internal/presentation/api/documents/handler.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -488,16 +488,16 @@ type FindOrCreateDocumentResponse struct {
488488
MimeType string `json:"mimeType,omitempty"`
489489
}
490490

491-
// HandleFindOrCreateDocument handles GET /api/v1/documents/find-or-create?ref={reference}
491+
// HandleFindOrCreateDocument handles GET /api/v1/documents/find-or-create?doc={reference}
492492
func (h *Handler) HandleFindOrCreateDocument(w http.ResponseWriter, r *http.Request) {
493493
ctx := r.Context()
494494

495-
// Get reference from query parameter
496-
ref := r.URL.Query().Get("ref")
495+
// Get reference from query parameter (renamed from "ref" to "doc" to avoid ClearURLs blocking)
496+
ref := r.URL.Query().Get("doc")
497497
if ref == "" {
498-
logger.Logger.Warn("Find or create request missing ref parameter",
498+
logger.Logger.Warn("Find or create request missing doc parameter",
499499
"remote_addr", r.RemoteAddr)
500-
shared.WriteError(w, http.StatusBadRequest, shared.ErrCodeBadRequest, "ref parameter is required", nil)
500+
shared.WriteError(w, http.StatusBadRequest, shared.ErrCodeBadRequest, "doc parameter is required", nil)
501501
return
502502
}
503503

backend/internal/presentation/api/documents/handler_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -513,7 +513,7 @@ func TestHandler_HandleFindOrCreateDocument_FindExisting(t *testing.T) {
513513
authorizer: newMockAuthorizer([]string{}, false),
514514
}
515515

516-
req := httptest.NewRequest(http.MethodGet, "/api/v1/documents/find-or-create?ref=https://example.com/doc.pdf", nil)
516+
req := httptest.NewRequest(http.MethodGet, "/api/v1/documents/find-or-create?doc=https://example.com/doc.pdf", nil)
517517
rec := httptest.NewRecorder()
518518

519519
handler.HandleFindOrCreateDocument(rec, req)
@@ -550,7 +550,7 @@ func TestHandler_HandleFindOrCreateDocument_CreateNew(t *testing.T) {
550550
authorizer: newMockAuthorizer([]string{}, false),
551551
}
552552

553-
req := httptest.NewRequest(http.MethodGet, "/api/v1/documents/find-or-create?ref=https://example.com/new-doc.pdf", nil)
553+
req := httptest.NewRequest(http.MethodGet, "/api/v1/documents/find-or-create?doc=https://example.com/new-doc.pdf", nil)
554554

555555
// Add authenticated user to context
556556
ctx := addUserToContext(req.Context(), testUser)
@@ -587,7 +587,7 @@ func TestHandler_HandleFindOrCreateDocument_UnauthenticatedCreate(t *testing.T)
587587
authorizer: newMockAuthorizer([]string{}, false),
588588
}
589589

590-
req := httptest.NewRequest(http.MethodGet, "/api/v1/documents/find-or-create?ref=https://example.com/new-doc.pdf", nil)
590+
req := httptest.NewRequest(http.MethodGet, "/api/v1/documents/find-or-create?doc=https://example.com/new-doc.pdf", nil)
591591
// No user in context
592592
rec := httptest.NewRecorder()
593593

backend/openapi.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -342,7 +342,7 @@ paths:
342342
tags:
343343
- Documents
344344
parameters:
345-
- name: ref
345+
- name: doc
346346
in: query
347347
required: true
348348
schema:

docs/en/api.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ GET /api/v1/users/me
111111
#### Find or Create Document
112112

113113
```http
114-
GET /api/v1/documents/find-or-create?ref=policy_2025
114+
GET /api/v1/documents/find-or-create?doc=policy_2025
115115
```
116116

117117
**Response** (200 OK):

docs/fr/api.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ GET /api/v1/users/me
111111
#### Trouver ou Créer un Document
112112

113113
```http
114-
GET /api/v1/documents/find-or-create?ref=policy_2025
114+
GET /api/v1/documents/find-or-create?doc=policy_2025
115115
```
116116

117117
**Réponse** (200 OK) :

webapp/src/services/documents.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ export const documentService = {
103103
async findOrCreateDocument(reference: string): Promise<FindOrCreateDocumentResponse> {
104104
const response = await http.get<ApiResponse<FindOrCreateDocumentResponse>>(
105105
'/documents/find-or-create',
106-
{ params: { ref: reference } }
106+
{ params: { doc: reference } }
107107
)
108108
return response.data.data
109109
},

0 commit comments

Comments
 (0)