* Add settings tab. Update style of component
* Structuring of files/components
* Updates to TexInput
* Add RadioGroup
* Last FE work
* FE Updates
* Webhooks Settings Tab
* Styling updates to webhooks
* Title/Description Update
* General Page done
* Collaborators WIP
* Styling updates
* Add custom message to updateProject
* Radio Group Same Height
* Styling updates to radio group. Disabled state
* Updates pre demo
* Updates to icons & post demo changes
* Major Updates
* Unsaved Changes Dialog
* Routing WIP
* Remove StatsBlock
* Auto update discussions on Private
* Routing/Redirects
* New input style
* Invite Dialog
* Fix mobile radiogroup
* Mobile Improvements
* Fix console warning
* Fix build
* Disabled States
* Fix console
* Unhide webhooks
* Updates from testing
* Responsive fixes
* Alignment fixes
* Fix textarea mobile height
* Updates to GraphQL Fragments
* Fix disabled state
* WIP Arrows for scroll
* Update PageTabs - broken
* Fix to PageTabs
* PageTab fix initial scroll
* Hide Scrollbar
* Better underline method
* Fix mobile initial underline
* Webhooks Empty State
* Fix input border
* Fix empty state
* Input Styling updates
* Remove mobile smaller text
* Update disabled state for disabled items
* Updates disabled sates on Settings Block
* Fix build. Disable Invite
* Fixes to invite permissions
* Disable role select when invite is disabled
* Small alignment fix
* Fix webhooks empty state
* cleaning up unnecessary vue files
* story improvement
* Remove DisabledMessage prop
* Fix disabled prop on Button
* Move team to Leave Fragment
* Remove unused Disabled Message props
* Add limit to graphql query
* Updates to BlockDiscussions
* add formatTriggers function to webhooks
* Remove md from button. Improved switch
* Update RadioGroup.stories.ts
* Update RadioGroup to use defineModel
* Various styling and copy updates
- More concise and accurate copy
- More readable
- Works better on mobile
* Updates to Invite Dialog
* Custom success Message
* Update slot names
* Remove md in TextInput. Set h-8 to default
* Changes from call with fabs
* Replace isOwner with composable
* Set SettingsBlock icon as optional
* Comments from PR
* Updates from PR
* Final Tidy Ups
* Fix Title/Description
* Fix spacing issue on Webhooks page
* Update borders and colors to align with Automate
Makes the same changes that I recently made to the unreleased Automate tab
* WEB-869
* Improve styling of radiogroup component
Better borders, hover effect, bigger checkmark icon, more subtle active background color, same across breakpoints.
* Adjust border styling of RadioGroup component
* Improve circle around checkmark in RadioGroup
* Split Tabs into 2 components
* Restyle overflow arrows
* Adjust gap and remove icons from vertical nav
Too many icons on the screen got distracting.
* Ensure active item visible
* Increase gap on vertical nav
* Update copy for Access and Discussions settings
* Input Tidyup
* WEB-877 update-collaborators-block
* Update inputs to new style
* Fix webhooks button hover state
* Fix comment copy
Appears in the access settings before embedding a model
* Remove hover shadow from search input on Dashboard
* Small change from Benjamin
* Change collaborators permissions copy
* Comments from PR #1
* Comments from PR #2
* Fix condition for EditableHeader
* Updates from CR
---------
Co-authored-by: Kristaps Fabians Geikins <fabis94@live.com>
Co-authored-by: Benjamin Ottensten <benjamin.ottensten@gmail.com>
* feat(frontend-2): deploy to docker-compose environment
- including DigitalOcean 1-click environments
- local docker compose environment deploys an nginx ingress
- builds and publishes docker-compose-ingress via CircleCI
- sets platform variable for ensuring correct runtime is built
- frontend-2 should connect to speckle server directly within the docker compose network
---------
Co-authored-by: Kristaps Fabians Geikins <fabis94@live.com>
* feat(server): WIP automations api
* feat(server): Automations Backend api WIP take 2
* feat(automations): add validation to automation run schema with zod
* fix(server): add zod to package.json
* fix(server): automations pr cleanup
* 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>
* feat: stopping subscriptions at >100 errors per minute
* chore: added explanatory comments
* added error state banner in fe1
* feat: error state banner in fe2
* Demonstration of bug to test when middleware added
- Adding middleware, even no-op, causes test to fail
* Make middleware async, but introduce delay.
Revert test back to original.
* Revert tests
* Add a 1ms sleep to the test to reduce likelihood of flakiness
* Rate limiting on all express endpoints using middleware
* Adds all configuration for existing rate limited endpoints
* It is helpful to add the package to yarn first
* Implements respectsLimits using Redis rate limiter
* Fix for test `Should rate-limit user creation`
- if rate limit error, post to `/auth/local/register` will return a 429 status code
* All rate limiting provided by new ratelimiter.ts
* Consolidate typescript interfaces
* Amend signature of function to require source to be passed in, and not try to guess it from the request
* Rename respectsLimits to isWithinRateLimits
* Throw within catch of Promise
* Replace rejectsRequestWithRatelimitStatusIfNeeded throughout code
* Sending rate limit response should deal with other types of error
- Sentry notified of the error
* Express middleware rate limits by a 3 second burst or a daily rate
- Provide action when generating 429 response
* Prevent DOS of Redis
* Add 'Retry-After' for all cases when responding with 429 status code
- default of 1 day, but dynamic based on available information
* Generate rate limiters once, on init
- Improved and consistent handling of exit from functions
- fixed environment variable names
* WIP Refactor rate limiting setup
Co-authored-by: Iain Sproat <iainsproat@users.noreply.github.com>
* WIP: fixed references, now runs but tests fail
* Use getSourceFromRequest where possible
* WIP: unit tests for rate limiter
* Unit tests for ratelimiter
* feat(IFC): WIP IFC parser improvements
* Revert "feat(IFC): WIP IFC parser improvements"
This reverts commit 093089a2c4.
* refactor authz, rate limiting middleware to global
Co-authored-by: Kristaps Fabians Geikins <fabis94@users.noreply.github.com>
Co-authored-by: Iain Sproat <iainsproat@users.noreply.github.com>
* invites tests fix
* fix(server ratelimiter): export public interfaces
* Unit test for rate limiter use in memory rate limiter
- in memory rate limiter is configured with zero limit by default
* Fixed#1219 (#1221)
* WIP: improve auth test for rate limiting user creation
* ci(circleci config): publishing was broken when main branch was tagged (i.e. for releases) (#1224)
* Gitignore CPU profiles
* All tests are now passing locally
* Fixed an issue in the frontend which was causing the views not to work. Fixed an issue with object selection camera animation where the dolly lerp factor was much too high for smooth animation (#1225)
* feat(structured logging): implements structured logging for backend (#1217)
* each log line is a json object
* structured logging allows logs to be ingested by machines and the logs to be indexed and queried addresses #1105
* structured logging allows arbitrary properties to be appended to each log line, and ingestion of logs to remain robust
* Structured logging provided by `pino` library
* Add `express-pino-logger` dependency
* Remove `debug`, `morgan`, and `morgan-debug` and replace with structured logging
* `console.log` & `console.error` replaced with structured logging in backend
* Remove `DEBUG` environment variable and replace with `LOG_LEVEL`
- Note that there is a test which reads from a logged line on `stdout`. This is not robust, it would be better to use the childProcess.pid to look up the port number.
* Log errors at points we explicitly send error to Sentry
* Amend indentation of a couple of log messages to align indentation with others
* Revert "feat(structured logging): implements structured logging for backend (#1217)" (#1227)
This reverts commit 84cb74e8b3.
* Move error to core/errors
- augmented typescript types moved to type-augmentations
* Added a missing wait in the screenshot generation loop (#1228)
* refactor(server rest api): remove duplicate rate limit requests
* feat(server rate limits): increase rate limits for the upload endpoints
* chore(server rate limits): final cleanup
Co-authored-by: Gergő Jedlicska <gergo@jedlicska.com>
Co-authored-by: Iain Sproat <iainsproat@users.noreply.github.com>
Co-authored-by: Dimitrie Stefanescu <didimitrie@gmail.com>
Co-authored-by: Kristaps Fabians Geikins <fabis94@users.noreply.github.com>
Co-authored-by: Kristaps Fabians Geikins <fabis94@live.com>
Co-authored-by: Alexandru Popovici <alexandrupopoviciioan@gmail.com>