Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release 2022-01-18 #2055

Merged
merged 79 commits into from
Jan 19, 2022
Merged

Release 2022-01-18 #2055

merged 79 commits into from
Jan 19, 2022

Conversation

akshaymankar
Copy link
Member

Release notes

API changes

Features

Bug fixes and other updates

Documentation

Internal changes

Federation changes

pcapriotti and others added 30 commits December 13, 2021 11:57
* Do not purge bucket in fake-s3

With `purge: true` the reaper script will delete the bucket's content
when it runs, causing integration tests to fail occasionally.

This fixes a very frequent flake in CI integration tests (e.g.
https://bridge-ie-concourse.zinfra.io/builds/21651258).
* add first mapping

* further discovered tests.

* ormolu

* changelog entry

* fixup; add two tests

* Add another test

* fixup

* comments

* Add annotation for access token tests

* Add subsystem tags in ZAuth.hs

* Add subsystem tags

* add testmapping to test from documentation

* Update services/brig/test/integration/API/User/Auth.hs

* Update services/brig/test/integration/API/User/Auth.hs

* Update services/brig/test/integration/API/User/Auth.hs

* Update services/brig/test/integration/API/User/Client.hs

* Update services/brig/test/integration/API/User/Client.hs

* Update services/brig/test/integration/API/User/Handles.hs

* Update services/brig/test/integration/API/User/Auth.hs

* Update services/brig/test/integration/API/User/Client.hs

* Update services/brig/test/integration/API/User/Client.hs

* Update services/spar/test-integration/Test/Spar/Scim/AuthSpec.hs

* Update services/spar/test-integration/Test/Spar/Scim/UserSpec.hs

* hi ci

Co-authored-by: jschaul <[email protected]>
Co-authored-by: VictorWissink <[email protected]>
Co-authored-by: fisx <[email protected]>
Co-authored-by: Leif Battermann <[email protected]>
* added stand alone test for checking that sending messages with missing clients should fail

* naming

Co-authored-by: fisx <[email protected]>

* naming

Co-authored-by: fisx <[email protected]>

* description and more tags

* changelog

* wip

* test for point 1.

Co-authored-by: fisx <[email protected]>
* Add body argument to Service effect

Also remove use of polysemy-mock from ExternalServer tests.

* Remove dependency on polysemy-mocks

* Federator: initial impl of service streaming

* Remove unused function interpretService

* Forward Content-Type header of service calls

Co-authored-by: Sven Tennie <[email protected]>

* Use Codensity IO as a base monad for Service

This implements the bracketing pattern needed for closing a streaming
response at the level of the base monad, instead of introducing CPS for
the main polysemy actions.

* Formatting fixes

* Add basic response streaming primitive for HTTP2

Also use the same return type for the response as the one in
Servant.Client, namely `ResponseF`.

* RunStreamingClient instance for FederatorClient

* Create test for withHTTP2Request

* Fix CPS to Codensity in federator client

* Test federator client streaming

* Enable streaming in outward service

Co-authored-by: Sven Tennie <[email protected]>
…section

Add a paragraph about using VSCode in a direnv env
* Split cannon benchmarks and tests
* Moved integration test BSI tags to top
* More descriptive test names
* Fix bug in SFT chart: multi sft args are quoted

* Add changelog entry
* Improve documentation for tests per SQSERVICES-1127

Co-authored-by: fisx <[email protected]>

* Update the changelog

* Add a test: attempt to delete client via an incorrect password

* Fixup

Co-authored-by: fisx <[email protected]>
* added integration test and tag for BSI

* clean up

* More spar tests.

Co-authored-by: fisx <[email protected]>
* Add end-tags for test tag parser (BSI audit).

* Changelog.

* Fixup

* Make test identifiers unique-ish.

* Fixup

* Fixup
* schema-profunctor: better optional field API

* Add nullable combinator and tests
…am feature (#1993)

Internal endpoints for:

* set guest link team feature status
* get guest link team feature status
* set guest link team feature lock status
* Schema instances for Asset and related types

* Initial stub of cargohold servant API

* Servantify asset upload endpoint

* Add federation domain configuration to Cargohold

* Add examples to Asset swagger schema

* Formatting fixes

* Document postAsset errors in Swagger

* Add federation domain conf to kube-ci

* Migrate v3 dowload assets endpoint to Servant

* Migrate v3 delete asset endpoint to Servant

* Simplify implementation of ZLocalUser

* Simplify implementation of MultiVerb headers

* Migrate v3 token endpoints to Servant

* Add bot and provider asset APIs

* Specialise asset API for bots and providers

* Check Z-Type header for bot and provider requests

* Migrate legacy asset API to Servant

* Migrate internal status endpoints to Servant

* Use dependent kinds to define `PrincipalPrefix`

Thanks @isovector for suggesting this approach.

* Add servant prometheus metrics and remove wai

* Document new federationDomain option

* Add CHANGELOG entry about cargohold domain

* Improve federationDomain docs

Co-authored-by: jschaul <[email protected]>

* Formatting fixes

* Fix and simplify API paths by principal

* Support asset_token query parameter

Co-authored-by: Sven Tennie <[email protected]>
Co-authored-by: jschaul <[email protected]>
This reverts commit b3730cf.
Co-authored-by: Leif Battermann <[email protected]>
Co-authored-by: Matthias Fischmann <[email protected]>
* Move NowSpec into spar:lb

* Move DefaultSsoCodeSpec into spar:lib

* Move IdPRawMetadataStoreSpec to spar:lib

* Move ScimExternalIdStoreSpec to spar:lib

* Move IdPSpec into spar:lib

* Pend the flakey test

* CI

* make format

* Changelog
* Fix cabal install script

The script should create the `dist` directory, if it does not exist.
Note that streaming is not yet supported for the client. Therefore, when
a client for an endpoint that includes a streaming response is invoked,
and a streaming response is received, the client will just fail.
mdimjasevic and others added 25 commits January 5, 2022 10:19
- This is for making an HTTP IPv4-based request to an SFT server to get
a URL that clients can use
[FS-266] Fix SFT URL fecthing based on plain HTTP via IPv4
…ft_servers_all.json (#2030)

* Generalize getRandomSFTServers function
* Use SFTs provided at GET /sft_servers_all.json
* Polysemyize newConfig
* Fix how SFT environments are constructed
- This fixes the logic of how values around the sft_servers_all feature
  are computed. Now it only depends on either the SFT static URL or the
  SFT environment (the "sft" object in Brig's configmap.yaml).
- Also promote an SFT static URL integration into several unit tests
that provide better coverage
* Clean up helm charts and integration test configuration
Servantify Cannon Public endpoint

* Clean up
* Remove servant-websockets by inlining it and fixing a subtle bug
  regarding failing requests
* Better swagger doc inspired by MultiVerb
* Add changelog entry
* Update comment regarding the origin of WebSocketPending
* Fix review issues

Co-authored-by: Paolo Capriotti <[email protected]>
* Initial implementation of remote asset download

* Add RPC to check if an asset exists

* Download local asset for streaming

* Implement federation test for get-asset

Co-authored-by: Sven Tennie <[email protected]>

* Added get-asset test

* Test get-asset with public and private assets

* WIP: federation: test large asset download

* Test stream-asset

* Improve large asset test

* Test streaming invalid assets

* Introduce TestM in Cargohold integration tests

This ReaderT gives access to the HTTP manager and the Cargohold
endpoint. The wrapped monad is HTTP (to make requests).

* Reintroduce tasty resource for configuration file

This avoids having to read the configuration file before every test.

* Add more API client utilities in tests

* Use servant client for federation tests

* Set up federator mocking in cargohold

* Fix formatting

* Assert the content of a remote asset download

* Add changelog.d entry

* Test 404 when fetching remote asset

* Check federated requests in remote asset test

* Add config to cargohold integration chart

* Simple end2end remote asset download test

* Remove unused `uploadRandom` function

* fixup! Simple end2end remote asset download test

* Enable federation in cargohold helm chart

* Make asset public in end-to-end test

* Set hostname for instance with mocked federator

* fixup! Set hostname for instance with mocked federator

* Fix local domain in fed request assertions

* Fix cargohold test in federator

* Use `isJust`

Co-authored-by: Marko Dimjašević <[email protected]>

* Simplify implementation of `getAsset`

Co-authored-by: Marko Dimjašević <[email protected]>

* Remove redundant `$`

Co-authored-by: Marko Dimjašević <[email protected]>

Co-authored-by: Sven Tennie <[email protected]>
Co-authored-by: Marko Dimjašević <[email protected]>
The generic mechanism in Servant for defining API types is cumbersome
and slow to compile. This commit replaces the API record for the public
Galley API with a tree explicitly built using the `:<|>` operator.

To make up for the lack of record labels, it also introduces a `Named`
combinator for servant API types, which can be used to tag an endpoint
with a name (usually a symbol). The name must match the one with which
the handler is wrapped.
* Add failing test

* Initial fix for Cargohold streaming bug
* integration.yaml add missing backendTwo.carghold

* changelog
* Add federator failure test in cargohold

Also turn the exception being thrown by streaming clients into a proper Wai error.
* Add restund to CHARTS_INTEGRATION

* add changelog

* Add restund to CHARTS_RELEASE

* update changelog
* Replace servant-generic with Named in fed API

* Fix usage of fed API in brig

* Add domain to all federation endpoints

* Fix usage of fed API in galley

* Fix usage of fed API in cargohold

* Fix usage of fed API in federator
- The test makes sure that the server certificate has to have an
extension marking its purpose for server authentication
* cabal-run-integration.sh - remove indirection

* add changelog entry

* remove pattern argument

* change wording of comment
…cker images (#1852)

Also upgrade nixpkgs pin and stack

Co-authored-by: Akshay Mankar <[email protected]>
@akshaymankar akshaymankar changed the title Release 2022 01 18 Release 2022-01-18 Jan 18, 2022
CHANGELOG.md Outdated
Comment on lines 17 to 21
* Add qualified v4 endpoints for downloading and deleting assets. The upload API is still on the same path, but the asset object it returns now contains a `domain` field. Note that federated behaviour is still not implemented. (#2002)
* Enable downloading assets from a remote (federated) cargohold instance via the v4 API.
The content of remote assets is returned as stream with content type
`application/octet-stream`.
Please refer to the Swagger API documentation for more details. (#2004)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These sound like they could be merged into one line (together with the asset bugfix 2037 and 2038). The problem with the automated changelog is than the resulting changelog is of less good quality as multiple PRs together implementing one thing are not grouped into one changelog item, but many individual ones.

Not a blocker though. Some other things in this changelog could also be combined. (SFT stuff, a range of internal items)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's not really a problem with the automated changelog, just a mistake. Whoever wrote the second entry should have updated the first one as well. This is going to be true for any system where the changelog is updated incrementally at every commit. But honestly, I'm not sure why we're not just using the PR description here.

@akshaymankar akshaymankar merged commit b97b966 into master Jan 19, 2022
@akshaymankar akshaymankar deleted the release_2022_01_18 branch January 19, 2022 09:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.