Commit Graph

3139 Commits

Author SHA1 Message Date
Adam Rutkowski
672429b9d1 See if we can avoid exposing user id 2024-11-13 11:25:44 +01:00
Adam Rutkowski
e57e1b52a0 Ensure test setup provisions teams for people listing 2024-11-13 09:34:26 +01:00
Adam Rutkowski
a402eb298d Revert "Modify test utils to use teams test factories"
This reverts commit 5eb8754782.
2024-11-13 09:30:03 +01:00
hq1
05c47bd5d4
Merge branch 'master' into team-sync-journey-2 2024-11-12 15:38:21 +01:00
hq1
7cf61c9590
Add invitation_id column to guest_invitations schema (#4811)
Co-authored-by: Adrian Gruntkowski <adrian.gruntkowski@gmail.com>
2024-11-12 14:27:13 +00:00
Adam Rutkowski
4a273045fe Clean up 2024-11-12 14:35:27 +01:00
Adam Rutkowski
9322a853fb Remove old membership altering routes 2024-11-12 13:37:13 +01:00
Karl-Aksel Puulmann
3809ebf4ba
Channels: Read from new column, don't write (#4800)
* Read and write channels from `acquisition_channel` column

* Update csv tests
2024-11-12 12:30:11 +00:00
Adam Rutkowski
59bc5e8658 Test membership changes via new routes 2024-11-12 13:15:47 +01:00
Adam Rutkowski
4042a86059 Format 2024-11-12 12:34:05 +01:00
Adam Rutkowski
063e43da9f Test listing memberships 2024-11-12 12:33:38 +01:00
Adam Rutkowski
d5825c08df Test listing pending invitations 2024-11-12 12:22:27 +01:00
hq1
f7449a6b7d
Merge branch 'master' into team-sync-journey-2 2024-11-12 11:22:46 +01:00
Adrian Gruntkowski
9004a02f30
Set NOT NULL on teams.allow_next_upgrade_override (#4807) 2024-11-12 10:04:30 +00:00
hq1
fbafa9534f
Set default: false on allow_next_upgrade_override in Team and User scheams (#4808)
Co-authored-by: Adrian Gruntkowski <adrian.gruntkowski@gmail.com>
2024-11-12 09:51:25 +00:00
Adrian Gruntkowski
e31aeff721
Set default for teams.allow_next_upgrade_override schema column (#4799) 2024-11-12 09:05:16 +00:00
Karl-Aksel Puulmann
d84fab805c
Solve noisy warnings about a negative range was inferred for Date.range/2 (#4803)
* Solve noisy warnings about `a negative range was inferred for Date.range/2`

query.now is in utc but the date range was in the querys timezone

This is visible in the pattern on the graph:

* Add tests
2024-11-12 07:50:51 +00:00
Karl-Aksel Puulmann
fc83040ec1
Channels: Run TRUNCATE with alter_sync=2 (#4804)
ON CLUSTER fails since it tries to create conflicting
dll entries on each node.

Error:
```Cannot execute replicated DDL query, maximum retries exceeded.
(UNFINISHED)```
2024-11-12 07:24:23 +00:00
Karl-Aksel Puulmann
4aa7dec301
Channels: Migration to add materialized column, backfill code (#4798)
* Channels: Migration to add column, backfill code

This change adds `acqusition_channel` columns to events_v2 and
sessions_v2 tables. These columns are materialized - we don't ingest
into them directly. Instead they're calculated based on other columns.

The data migration changes now allow to also backfill the column.

Tested the ability to change definitions by changing the function
definitions and re-running the migration with backfill. Confirmed that
the underlying data changed as expected.

* quiet option

* Exclude data migrations from validation

* Migration consistency
2024-11-12 06:41:34 +00:00
Karl-Aksel Puulmann
3759db9b8c
Channels: Fix ON CLUSTER behavior (#4801)
* Channels: Fix cluster behavior

CREATE TABLE AS SELECT syntax did not work on cluster.

Instead, let's do a normal insert. For safety and to avoid timing
issues, ensure that INSERT waits for data to be inserted on all active
replicas.

* Proper replicated tables
2024-11-11 19:59:16 +00:00
Artur Pata
b22b35793c
Saved segments/create table (#4797)
* Add migration for Saved Segments

* Remove premature optimisation

* Format

* Refactor to explicit segment type
2024-11-11 16:31:43 +00:00
Adrian Gruntkowski
5573869958 Remove workaround for no invitation ID on guest invitation in list_people 2024-11-11 14:05:45 +01:00
Adrian Gruntkowski
21aa3dd53e Update team consistency check to account for guest invitation IDs 2024-11-11 14:02:10 +01:00
Adrian Gruntkowski
216707c7c4 Sync guest invitation invitation ID instead of team invitation in backfill 2024-11-11 13:55:35 +01:00
Adrian Gruntkowski
735ed32db2 Expose guest invitation's invitation ID in sites list 2024-11-11 13:54:45 +01:00
Adrian Gruntkowski
aa5e7a23d0 Sync guest invitation's invitation ID instead of team invitation 2024-11-11 13:54:24 +01:00
Adrian Gruntkowski
ba97b709e4 Add invitation_id to GuestInvitation schema and populate it 2024-11-11 13:52:44 +01:00
Adrian Gruntkowski
089a1d7518 Add invitation_id column to guest_invitations schema 2024-11-11 13:51:03 +01:00
Adrian Gruntkowski
a18fca0034 Use new teams read adapter for Settings > People view 2024-11-11 13:12:26 +01:00
Adrian Gruntkowski
d34ef4ce39 Implement teams read adapter for listing site members and invitees 2024-11-11 13:11:46 +01:00
Adrian Gruntkowski
511f90a315 Implement alternative routes for updating and removing membership 2024-11-11 13:11:07 +01:00
Adrian Gruntkowski
5eb8754782 Modify test utils to use teams test factories 2024-11-11 13:07:31 +01:00
Karl-Aksel Puulmann
d620432227
Channels: Speed up clickhouse calculations (#4789)
* Fix interpolation in data_migration.ex

* Speed up calculating acquisition_channel in clickhouse

The previous `has` queries proved to be problematic and causing a lot of
CPU overhead.

Benchmarked via this query:

```sql
SELECT
  channel,
  count(),
  countIf(acquisition_channel(referrer_source, utm_medium, utm_campaign, utm_source, click_id_param) = channel) AS matches
FROM events_v2
WHERE timestamp > now() - toIntervalHour(48)
GROUP BY channel
ORDER BY count() desc
```

Before this fix:
```
query_duration_ms:                                                57960
DiskReadElapsedMs:                                                374.712
RealTimeMs:                                                       2891200.667
UserTimeMs:                                                       2704024.783
SystemTimeMs:                                                     1693.265
OSCPUWaitMs:                                                      90.253
OSCPUVirtualTimeMs:                                               2705709.58
```

After this fix:
```
query_duration_ms:                                                4367
DiskReadElapsedMs:                                                454.356
RealTimeMs:                                                       213892.207
UserTimeMs:                                                       199363.485
SystemTimeMs:                                                     1479.364
OSCPUWaitMs:                                                      13.739
OSCPUVirtualTimeMs:                                               200837.37
```

Note that the new tables are not tracked in our schema as usual as
they're pretty much temporary tables to create the dictionary without
needing to upload files to clickhouse servers.

* CREATE OR REPLACE table with SELECT
2024-11-11 10:39:51 +00:00
Uku Taht
98bc3e7554
Channels in dashboard CSV export (#4787)
* Add channels.csv to dashboard CSV export

* Feature flag channels in CSV

* Disable credo
2024-11-11 09:31:57 +00:00
ruslandoga
3af8f24d34
update mua (#4794) 2024-11-11 07:06:48 +00:00
hq1
78a95eb8fc
Extract schema transitions under delegated namespace (#4788)
* Extract schema transitions under delegated namespace

* fixup
2024-11-07 11:27:27 +00:00
Adrian Gruntkowski
799e163eef
Do not attempt preloading user on guest invitation (#4790) 2024-11-07 11:24:42 +00:00
Adrian Gruntkowski
e1cdbfb9ac
Fix team struct sync and pruning team memberships/invitations on site transfer (#4786)
* Ensure `accept_traffic_until` is set with `trial_expiry_date` for teams

* Fix pruning guest memberships and invitations during site transfer
2024-11-07 10:53:42 +00:00
dependabot[bot]
58ad39b5cc
Bump poseidon/wait-for-status-checks from 0.5.0 to 0.6.0 (#4741)
Bumps [poseidon/wait-for-status-checks](https://github.com/poseidon/wait-for-status-checks) from 0.5.0 to 0.6.0.
- [Release notes](https://github.com/poseidon/wait-for-status-checks/releases)
- [Commits](https://github.com/poseidon/wait-for-status-checks/compare/v0.5.0...v0.6.0)

---
updated-dependencies:
- dependency-name: poseidon/wait-for-status-checks
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-06 18:48:51 +00:00
dependabot[bot]
c763709588
Bump thollander/actions-comment-pull-request from 2.5.0 to 3.0.1 (#4770)
Bumps [thollander/actions-comment-pull-request](https://github.com/thollander/actions-comment-pull-request) from 2.5.0 to 3.0.1.
- [Release notes](https://github.com/thollander/actions-comment-pull-request/releases)
- [Commits](https://github.com/thollander/actions-comment-pull-request/compare/v2.5.0...v3.0.1)

---
updated-dependencies:
- dependency-name: thollander/actions-comment-pull-request
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-06 18:39:44 +00:00
MorgeMoensch
fb45e64539
Add missing question mark on login page (#4783)
* Fix typo on login form to unify login and register

* Update CHANGELOG.md
2024-11-06 16:10:34 +00:00
Adrian Gruntkowski
342c3e5513
Finish moving /sites LV reads to team schemas behind FF (#4777)
* Implement user owning existing and pending sites check for teams

* Add predicate checking whether user has any existin or pending sites via teams

* Check need to upgrade for sites list via teams when FF is up

* Backfill teams for users on trial without a team

* Create team for users who register with trial started

* Replicate trial start logic on user create in team factories

* Make `ensure_can_take_ownership` in sites LV work via teams too

* Dispatch feature access check from `/sites` to Teams-schema reads

---------

Co-authored-by: Adam Rutkowski <hq@mtod.org>
2024-11-06 13:12:34 +00:00
Karl-Aksel Puulmann
eed21a0138
APIv2: Remove cruft (v2 flag, experimental_reduced_joins) (#4780)
* Remove query.v2 flag

This was originally used for making sure queries use the right table as
migrating to APIv2. This is no longer needed

* Remove experimental_reduced_joins flag
2024-11-06 12:08:20 +00:00
Karl-Aksel Puulmann
dbf7a099a3
Acquisition channels: Functions to calculate channels in clickhouse (#4701)
* Expose a few data migration functions, add quiet option to do_run

* Create functions and test acquisition channel logic in clickhouse

Tests were lifted from test/plausible_web/controllers/api/external_controller_test.exs

* Clean up test code a bit

* Property test for acquisition channels

* Handle empty strings properly in reference implementation

* Fix spelling, minor issues

* Revert "Property test for acquisition channels"

This reverts commit 3fa0e0e4eb.

* Only test clickhouse functions

* Solve minor code issue

* update channels logic

* Revert "Only test clickhouse functions"

This reverts commit e12784031a.

* Add more tests

* Add small result assertion

* Make query options explicit in data migrations

* Move multi-query running logic to within datamigration lib

* Unbreak numeric ids migration

* Named params directly to Clickhouse

* Update reference test implementation

---------

Co-authored-by: Uku Taht <uku.taht@gmail.com>
2024-11-06 11:27:02 +00:00
Uku Taht
c130c2a751
Fixes for ?source and ?ref params (#4781)
* Store `?source` and `?ref` params in `utm_source` field

* Remove dead code
2024-11-06 11:12:41 +00:00
Adrian Gruntkowski
c0a8aa025c
Clean up guest invitations selectively after accepting (#4778) 2024-11-06 08:56:48 +00:00
Adrian Gruntkowski
1e1a4ab35b
Get rid of memberships prosthetic for Teams.Sites.list_with_invitations (#4764)
* Get rid of memberships prosthetic for `Teams.Sites.list_with_invitations`

* Fix query in newly introduced teams backfill script
2024-11-05 09:44:27 +00:00
Karl-Aksel Puulmann
af5eb720db
Release breakdown_comparisons_ui flag (#4774) 2024-11-05 09:13:22 +00:00
Adrian Gruntkowski
dac9e3a0f0
Add removing guest memberships with mismatched team to backfill script (#4776) 2024-11-05 09:05:52 +00:00
Karl-Aksel Puulmann
1048967ac5
Channels: Write click_id_param column (#4704)
* Add migration for click_id_source

* click_id_param

* Write click_id_source column

* Add columns to schema

* click_id_param
2024-11-05 08:04:04 +00:00