Commit Graph

2721 Commits

Author SHA1 Message Date
George Gevoian
8b1d1c5d25 (core) Add more audit logging data/events
Summary:
Adds a few additional audit events and enhances audit logging
to capture more data (request origin, active org, user type).

Test Plan: Server and manual tests.

Reviewers: jarek

Reviewed By: jarek

Subscribers: jarek

Differential Revision: https://phab.getgrist.com/D4348
2024-09-23 12:57:35 -04:00
Paul Fitzpatrick
126db2f91a (core) updates from grist-core 2024-09-23 09:07:47 -04:00
Jarosław Sadziński
11e22dd84e (core) Renaming column before cursor moves
Summary:
Fix for a bug. If a user tried to trigger the rename
column action by changing a cursor position, the wrong column
was renamed.

Test Plan: Added new test

Reviewers: georgegevoian

Reviewed By: georgegevoian

Differential Revision: https://phab.getgrist.com/D4352
2024-09-20 14:54:37 +02:00
Jarosław Sadziński
dd22ebdaf0 (core) Handling shift+enter on ace editor
Summary:
Shift+Enter doesn't work on ace editor when suggestions
are shown. Propobly this is bug in the ace-editor.

Test Plan:
Manual:
Start ace editor, and trigger auto-completion menu.
Pressing shift+enter should add new line (with proper indention). Previously
it did nothing.

Reviewers: georgegevoian

Reviewed By: georgegevoian

Differential Revision: https://phab.getgrist.com/D3625
2024-09-19 17:07:34 +02:00
George Gevoian
ce0c912a18 (core) Update failing tests
Summary:
Test suites may now optionally set a "tutorial" flag to
automatically scaffold a sample tutorial document before
the tests run, and tear it down after.

This is used to fix a failing staging deployment test due
to a mismatch between local and staging deployments; local
deployments did not have a sample tutorial document set up,
while staging/prod deployments did.

Test Plan: Existing tests.

Reviewers: jarek

Reviewed By: jarek

Differential Revision: https://phab.getgrist.com/D4354
2024-09-19 09:21:00 -04:00
Spoffy
4023e8b306
Bumps mocha-webdriver to 0.3.4 (#1214)
Enables additional logging in CI.
2024-09-18 23:22:33 +01:00
Jarosław Sadziński
e97a45143f (core) Adding UI for reverse columns
Summary:
- Adding an UI for two-way reference column.
- Reusing table name as label for the reverse column

Test Plan: Updated

Reviewers: georgegevoian

Reviewed By: georgegevoian

Differential Revision: https://phab.getgrist.com/D4344
2024-09-18 12:07:21 +02:00
George Gevoian
da6c39aa50 (core) Add new home page cards
Summary:
New cards on the home page link to useful resources like the welcome
video, tutorial, webinars, and the Help Center. They are shown by
default to new and exisiting users, and may be hidden via a toggle.

Test Plan: Browser tests.

Reviewers: jarek

Reviewed By: jarek

Differential Revision: https://phab.getgrist.com/D4340
2024-09-17 17:32:10 -04:00
Spoffy
839bf63b9f (core) Fixes compilation issues from grist-core
Test Plan: SaaS CI

Reviewers: paulfitz

Reviewed By: paulfitz

Differential Revision: https://phab.getgrist.com/D4351
2024-09-17 20:57:54 +01:00
Jarosław Sadziński
5b26c84f0d (core) Editing summary columns widget options
Summary:
- Allowing changing description and all widget options (except choices) for summary columns
- Making text error in toast notification selectable

Test Plan: Added new tests

Reviewers: georgegevoian

Reviewed By: georgegevoian

Subscribers: georgegevoian

Differential Revision: https://phab.getgrist.com/D4346
2024-09-17 09:37:47 +02:00
Leslie H
02cfcee84d
Make changes required for Desktop FS updates (#1099)
Make a set of changes required for Desktop FS improvements, see
https://github.com/gristlabs/grist-desktop/pull/42

---------

Co-authored-by: Spoffy <contact@spoffy.net>
Co-authored-by: Spoffy <4805393+Spoffy@users.noreply.github.com>
2024-09-16 21:01:58 -04:00
Paul Fitzpatrick
938bb0666e (core) updates from grist-core 2024-09-16 08:47:08 -04:00
Paul Fitzpatrick
a45a7f9fda
switch default LLM from a model that is going away (#1202)
* switch default LLM from a model that is going away

If an api key is provided, Grist can use an LLM as an assistant
for writing formulas. The LLM can be self-hosted or an external
service. The default external service is OpenAI. This commit
freshens the default model used, if this feature is enabled,
since the existing one is going away. Benchmarking suggests the
results are generally better, though not dramatically so.

The feature of falling back on a longer context model is no longer
as important, but is retained since it could be useful for self-hosters.

* update long context model tests
2024-09-13 14:56:42 -04:00
Dmitry S
99d0b9db78 (core) Fix bug with renames when there are dropdown conditions and some columns have null widgetOptions
Summary: Error manifests as "Application Error: [Sandbox] TypeError the JSON object must be str, bytes or bytearray, not NoneType"

Test Plan: Added a test case.

Reviewers: georgegevoian

Reviewed By: georgegevoian

Subscribers: georgegevoian

Differential Revision: https://phab.getgrist.com/D4347
2024-09-13 07:39:33 -04:00
Jarosław Sadziński
d22d7a4ac8 (core) Fixing print preview bugs
Summary:
- Hiding pinned filters
- Switch editor (for toggle column) renders itself as checkbox on print preview

Test Plan: Manual

Reviewers: georgegevoian

Reviewed By: georgegevoian

Subscribers: georgegevoian

Differential Revision: https://phab.getgrist.com/D4345
2024-09-13 11:13:39 +02:00
George Gevoian
3e22b89fa2 (core) Add audit logging machinery
Summary:
Adds machinery to support audit logging in the backend.

Logging is currently implemented by streaming events to external HTTP
endpoints. All flavors of Grist support a default "grist" payload format,
and Grist Enterprise additionally supports an HEC-compatible payload format.

Logging of all audit events will be added at a later date.

Test Plan: Server tests.

Reviewers: paulfitz

Reviewed By: paulfitz

Differential Revision: https://phab.getgrist.com/D4331
2024-09-12 12:13:41 -04:00
Jarosław Sadziński
14718120bd (core) Allowing installation admins to manage billing.
Summary:
Permissions for admin billing endpoints were changed

- Support user can't use admin subscription endpoints
- Installation admin (as support user) can see billing details on any site
- Installation admin (unlike support user) can replace subscription (or attach payment) on any site, regardless permissions

Installation admin is any user that belongs to a special `admin` org. If `admin` org is not defined, it defaults to
support user. In that case, with this diff, the support user receives admin's permissions, and now can replace subscription on
any site (without being billing manager).

Test Plan: Added new test

Reviewers: dsagal, paulfitz

Reviewed By: dsagal, paulfitz

Subscribers: dsagal

Differential Revision: https://phab.getgrist.com/D4338
2024-09-11 23:06:47 +02:00
Dmitry
43f7fbeff4
Fix DateEditor test (newly moved to grist-core) by adding a sinon.js symlink to static/ (#1206) 2024-09-11 16:36:34 -04:00
Jarosław Sadziński
1d2cf3de49 (core) Adding backend for 2-way references
Summary:
Adding support for 2-way references in data engine.

- Columns have an `reverseCol` field, which says "this is a reverse of the given column, update me when that one changes".
- At the time of setting `reverseCol`, we ensure that it's symmetrical to make a 2-way reference.
- Elsewhere we just implement syncing in one direction:
  - When `reverseCol` is present, user code is generated with a type like `grist.ReferenceList("Tasks", reverse_of="Assignee")`
  - On updating a ref column, we use `prepare_new_values()` method to generate corresponding updates to any column that's a reverse of it.
  - The `prepare_new_values()` approach is extended to support this.
  - We don't add (or remove) any mappings between rows, and rely on existing mappings (in a ref column's `_relation`) to create reverse updates.

NOTE This is polished version of https://phab.getgrist.com/D4307 with tests and 3 bug fixes
- Column transformation didn't work when transforming RefList to Ref, the reverse column became out of sync
- Tables with reverse columns couldn't be removed
- Setting json arrays to RefList didn't work if arrays contained other things besides ints
Those fixes are covered by new tests.

Test Plan: New tests

Reviewers: georgegevoian, paulfitz, dsagal

Reviewed By: georgegevoian, paulfitz

Subscribers: dsagal

Differential Revision: https://phab.getgrist.com/D4322
2024-09-11 22:31:36 +02:00
Jarosław Sadziński
0ca70e9d43 (core) Fixing lock issues and reverting back to single connection.
Summary:
Removing `createNewConnection` method that was used in tests to create a
"scoped" version of `HomeDbManager`. Currently this won't work as there are
many methods (like `Users.findOne`) that are using the default (global) connection.

Additionally `HomeDBManger` had couple of bugs that were causing locks, which
manifested themselves in postgresql tests (that are not serializing transactions).
Repository methods like `Users.findOne` or `user.save()`, even when wrapped in
transaction were using a separate connection from the pool (and a separate
transaction).

Some tests in `UsersManager` are still skipped or refactored, as sinon's `fakeTimers`
doesn't work well with postgresql driver (which is using `setTimout` a lot).

Date mappings in `User` entity were fixed, they were using `SQLite` configuration only,
which caused problems with postgresql database.

Test Plan: Refactored.

Reviewers: paulfitz

Reviewed By: paulfitz

Subscribers: paulfitz

Differential Revision: https://phab.getgrist.com/D4342
2024-09-11 20:48:52 +02:00
Jarosław Sadziński
51acc9a8cc (core) Allowing non-owner managers to add other managers
Summary:
Billing managers can now add other billing managers. Before
only managers with owner access could do that.

Test Plan: Added test

Reviewers: georgegevoian

Reviewed By: georgegevoian

Differential Revision: https://phab.getgrist.com/D4339
2024-09-09 18:33:03 +02:00
Paul Fitzpatrick
963e26dda6 (core) updates from grist-core 2024-09-09 09:14:43 -04:00
Pierre-Mary GIMENEZ GUILLEM
7b09939360
Translated using Weblate (French)
Currently translated at 99.7% (1375 of 1378 strings)

Translation: Grist/client
Translate-URL: https://hosted.weblate.org/projects/grist/client/fr/
2024-09-07 16:09:22 +02:00
Florent
243369513f
Don't throttle /api/docs/{docId}/force-reload #1107 (#1197)
When a document has too many requests, one may want to force a document to be reopened. However, the /force-reload endpoint may raise a 429 (TOO_MANY_REQUESTS) error, because it uses the throttled middleware.
2024-09-05 16:36:05 -04:00
Florent
16ebc32611
Add tests for UsersManager (#1149)
Context

HomeDBManager lacks of direct tests, which makes hard to make rework or refactorations.
Proposed solution

Specifically here, I introduce tests which call exposed UsersManager methods directly and check their result.

Also:

    I removed updateUserName which seems to me useless (updateUser does the same work)
    Taking a look at the getUserByLogin methods, it appears that Typescirpt infers it returns a Promise<User|null> while in no case it may resolve a nullish value, therefore I have forced to return a Promise<User> and have changed the call sites to reflect the change.

Related issues

I make this change for then working on #870
2024-09-05 16:30:04 -04:00
Dmitry S
d35574c198 (core) Add support for locales to DateEditor and DateTimeEditor.
Summary:
Addresses request https://github.com/gristlabs/grist-core/issues/443

The bootstrap-datepicker used for the Date/DateTime dropdown calendar does
support a number of locales. This diff loads them on-demand, if available,
based on the document's locale setting.

Also:
- Improves NewBaseEditor typings, reduces some casts, adds comments.
- Converts DateEditor and DateTimeEditor to typescript.
- Moves DateEditor nbrowser test to core.

Test Plan: Added a test case for locales to DateEditor test.

Reviewers: jarek

Reviewed By: jarek

Differential Revision: https://phab.getgrist.com/D4335
2024-09-05 08:35:04 -04:00
Jordi Gutiérrez Hermoso
356f0b423e workflows: disable the daily build on forks (closes #1168)
We'll now need to define this repo variable on our clone in order to make this run.
2024-09-04 17:18:06 -04:00
Dmitry S
08b91c4cb7 (core) Fix serialization of values derived from primitive types, like IntEnum.
Summary:
There is a range of types that -- when returned from formulas -- used to cause
bad errors (that looked like a data engine crash and were reported as "Memory
Error") because they looked like primitive types but were not marshallable. For
example, IntEnum.

We now encode such values as the primitive type they are based on.

Test Plan:
- Added a unittest that encode_object() now handles problematic values.
- Added a browser test case that problematic values are no longer causing errors.

Reviewers: jarek

Reviewed By: jarek

Differential Revision: https://phab.getgrist.com/D4336
2024-09-04 16:51:51 -04:00
Vincent Viers
f0d0b9120b
Fix: formula assistant translations (#1192)
These strings are translated under the `FormulaAssistant.*` keys in weblate
2024-09-04 11:11:22 -04:00
jordigh
54bee97cb6
v1.1.18 (#1196) 2024-09-04 10:05:38 -04:00
Florent
b1a9e5f0da
OIDC: allow configuring the request timeout (#1177)
Add IdP timeout, controlled by env var GRIST_OIDC_SP_HTTP_TIMEOUT

---------

Co-authored-by: atropos <sv7n@pm.me>
2024-09-03 17:10:18 -04:00
Jordi Gutiérrez Hermoso
16d246094b build: update grist-ee version 2024-09-03 16:46:55 -04:00
jordigh
5fec2ad826
workflows: fix yaml indentation (#1193) 2024-09-03 14:03:51 -04:00
George Gevoian
437aaac6d2
Pin browser tests to Chrome 127 (#1187) 2024-09-03 11:36:49 -04:00
Paul Fitzpatrick
994c8d3faa (core) updates from grist-core 2024-09-03 10:01:20 -04:00
George Gevoian
5e4140fcae (core) Support bare links in Markdown cells
Summary:
Also tweaks the bottom margin of a few Markdown
element types when they are the last element in a
cell, and fixes an alignment issue with list items
containing paragraphs.

Test Plan: Browser and manual tests.

Reviewers: jarek

Reviewed By: jarek

Subscribers: jarek

Differential Revision: https://phab.getgrist.com/D4334
2024-09-03 02:23:57 -04:00
xabirequejo
799ade7aa2
Translated using Weblate (Basque)
Currently translated at 99.8% (1376 of 1378 strings)

Translation: Grist/client
Translate-URL: https://hosted.weblate.org/projects/grist/client/eu/
2024-09-01 14:09:14 +00:00
Nicolas Imbert
f5519e6344
Translated using Weblate (French)
Currently translated at 98.9% (1364 of 1378 strings)

Translation: Grist/client
Translate-URL: https://hosted.weblate.org/projects/grist/client/fr/
2024-08-30 12:09:14 +02:00
Jordi Gutiérrez Hermoso
80f8168cab (core) DocLimits: display days remaining instead of days of grace period
Summary:
Before this change we would always say there are 14 days remaining,
regardless of how many actually are remaining. Let's pass around a
different `dataLimitsInfo` object that also reports the number of days
remaining.

Test Plan: Ensure the test suite passes.

Reviewers: georgegevoian

Reviewed By: georgegevoian

Differential Revision: https://phab.getgrist.com/D4332
2024-08-29 22:51:49 -04:00
Roman Holinec
bbb9071175
Translated using Weblate (Slovak)
Currently translated at 100.0% (1378 of 1378 strings)

Translation: Grist/client
Translate-URL: https://hosted.weblate.org/projects/grist/client/sk/
2024-08-29 06:09:16 +00:00
Dmitry S
8da89b0a3d (core) Improve behavior to update current time, to allow inactive docs to shut down, and reduce spurious errors.
Summary:
- When sandbox is down, report failing UpdateCurrentTime calls as warnings instead of errors.
- When applying system actions (such as updating current time), don't treat
  them as user activity for the purpose of keeping the doc open.

Test Plan: Added a test case for the fixed behavior.

Reviewers: georgegevoian

Reviewed By: georgegevoian

Differential Revision: https://phab.getgrist.com/D4324
2024-08-29 01:22:57 -04:00
George Gevoian
5e1fa4c74a (core) Revert D4302
Summary:
This revision introduced a regression when modifying view
layouts, leaving documents with layouts having a broken
appearance in the client.

Test Plan: Existing tests.

Reviewers: dsagal

Reviewed By: dsagal

Differential Revision: https://phab.getgrist.com/D4330
2024-08-27 23:13:01 -04:00
Florent
76fcfd733e
Small: Log requests body (#913)
Add body in log requests.

GRIST_LOG_SKIP_HTTP is a badly named environment variable and its
expected values are confusing (to log the requests, you actually have to
set its value to "", and setting to "false" actually is equivalent to
setting to "true").

We deprecate this env variable in favor of GRIST_LOG_HTTP which is more
convenient and understandable:
 - by default, its undefined, so nothing is logged;
 - to enable the logs, you just have to set GRIST_LOG_HTTP=true

Also this commit removes the default value for GRIST_LOG_SKIP_HTTP,
because we don't have to set it to "true" to actually disable the
requests logging thanks to GRIST_LOG_HTTP. FlexServer now handles
the historical behavior for this deprecated variable.

---------

Co-authored-by: Jonathan Perret <j-github@jonathanperret.net>
2024-08-27 06:38:35 -04:00
Dmitry
8b48d1bc33
Make "grist-local-testing" docker-compose example work out of the box (#1165)
* Maintain ./persist subdirectory using a dummy .gitkeep file
* Have PERSIST_DIR default to it
* Update README with more detail how to run and info about PERSIST_DIR
2024-08-23 17:50:08 -04:00
Dmitry
5e1709b206
Update CONTRIBUTING.md to link to issue templates (#1148)
Point to the new issue-creation page, now that we have templates for new issues.
2024-08-23 14:09:31 -04:00
George Gevoian
292c894b93 (core) Add Markdown cell format
Summary:
Text columns can now display their values as Markdown-formatted text
by changing their cell format to "Markdown". A minimal subset of the
Markdown specification is currently supported.

Test Plan: Browser tests.

Reviewers: Spoffy, dsagal

Reviewed By: Spoffy, dsagal

Subscribers: dsagal, Spoffy

Differential Revision: https://phab.getgrist.com/D4326
2024-08-23 11:24:35 -04:00
Xavi Montero
7fcd740f11
Translated using Weblate (Catalan)
Currently translated at 0.9% (13 of 1378 strings)

Translation: Grist/client
Translate-URL: https://hosted.weblate.org/projects/grist/client/ca/
2024-08-20 20:09:19 +02:00
George Gevoian
5c486e686e (core) Refactor disabled summary button logic
Summary:
A project test began failing because of an incompatibility with pointer-events
being disabled. This gets us back to green.

Test Plan: Existing tests.

Reviewers: jordigh

Reviewed By: jordigh

Subscribers: jordigh

Differential Revision: https://phab.getgrist.com/D4325
2024-08-19 22:59:21 -04:00
Jordi Gutiérrez Hermoso
be925e6ff3 build: update grist-ee version 2024-08-19 17:49:55 -04:00
Paul Fitzpatrick
df5080ef38 (core) updates from grist-core 2024-08-19 16:42:12 -04:00