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 2019 11 06 #902

Merged
merged 27 commits into from
Nov 7, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
010ca7e
Update docs. (#870)
fisx Oct 7, 2019
9130a37
Support HEAD requests for `/sso/initiate-bind` (#878)
fisx Oct 16, 2019
d972d2d
spar docs (#871)
fisx Oct 17, 2019
9575ca3
rename docker-ephemeral to docker_ephemeral (#880)
jschaul Oct 17, 2019
e5e2207
Store raw idp metadata with typed details in c* (#872)
fisx Oct 17, 2019
4a78cd2
Tweak invite script (#877)
fisx Oct 18, 2019
c507ed6
Cleanup (#879)
fisx Oct 21, 2019
1815fdb
Change SCIM documentation to actually use SAML Ids (#883)
arianvp Oct 21, 2019
8d0698d
stack: Split nix stuff into build deps and runtime deps. (#884)
fisx Oct 21, 2019
08dd742
Make gundeck handle AWS outages better. (#869)
fisx Oct 22, 2019
c4f7eb7
Fix detail in swagger docs (#885)
fisx Oct 22, 2019
ff67fc5
add issue template (#889)
jschaul Oct 24, 2019
32c6057
Update README (#887)
jschaul Oct 24, 2019
28f6dee
fix incorrect boolean logic (#890)
jschaul Oct 24, 2019
a95becd
benchmarking for O(n) function, remove expensive call from atomicModi…
fisx Oct 25, 2019
a6ed328
emit counter metric on soft/hard limit breached (#892)
jschaul Oct 26, 2019
51b25f7
Do not send events to team members to be deleted (#897)
jschaul Nov 4, 2019
268520c
http-client: bump to wire-20191104
Nov 4, 2019
13ff5a7
snapshots/wire-1.4.yaml: comment
Nov 4, 2019
2f314e6
gundeck: cleanup of deprecated code (#894)
jschaul Nov 5, 2019
c2a7960
snapshots/wire-1.4.yaml: typo
Nov 5, 2019
88857e5
Merge pull request #899 from wireapp/q3k/bump-http-client
Nov 6, 2019
407a8ae
Pin nixpkgs (#898)
arianvp Nov 6, 2019
80f1adc
throttle team deletion (#900)
jschaul Nov 6, 2019
83c30f9
Feature/gundeck limit parallel connections (#895)
jschaul Nov 6, 2019
7bc7686
stern add endpoint (#896)
jschaul Nov 6, 2019
4b58cf9
Changelog for release 2019-11-06
jschaul Nov 6, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 37 additions & 0 deletions .github/ISSUE_TEMPLATE/question-installation.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
---
name: Question-Installation
about: Question about my installation of wire-server
title: ''
labels: ''
assignees: ''

---

* [ ] I have seen https://docs.wire.com/ and https://github.com/wireapp/wire-server-deploy - the documentation there does not answer my question.

## My question:

## Context:

> Please provide sufficent context about your problem:

### How did you install wire-server?

> On kubernetes? With docker-compose? by manually compiling and running?

### How many servers are involved?

### What is installed on which servers?

> E.g Server A has component X and server B has component Y

### Provide details about networking

> We don't need to know any specific IP address, but it helps if you provide information whether an IP is ipv4 or ipv6, whether is is publicly reachable from the global internet or not, and if you installed any component of wire-server, which network interfaces are processes listening on?

### How did you configure wire-server?

> *Note: only the configuration from helm charts in wire-server-deploy is what we support, like [these defaults](https://github.com/wireapp/wire-server-deploy/blob/develop/charts/brig/values.yaml) applied [here](https://github.com/wireapp/wire-server-deploy/blob/develop/charts/brig/templates/configmap.yaml) in the case of `brig`. If you have used other configuration files, please post them (or the relevant parts of them).*
> Did you use the helm charts from wire-server-deploy?
> Did you use and adapt configuration files from wire-server? If so, which ones?
> Are there any overrides?
16 changes: 8 additions & 8 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -63,14 +63,14 @@ swagger-ui
deploy/services-demo/resources/templates/*
deploy/services-demo/conf/nginz/zwagger-ui/*

deploy/docker-ephemeral/build/airdock_base-all/
deploy/docker-ephemeral/build/airdock_base/
deploy/docker-ephemeral/build/airdock_fakesqs-all/
deploy/docker-ephemeral/build/airdock_fakesqs/
deploy/docker-ephemeral/build/airdock_rvm-all/
deploy/docker-ephemeral/build/airdock_rvm/
deploy/docker-ephemeral/build/dynamodb_local/
deploy/docker-ephemeral/build/smtp/
deploy/dockerephemeral/build/airdock_base-all/
deploy/dockerephemeral/build/airdock_base/
deploy/dockerephemeral/build/airdock_fakesqs-all/
deploy/dockerephemeral/build/airdock_fakesqs/
deploy/dockerephemeral/build/airdock_rvm-all/
deploy/dockerephemeral/build/airdock_rvm/
deploy/dockerephemeral/build/dynamodb_local/
deploy/dockerephemeral/build/smtp/

# Ignore cabal files; use package.yaml instead
*.cabal
24 changes: 24 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,27 @@
# 2019-11-06 #901

## Relevant for self-hosters

- New configuration options available (none mandatory). See #895 #900 #869

## Relevant for client developers

- Support HEAD requests for `/sso/initiate-bind` (#878)

## Bug fixes

- Do not send conversation delete events to team members upon team deletion (#897)
- Support SNI for bot registrations (by bumping http-client version) (#899)

## Internal changes

- Make gundeck handle AWS outages better. (#869, #890, #892)
- Improve performance by avoiding unbounded intra-service traffic spikes on team deletions (#900)
- Add optional native push connection throttling (#895)
- New backoffice/stern endpoint (#896)
- SAML: Store raw idp metadata with typed details in c* (#872)
- documentation/script updates

# 2019-09-30 #868

## Relevant for self-hosters
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -143,7 +143,7 @@ Integration tests require all of the haskell services (brig, galley, cannon, gun
Setting up these real, but in-memory internal and "fake" external dependencies is done easiest using [`docker-compose`](https://docs.docker.com/compose/install/). Run the following in a separate terminal (it will block that terminal, C-c to shut all these docker images down again):

```
deploy/docker-ephemeral/run.sh
deploy/dockerephemeral/run.sh
```

Then, to run all integration tests:
Expand Down
File renamed without changes.
File renamed without changes.
2 changes: 1 addition & 1 deletion deploy/services-demo/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ Use 2 different terminals and run:
```
# On terminal 1, start the dependencies. Note that you should turn up the max memory
# limit of docker. More on https://github.com/wireapp/wire-server/issues/326
deploy/docker-ephemeral/run.sh
deploy/dockerephemeral/run.sh
```

```
Expand Down
22 changes: 16 additions & 6 deletions deploy/services-demo/create_team_members.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@

set -e

ADMIN_UUID="a09e9521-e14e-4285-ad71-47caa97f4a16"
TEAM_UUID="9e57a378-0dca-468f-9661-7872f5f1c910"
BRIG_HOST="http://localhost:8082"
CSV_FILE="myfile.csv"
ADMIN_UUID="n/a"
TEAM_UUID="n/a"
BRIG_HOST="http://localhost:8080"
CSV_FILE="n/a"

USAGE="
This bash script can be used to invite members to a given team. Input
Expand All @@ -19,6 +19,17 @@ USAGE: $0
-t <team uuid>: ID of the inviting team. default: ${TEAM_UUID}
-h <host>: Base URI of brig. default: ${BRIG_HOST}
-c <input file>: file containing info on the invitees in format 'Email,UserName'. default: ${CSV_FILE}

If you tee(1) stdout, stderr of this script into a log file, you can
grep that log file for errors like this:

$ grep code out.log | grep email-exists # the most common case
$ grep code out.log | grep -v email-exists

If you are in a hurry, you may want to change the sleep(1) at the end
of the invite loop to less than a second. If you want to give up on
the first error, add an exit(1) where we check the $INVIDATION_ID.

"

# Option parsing:
Expand Down Expand Up @@ -73,8 +84,7 @@ do

if ( ( echo "$INVITATION_ID" | grep -q '"code"' ) &&
( echo "$INVITATION_ID" | grep -q '"label"' ) ) ; then
echo "Got an error, aborting: $INVITATION_ID"
exit 1
echo "failed inviting $USER_NAME <$EMAIL>: $INVITATION_ID"
fi

echo "Sleeping 1 second..." 1>&2
Expand Down
4 changes: 2 additions & 2 deletions deploy/services-demo/demo.sh
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ function check_prerequisites() {
nc -z 127.0.0.1 9042 \
&& nc -z 127.0.0.1 9200 \
&& nc -z 127.0.0.1 6379 \
|| { echo "Databases not up. Maybe run 'deploy/docker-ephemeral/run.sh' in a separate terminal first?"; exit 1; }
|| { echo "Databases not up. Maybe run 'deploy/dockerephemeral/run.sh' in a separate terminal first?"; exit 1; }
if [ "$docker_deployment" = "false" ]; then
test -f ${DIR}/../dist/brig \
&& test -f ${DIR}/../dist/galley \
Expand Down Expand Up @@ -127,7 +127,7 @@ function copy_nginz_configs() {
}

# brig,gundeck,galley use the amazonka library's 'Discover', which expects AWS credentials
# even if those are not used/can be dummy values with the fake sqs/ses/etc containers used (see deploy/docker-ephemeral/docker-compose.yaml)
# even if those are not used/can be dummy values with the fake sqs/ses/etc containers used (see deploy/dockerephemeral/docker-compose.yaml)
export AWS_REGION=${AWS_REGION:-eu-west-1}
export AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID:-dummy}
export AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY:-dummy}
Expand Down
18 changes: 9 additions & 9 deletions deploy/services-demo/docker-compose.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
networks:
docker-ephemeral_demo_wire:
dockerephemeral_demo_wire:
external: true

version: '2'
Expand Down Expand Up @@ -30,7 +30,7 @@ services:
- demo_wire_sqs:sqs
- demo_wire_smtp:smtp
networks:
- docker-ephemeral_demo_wire
- dockerephemeral_demo_wire

galley:
image: quay.io/wire/galley
Expand All @@ -50,7 +50,7 @@ services:
external_links:
- demo_wire_cassandra:cassandra
networks:
- docker-ephemeral_demo_wire
- dockerephemeral_demo_wire

gundeck:
image: quay.io/wire/gundeck
Expand All @@ -72,7 +72,7 @@ services:
- demo_wire_sqs:sqs
- demo_wire_localstack:sns
networks:
- docker-ephemeral_demo_wire
- dockerephemeral_demo_wire

cannon:
image: quay.io/wire/cannon
Expand All @@ -86,7 +86,7 @@ services:
- /configs/conf/cannon.demo-docker.yaml
working_dir: /configs
networks:
- docker-ephemeral_demo_wire
- dockerephemeral_demo_wire

cargohold:
image: quay.io/wire/cargohold
Expand All @@ -102,7 +102,7 @@ services:
external_links:
- demo_wire_s3:s3
networks:
- docker-ephemeral_demo_wire
- dockerephemeral_demo_wire

proxy:
image: quay.io/wire/proxy
Expand All @@ -116,7 +116,7 @@ services:
- /configs/conf/proxy.demo.yaml
working_dir: /configs
networks:
- docker-ephemeral_demo_wire
- dockerephemeral_demo_wire

spar:
image: quay.io/wire/spar
Expand All @@ -132,7 +132,7 @@ services:
external_links:
- demo_wire_cassandra:cassandra
networks:
- docker-ephemeral_demo_wire
- dockerephemeral_demo_wire

nginz:
image: quay.io/wire/nginz
Expand All @@ -157,4 +157,4 @@ services:
- /configs/conf/nginz/nginx-docker.conf
working_dir: /configs
networks:
- docker-ephemeral_demo_wire
- dockerephemeral_demo_wire
25 changes: 25 additions & 0 deletions deploy/services-demo/register_idp_internal.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
#!/usr/bin/env bash

set -e

# server-side variant of ./register_idp.sh; use if you have ssh access to one of your spar instances.
# usage: ./register_idp_internal.sh <admin id> <metadata file>

backend="http://localhost:8080"

metadata_file=$1
if [ ! -e "${metadata_file}" ]; then
echo "*** no metadata: '$1'"
exit 80
fi

z_user=$2
if [ ! -n "${z_user}" ]; then
echo "*** no z_user uuid"
exit 80
fi

which curl >/dev/null || ( echo "*** please install https://curl.haxx.se/ in your path."; exit 81 )
curl_exe=$(which curl)

${curl_exe} -is -v -XPOST ${backend}/identity-providers -H"Z-User: ${z_user}" -H'Content-type: application/xml' -d@"${metadata_file}"
26 changes: 23 additions & 3 deletions docs/reference/provisioning/scim-via-curl.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,11 @@ This page shows you how to communicate with the wire backend through
the [SCIM API](http://www.simplecloud.info/) by example. All examples
are [curl](https://curl.haxx.se/) (in bash syntax).

We support setting the handle and user name in wire (the thing with
`@` and the longer thing without `@`). There is also support for
setting rich-info. Group provisioning is planned, but the release
date hasn't been fixed yet.

If you want to dive into the backend code, start [reading here in our
backend](https://github.com/wireapp/wire-server/blob/develop/services/spar/src/Spar/Scim.hs)
and [our hscim library](https://github.com/wireapp/hscim).
Expand Down Expand Up @@ -87,19 +92,34 @@ A minimal definition of a user looks like this:
```bash
export SCIM_USER='{
"schemas" : ["urn:ietf:params:scim:schemas:core:2.0:User"],
"externalId" : "f8c4ffde-4592-11e9-8600-afe11dc7d07b",
"externalId" : "nick@example.com",
"userName" : "nick",
"displayName" : "The Nick"
}'
```

The `externalId` is used to construct a saml identity. Two cases are
currently supported:

1. `externalId` contains a valid email address. The SAML `NameID` has
the form `<NameID
Format="urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress">me@example.com</NameID>`.
2. `externalId` contains anything that is *not* an email address. The
SAML `NameID` has the form `<NameID
Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified">...</NameID>`.

*NOTE: It is important to configure your SAML provider to use
`nameid-format:emailAddress` or `nameid-format:unspecified`. Other
nameid formats are not supported at this moment*.
See also: https://github.com/wireapp/wire-server/blob/c507ed64a7d4f0af2bffe2f9c3eb4b5f89a477c0/services/spar/src/Spar/Scim/User.hs#L149-L158

We also support custom fields that are used in rich profiles in this
form [see {#RefRichInfo}](../user/rich-info.md):

```bash
export SCIM_USER='{
"schemas" : ["urn:ietf:params:scim:schemas:core:2.0:User", "urn:wire:scim:schemas:profile:1.0"],
"externalId" : "f8c4ffde-4592-11e9-8600-afe11dc7d07b",
"externalId" : "rnick@example.com",
"userName" : "rnick",
"displayName" : "The Rich Nick",
"urn:wire:scim:schemas:profile:1.0": {
Expand Down Expand Up @@ -155,7 +175,7 @@ up-to-date user present, just `GET` one right before the `PUT`.)
```bash
export SCIM_USER='{
"schemas" : ["urn:ietf:params:scim:schemas:core:2.0:User"],
"externalId" : "updated-user-id",
"externalId" : "rnick@example.com",
"userName" : "newnick",
"displayName" : "The New Nick"
}'
Expand Down
Loading