Commit Graph

68 Commits

Author SHA1 Message Date
Fredrik Adelöw 2d3a5f09ab json
Signed-off-by: Fredrik Adelöw <freben@gmail.com>
2022-10-06 15:00:36 +02:00
Camila Belo 60a912cd2c Rename param to page limit and validate its type
Signed-off-by: Camila Belo <camilaibs@gmail.com>
2022-10-04 10:54:09 +02:00
Emma Indal 876e3b3d0c Accept resultsPerPage param on the search query
Co-authored-by: Camila Loiola <camilaibs@gmail.com>
Signed-off-by: Emma Indal <emma.indahl@gmail.com>
2022-10-04 10:54:09 +02:00
Pedro Nastasi 65c8a72b54 bugfix: prettier
Signed-off-by: Pedro Nastasi <v-pnastasi@expediagroup.com>
2022-09-28 11:44:47 -03:00
Pedro Nastasi 58528fb833 Be less restrictive with unknown keys on query endpoint
Signed-off-by: Pedro Nastasi <v-pnastasi@expediagroup.com>
2022-09-28 11:18:10 -03:00
Emma Indal f22df2248d delete deprecations
Signed-off-by: Emma Indal <emma.indahl@gmail.com>
2022-07-18 10:09:01 +02:00
Camila Belo dcba440459 refactor: apply review suggestions
Signed-off-by: Camila Belo <camilaibs@gmail.com>
2022-07-05 12:02:21 +02:00
Emma Indal 34c97eb35b switch to use .json instead of .send
Signed-off-by: Emma Indal <emma.indahl@gmail.com>
2022-06-22 14:06:09 +02:00
Emma Indal 1e28c43366 check error, if MissingIndexError return status code 400 with clear error message
Signed-off-by: Emma Indal <emma.indahl@gmail.com>
2022-06-20 16:24:15 +02:00
Eric Peterson c7ce7b1eb0 Test rank handling in all search engines.
Signed-off-by: Eric Peterson <ericpeterson@spotify.com>
2022-06-10 15:36:11 +02:00
Eric Peterson 915700f64f Set a pagination-aware rank value for all search engines.
Signed-off-by: Eric Peterson <ericpeterson@spotify.com>
2022-06-10 15:36:11 +02:00
Emma Indal 52cc4d8525 clean up api report for search-backend package
Signed-off-by: Emma Indal <emma.indahl@gmail.com>
2022-06-02 12:02:58 +02:00
Joe Porpeglia 8cc75993a6 Fix PermissionEvaluator instance checks
Signed-off-by: Joe Porpeglia <josephp@spotify.com>
2022-04-19 14:32:58 -04:00
Vincenzo Scamporlino 63902fcc17 PermissionEvaluator: rename query to authorizeConditional
Signed-off-by: Vincenzo Scamporlino <me@vinzscam.dev>
2022-04-08 12:29:00 +02:00
Vincenzo Scamporlino b4af8664b5 api report and minor fixes
Signed-off-by: Vincenzo Scamporlino <me@vinzscam.dev>
2022-04-08 12:29:00 +02:00
Vincenzo Scamporlino 173aadff5b Avoid PermissionEvaluator breaking changes
Signed-off-by: Vincenzo Scamporlino <me@vinzscam.dev>
2022-04-08 12:29:00 +02:00
Vincenzo Scamporlino 8b27170d30 search-backend: Use PermissionEvaluator instead of PermissionAuthorizer
Signed-off-by: Vincenzo Scamporlino <me@vinzscam.dev>
2022-04-08 12:28:59 +02:00
Vincenzo Scamporlino dc8037213c Use PermissionEvaluator
Signed-off-by: Vincenzo Scamporlino <me@vinzscam.dev>
2022-04-08 12:28:59 +02:00
Mike Lewis 3c8cfaaa80 search-backend: use new policyDecision method in AuthorizedSearchEngine and test suites
Signed-off-by: Mike Lewis <mtlewis@users.noreply.github.com>
2022-04-08 12:28:59 +02:00
Joe Porpeglia e43290ce96 Rename permission backend request and response types
Signed-off-by: Joe Porpeglia <josephp@spotify.com>
2022-03-25 10:02:46 -04:00
MT Lewis 9da18e4715 search: throw error for unexpected non-resource permissions when authorizing result-by-result
We only reach this point in the code for types where the initial
authorization returned CONDITIONAL -- ALLOWs return early immediately
above, and types where the decision was DENY get filtered out entirely
when querying.

This means the call to isResourcePermission here is mostly about
narrowing the types, since the only way for it to be false is if the
PermissionPolicy returned a CONDITIONAL decision for a non-resource
permission, which can't happen - it would throw an error during
validation in the permission-backend.

Signed-off-by: MT Lewis <mtlewis@users.noreply.github.com>
2022-03-23 15:58:42 -04:00
Mike Lewis 30f9884359 search: check for non-resource permissions when authorizing results
Now that we can differentiate between ResourcePermissions and other
kinds of permissions, we can skip authorizing result-by-result
when the permission for a given document type is not a
ResourcePermission.

Signed-off-by: Mike Lewis <mtlewis@users.noreply.github.com>
2022-03-23 15:58:42 -04:00
Mike Lewis 9cbb270aef permissions: add a discriminator type to Permission
Signed-off-by: Mike Lewis <mtlewis@users.noreply.github.com>
2022-03-22 14:32:38 -04:00
Mike Lewis 94ccd772d4 search-backend: filter out authorization property in api responses
Signed-off-by: Mike Lewis <mtlewis@users.noreply.github.com>
2022-03-17 12:39:42 +00:00
Mike Lewis a0fbae7aeb search-backend: use new IndexableResultSet type as return type of engine#query
Signed-off-by: Mike Lewis <mtlewis@users.noreply.github.com>
2022-03-17 12:39:42 +00:00
Eric Peterson 3e54f6c436 Use @backstage/plugin-search-common instead of @backstage/search-common
Signed-off-by: Eric Peterson <ericpeterson@spotify.com>
2022-03-04 18:47:55 +01:00
Eric Peterson 37b9ff3b19 Update AuthorizedSearchEngine for stream-based indexing.
Signed-off-by: Eric Peterson <ericpeterson@spotify.com>
2022-03-02 17:29:18 +01:00
Eric Peterson 804c7906cf Update core search types to be stream-based
Signed-off-by: Eric Peterson <ericpeterson@spotify.com>
2022-03-02 17:26:56 +01:00
Fredrik Adelöw b3f3e42036 move IdentityClient.getBearerToken
Signed-off-by: Fredrik Adelöw <freben@gmail.com>
2022-02-09 10:38:12 +01:00
MT Lewis af4864b462 search-backend: deduplicate authorize calls
Signed-off-by: MT Lewis <mtlewis@users.noreply.github.com>
2022-01-26 19:38:01 +00:00
Vincenzo Scamporlino 9f394b231c Remove unused type
Signed-off-by: Vincenzo Scamporlino <me@vinzscam.dev>
2022-01-25 16:31:29 +01:00
Vincenzo Scamporlino 074f36cc43 Import DocumentTypeInfo from common
Signed-off-by: Vincenzo Scamporlino <me@vinzscam.dev>
2022-01-25 16:27:02 +01:00
Vincenzo Scamporlino 43f9d00c1e Add result-by-result filtering pagination test
Signed-off-by: Vincenzo Scamporlino <me@vinzscam.dev>
2022-01-25 16:27:02 +01:00
Vincenzo Scamporlino 77cbb31883 Fix comments
Signed-off-by: Vincenzo Scamporlino <me@vinzscam.dev>
2022-01-25 16:27:02 +01:00
Vincenzo Scamporlino e73ad9c89a Add AuthorizedSearchEngine tests
Signed-off-by: Vincenzo Scamporlino <me@vinzscam.dev>
2022-01-25 16:27:02 +01:00
MT Lewis c7ce3076d9 search-backend: skip result-by-result filtering when possible
Signed-off-by: MT Lewis <mtlewis@users.noreply.github.com>
2022-01-25 14:35:37 +00:00
Vincenzo Scamporlino 12b9fb8b34 search-backend: initialize variable rather than declaring type
Signed-off-by: MT Lewis <mtlewis@users.noreply.github.com>
2022-01-25 13:01:41 +00:00
Vincenzo Scamporlino bdbacb3b9c search-backend: handle missing type configuration in AuthorizedSearchEngine
The search-backend router ensures that all requested types are
configured, but since we don't know how this search engine will
be used, it's good to properly handle the case where an
unconfigured type is supplied.

Signed-off-by: MT Lewis <mtlewis@users.noreply.github.com>
2022-01-25 13:01:41 +00:00
Vincenzo Scamporlino 32e4645930 search-backend: validate page cursor when decoding
Signed-off-by: MT Lewis <mtlewis@users.noreply.github.com>
2022-01-25 13:01:41 +00:00
MT Lewis 634abc1a41 search: move DocumentTypeInfo to search-common
Signed-off-by: MT Lewis <mtlewis@users.noreply.github.com>
2022-01-25 13:01:40 +00:00
MT Lewis bbfbc755aa [wip] search-backend: result-by-result authorization
To do:
- add tests for AuthorizedSearchEngine
- update router tests
- add diff to changeset

Signed-off-by: MT Lewis <mtlewis@users.noreply.github.com>
2022-01-25 13:01:39 +00:00
MT Lewis cd6854046e search-backend: validate query string
Ensures that known query params accepted by the search endpoint have
the correct type after parsing

Signed-off-by: MT Lewis <mtlewis@users.noreply.github.com>
2022-01-18 16:53:22 +00:00
Iain Billett 651d1e7696 Don't use discovery API
Signed-off-by: Iain Billett <iain@roadie.io>
2021-12-15 11:50:44 +00:00
Iain Billett 4ce74edaf6 Fix standalone server
Signed-off-by: Iain Billett <iain@roadie.io>
2021-12-14 16:34:16 +00:00
Iain Billett a41fbfe739 Search result location filtering
Introduces filtering of unsafe search result locations.

Signed-off-by: Iain Billett <iain@roadie.io>
2021-12-14 14:43:45 +00:00
Fredrik Adelöw dcd1a0c3f4 Do not unpack arguments directly on exported items
Signed-off-by: Fredrik Adelöw <freben@gmail.com>
2021-12-07 19:42:10 +01:00
Otto Sichert b23bc7f9c3 Change default port of backend to 7007 due to MacOS Control Center update
Signed-off-by: Otto Sichert <git@ottosichert.de>
2021-11-18 16:45:57 +01:00
Patrik Oldsberg 8142a8ecb2 packages,plugins: add package documentation
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
2021-09-14 18:47:53 +02:00
Oliver Sand 532b4cc656 Rework search paging based on cursors
Signed-off-by: Oliver Sand <oliver.sand@sda-se.com>
2021-09-02 10:22:41 +02:00
Oliver Sand eb81a5fdfb Implement offset and limit based paging in search API
Signed-off-by: Oliver Sand <oliver.sand@sda-se.com>
2021-09-02 10:19:32 +02:00