Commit Graph

148 Commits

Author SHA1 Message Date
Gergő Jedlicska baeeace9d5 gergo/mailchimpOnboarding (#2098)
* feat: add mailchimp onboarding

* feat: add mailchimp onboarding journey

* feat: add mailchimp helm chart secrets

* refactor: move mailchimp id-s to plain helm values
2024-03-01 15:18:35 +01:00
Gergő Jedlicska dca0d8c325 gergo/serverMigration (#2067)
* feat: add server migration data to server info

* chore: gqlcodegen
2024-02-21 17:55:08 +01:00
Kristaps Fabians Geikins 48440e5b7c fix(server): rate limiter path resolution (#2042) 2024-02-13 15:08:48 +02:00
Iain Sproat d7402d8e66 fix(rate limiter): http verbs must align with served routes (#2038) 2024-02-12 16:02:04 +00:00
Iain Sproat 78891e869e fix(rate limiter): typescript linting issue (#2037) 2024-02-12 13:03:01 +00:00
Iain Sproat c5f5bf7992 fix(rate limiter): use correct paths (#2036) 2024-02-12 12:49:12 +00:00
Iain Sproat 5b95ddbefc feat(rate limiter): add custom rule for GET /auth/local and reduce allowance for all GET /auth/* rate limit rules (#2035) 2024-02-12 11:15:05 +00:00
Kristaps Fabians Geikins 37d51072fb feat(server): resource limits on app tokens (#1959)
* WIP new mutation arg

* limited resource token creation done

* token resource rule creation validation

* updated authorizeResolver implementation

* introduced resource access rule checks in authorizeResolver everywhere

* more checks added

* updated projects resolvers

* updated stream resolvers

* more checks added

* error page theme resolution fix

* WIP testss

* more tests

* implemented checks in REST auth pipeline

* REST API coverage & tests

* some tests fixed

* test fixess

* added tests

* feat(server): new automation result reporting scope (#1976)

* feat(server): new automation result reporting scope

* tests fix
2024-01-19 18:14:49 +01:00
Kristaps Fabians Geikins 5cd573355d feat(server): ability for apps to create new app tokens (#1942)
* /graphql endpoint fix

* app token creation seems to be done

* added tests

* more tests

* cleaned up TS annotations

* CR cleanup

* TS type fixes

* test fixes
2024-01-09 11:58:38 +02:00
andrewwallacespeckle 77d760c07f FE2 UI minor improvements (#1905)
* FE2 Fixes. WIP Description

* Reorder Options. Fix cookie expiry

* added ability to edit model description in backend

* Add Description to "Add Model" WIP

* Update Radio component so icons are part of label

* Fix to disable measure mode when user navigates to another control

* Add Description WIP

* Fix description returning null

* Add Header to versions page

* Checks for PR

* Fix build error

* Changes from CR

* Use ProjectPageProjectHeaderFragment

* Remove description from handleSubmit

---------

Co-authored-by: Kristaps Fabians Geikins <fabis94@live.com>
2023-12-15 13:23:15 +00:00
Gergő Jedlicska c10c2cbcc1 feat: add support for creating commit by branch id (#1915) 2023-12-13 13:49:25 +01:00
Kristaps Fabians Geikins ef37030287 fix(server): optimized commit download (#1913)
* fix(server): optimized commit download

* added test
2023-12-13 14:31:09 +02:00
Iain Sproat ced6eab7b0 feat(models): allow number of models retrieved per page to be configu… (#1868)
* feat(models): allow number of models retrieved per page to be configurable by environment variable
* Default to 100, as this was the existing value, but allow override via helm chart
2023-11-10 12:34:28 +00:00
Dimitrie Stefanescu 882391b5e1 Onboarding Speedup (#1855)
* feat(onboarding): ensures an onboarding project is always cloned when a user goes through onboarding; simplifies some of the logic & updates project naming

* feat(onboarding): improves onboarding stream cloning performance by optimising object duplication (local tests: from 25s to 270ms)

* feat(onboarding): minor changes logging + comments

* feat(onboarding): removes comments
2023-11-08 13:03:10 +00:00
Kristaps Fabians Geikins c21b587330 invite as role fix 2023-08-24 11:04:05 +03:00
Kristaps Fabians Geikins 069f64afc9 feat(fe1 & fe2): guest role (#1768)
* feat: user guest role switching in FE1

* removed stream create buttons

* fe1 done

* fe1 - specifying role in invite dialogs

* fe1 - bulk invites

* WIP FE2 changes

* fe1: allow role select condition fixes

* xtra limitations on createForOnboarding

* more invite creation validations

* no longer able to set guest as project owner in invite

* preparations for server role select in invite dialog

* team management dialog done

* server invite dialog updated

* hiding invite dialog

* fixed mocks
2023-08-24 09:30:09 +02:00
Gergő Jedlicska 4b071872c2 gergo/adminInviteList (#1761)
* feat(admin): add users email to the admin user list query

* feat(admin): WIP invite list

* feat(admin): fix server invites resolver typing

* fix(admin): slim down admin user list item data
2023-08-11 15:02:02 +03:00
Gergő Jedlicska ad0228c434 fix(monorepo): make sure to use 127.0.0.1 instead of localhost 2023-08-03 10:28:57 +02:00
Gergő Jedlicska ad1fba7fea Merge branch 'main' of github.com:specklesystems/speckle-server into gergo/serverGuest/main 2023-08-01 16:01:24 +02:00
Gergő Jedlicska 67260c2de4 Merge branch 'main' of github.com:specklesystems/speckle-server into gergo/adminFacelift 2023-08-01 15:27:51 +02:00
Gergő Jedlicska b06959b092 Merge pull request #1713 from specklesystems/gergo/objectInsertionChunking
feat(server objects): add insertion object chunking logic
2023-08-01 15:19:09 +02:00
Gergő Jedlicska 48588e5ee5 Merge branch 'main' of github.com:specklesystems/speckle-server into gergo/adminFacelift 2023-07-31 16:25:35 +02:00
Gergő Jedlicska 56555342e4 fix(server): fix admin gql resolver typing 2023-07-31 16:11:10 +02:00
Kristaps Fabians Geikins 951d86aa3e feat(server): cross-server onboarding stream sync + DL project CLI command (#1717)
* WIP

* cleanup and sync MVP kinda done

* WIP

* logging improved a bit

* fixed version sorting

* onboarding base stream creation works

* moved onboarding stream to use new base
2023-07-31 11:44:39 +03:00
Gergő Jedlicska 42d90b71cd rename string size calculator function to estimate 2023-07-28 17:55:24 +02:00
Gergő Jedlicska b8f0cee93e refactor(server objects): all object inserts use the memory optimized query 2023-07-28 17:43:44 +02:00
Gergő Jedlicska 42de692f50 Merge pull request #1732 from specklesystems/gergo/serverGuest/noGuestCanOwnStreams
feat(server): guests cannot own stream projects
2023-07-28 10:34:28 +02:00
Gergő Jedlicska 42190f42ee feat(server): user role change uses server info to get guest mode flag 2023-07-27 17:39:19 +02:00
Gergő Jedlicska 935ebaf60a feat(server): add guest mode as server info field 2023-07-27 17:30:52 +02:00
Gergő Jedlicska 424d07303f feat(server): guests cannot own stream projects 2023-07-27 16:42:44 +02:00
Gergő Jedlicska 2fa8a21754 feat(server): implement switch user role to guest 2023-07-27 13:30:32 +02:00
Gergő Jedlicska a86cd75395 fix(server): fix delete user sql query 2023-07-27 10:19:29 +02:00
Gergő Jedlicska a2bb36e43e refactor(server scopes): use constants for streams owner role 2023-07-26 14:08:47 +02:00
Gergő Jedlicska 6ea7aa8236 refactor roles to shared constants 2023-07-26 11:59:54 +02:00
Gergő Jedlicska 1ca6c73d18 feat(server admin): add FE2 admin page backend 2023-07-25 14:29:18 +02:00
Gergő Jedlicska a0bdea5774 chore(server objects): use units in variable names 2023-07-21 10:15:34 +02:00
Gergő Jedlicska b71dce61c0 feat(server objects): add insertion object chunking logic 2023-07-20 12:52:24 +02:00
Iain Sproat 9f0418893f chore(objects upload): improves response when error due to large object size (#1685)
* test(objects upload): adds a test for large object
* print object too large messages in response
* allows object maximum size to be configured
2023-07-12 10:57:59 +01:00
Gergő Jedlicska 075fb82907 add FE2 terminology to commit create webhook (#1657) 2023-06-28 09:17:55 +02:00
Dimitrie Stefanescu 7b037352df Dim/fe2/view changes (#1608)
* Fixed an issue with curves doubling up on geometry and also not being selectable after the last filtering changes. Added the options to make lines transparent. Added lines to diffing

* Points now are diff-able and support proper visual diff-ing. Visual diff filters are now chosen internally by the Differ. Fixed an issue with LineBatch and transparency

* Implemented PLAIN visual diff mode, where all objects keep their original materil, but opacity is manipulated via the diff time. Added API member function to switch between the PLAIN and COLORED visual diff modes

* feat(fe2): diffs wip

* Diffing fixes for instances and blocks. Things seem to be working fine, but there are some caveats. Additionally, some older issues were fixed and diffing now works better on all the rest of the streams

* feat(fe2): de-dupes diff results

* feat(fe2): wip diffs

* feat(fe2): diff transparency goes from 0 to 1

* feat(fe2): diff results display work

* feat(fe2): diff results display work

* feat(fe2): diff panel work

* feat(fe2): diff work: various display changes, coloring toggle, selection logic, selection object display wip

* feat(fe2): diff work: cleaned up old/new version, fixed minor bug in viewer diff time when swapping color mode

* feat(fe2): diff work: implements custom selection logic and selection display for modified objects (they come in pairs now)

* feat(fe2): diff minor fix in selected object display

* feat(fe2): wip; trying to fix diff order to be consistent (ordered by date)

* feat(fe2): wip, broken state right now

* feat(fe2): fixes scrollbars in viewer

* feat(fe2): fixes slider sync with diff time

* feat(fe2): WIP syncs of diffs (threads, refreshes, etc.)

* feat(fe2): diffing polish

* speckle shared fix

* speckle shared fix

* more bugfixes

* linter fixess

* more CI fixes

* fix viewerState serialization

* more linting fixess

* template fixes

* moving tailwind classes to theme package

* migrated away from diffString + simplified postSetup

* moved diff new/old version resolution to use state.resources

* cleanup

* updating url threadId & diff command correctly

* minor improvements to diff state

---------

Co-authored-by: AlexandruPopovici <alexandrupopoviciioan@gmail.com>
Co-authored-by: Kristaps Fabians Geikins <fabis94@live.com>
2023-06-08 11:26:19 +03:00
Kristaps Fabians Geikins 5c032bd7a8 fix(fe2): saving more concrete resourceIdString in comments 2023-05-30 09:17:02 +03:00
Kristaps Fabians Geikins ba7ef04ca3 fix(server): invites fixes + proper project()/stream() query error reporting (#1580)
* fix(server): invalid stream invite purge + better error handling

* fix(server): proper project/stream query error reporting

* undo env example change

* fix(server): fixed tests

* fix(fe-2): chromatic adjustments

* fix(fe-2): non-randomized stories
2023-05-17 17:17:09 +02:00
Kristaps Fabians Geikins b02a07e2b6 feat: Frontend 2.0 MVP 2023-05-08 10:47:01 +03:00
Iain Sproat 1515e2fee6 revert(ratelimit): defaults should remain as was prior to 2a35fe6 (#1528)
* Revert "fix(ratelimit): reduce /graphql limit based on incident (#1505)"
This reverts commit 2a35fe6178.
* Revert helm chart defaults to value in code
- fix typo
2023-04-13 15:24:51 +01:00
Iain Sproat 2a35fe6178 fix(ratelimit): reduce /graphql limit based on incident (#1505) 2023-04-07 12:49:45 +01:00
Kristaps Fabians Geikins 5d0fceaaf3 feat: proper sign up tracking (#1489)
* feat: register flag passed to fe

* feat: mixpanel tracking for all sign ups

* feat: utm first touch & last touch tracking

* feat(helm): Allows Environment Variable for MP to be configured
- default is enabled
- renames environment variable to ENABLE_MP

* feat(helm network policy): allowlist analytics.speckle.systems

---------

Co-authored-by: Iain Sproat <68657+iainsproat@users.noreply.github.com>
2023-03-30 12:21:59 +03:00
Iain Sproat 9ed1656541 fix(redis): Redis errors should be logged in a structured manner (#1389)
- errors should be logged to stdout in a structured format
- currently still throws errors which are ultimately unhandled, this matches existing behaviour
- Consolidate redis creation and error handling in a shared module
* remove unused 'redis' module, in favour of 'ioredis'
2023-02-22 09:13:05 +00:00
Iain Sproat c265ece433 feat(ratelimiting): allow auth endpoints to have custom rate limit (#1387) 2023-02-20 11:02:48 +00:00
Iain Sproat e1eba7b333 fix(logging): user input errors should be logged as info severity (#1370)
* fix(logging): user input errors should be logged as info severity
* Tidy the code to use a constant and a specific error type
* Attempting to remove the last admin user is invalid user input and should not be logged as error severity
* Missing passwords are user input errors
2023-02-15 12:50:35 +00:00
Iain Sproat 96bed71022 fix(logging): Improves error logging and pretty-prints logs during dev & test (#1255)
* Improves error logging
- use pino error logger correctly by passing in error as first argument

* monitor deployment: Filter logging at INFO level and above
* Use structured logging to create parameters for monitoring results
* Add structured logging to obj fileimport service
* Fileimport service, fix and improve logging
    - use child logger with additional context where possible
    - select appropriate logging level
- fix duplicated context in log statement
* REST endpoints, add context to structured logging and remove same context from message
* Webhook service provides context to bound logger to properly use structured logging
    - Pass bound logger containing context to `makeNetworkRequest`
    - do not log url, as it may contain a secret (like Discord's webhook urls), instead log the webhook Id
     - log error message when network call fails
* upload: make better use of structured logging when recording data
* pino-pretty when in dev or test mode
    - pino-pretty configured to send to stderr
* LOG_PRETTY env var
* Silence structured logging during testing
     - can not rely on determining the port number by reading from stdout/stderr
     - instead we determine which port is free, then create our server on that port
     - we then poll that port until the server is ready before commencing tests
* Allow puppeteer to install chromium
* Do not need to install chromium separately
2022-12-13 09:18:28 +00:00