Skip to content

Commit c340c17

Browse files
authored
New: Add Lab 3.4.0 release notes and docs update (#1331)
1 parent b6fad60 commit c340c17

File tree

12 files changed

+305
-59
lines changed

12 files changed

+305
-59
lines changed

pages/memgraph-lab/configuration.mdx

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,8 @@ valid Memgraph Enterprise license are available only in a Docker environment.
7878
| Variable | Description | Type | Default |
7979
|------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------|--------------------|
8080
| `AUTH_NATIVE_IS_DISABLED` | Enable or disable native authentication (username, password) | `boolean` | `false` |
81+
| `AUTH_SSO_STATE_SECRET` | Secret key used to encrypt shared state during the SSO flow; if not set, Lab generates a random one at startup | `string` | |
82+
| `AUTH_SSO_STATE_EXPIRY_SEC` | Duration (in seconds) for which the SSO state remains valid | `number` | `300` |
8183
| `AUTH_OIDC_ENTRA_ID_IS_ENABLED` | Enable or disable Entra ID SSO authentication via OIDC | `boolean` | `false` |
8284
| `AUTH_OIDC_ENTRA_ID_DISPLAY_NAME` | Entra ID OIDC display name "Sign in with `<name>`" | `string` | `"Entra ID"` |
8385
| `AUTH_OIDC_ENTRA_ID_AUTHORIZATION_URL` | Entra ID OIDC authorization URL | `string` | |
@@ -87,6 +89,7 @@ valid Memgraph Enterprise license are available only in a Docker environment.
8789
| `AUTH_OIDC_ENTRA_ID_CLIENT_SECRET` | Entra ID OIDC client secret | `string` | |
8890
| `AUTH_OIDC_ENTRA_ID_CALLBACK_URL` | Entra ID OIDC callback URL | `string` | |
8991
| `AUTH_OIDC_ENTRA_ID_SCOPE` | Entra ID OIDC scope | `string` | `"openid profile"` |
92+
| `AUTH_OIDC_ENTRA_ID_PKCE_IS_ENABLED` | Enables PKCE flow for Entra ID OIDC integration | `boolean` | `false` |
9093
| `AUTH_OIDC_OKTA_IS_ENABLED` | Enable or disable Okta SSO authentication via OIDC | `boolean` | `false` |
9194
| `AUTH_OIDC_OKTA_DISPLAY_NAME` | Okta OIDC display name "Sign in with `<name>`" | `string` | `"Okta"` |
9295
| `AUTH_OIDC_OKTA_AUTHORIZATION_URL` | Okta OIDC authorization URL | `string` | |
@@ -96,6 +99,7 @@ valid Memgraph Enterprise license are available only in a Docker environment.
9699
| `AUTH_OIDC_OKTA_CLIENT_SECRET` | Okta OIDC client secret | `string` | |
97100
| `AUTH_OIDC_OKTA_CALLBACK_URL` | Okta OIDC callback URL | `string` | |
98101
| `AUTH_OIDC_OKTA_SCOPE` | Okta OIDC scope | `string` | `"openid profile"` |
102+
| `AUTH_OIDC_OKTA_PKCE_IS_ENABLED` | Enables PKCE flow for Okta OIDC integration | `boolean` | `false` |
99103
| `AUTH_OIDC_CUSTOM_IS_ENABLED` | Enable or disable custom SSO authentication via OIDC | `boolean` | `false` |
100104
| `AUTH_OIDC_CUSTOM_DISPLAY_NAME` | Custom OIDC display name "Sign in with `<name>`" | `string` | `"SSO"` |
101105
| `AUTH_OIDC_CUSTOM_AUTHORIZATION_URL` | Custom OIDC authorization URL | `string` | |
@@ -105,6 +109,7 @@ valid Memgraph Enterprise license are available only in a Docker environment.
105109
| `AUTH_OIDC_CUSTOM_CLIENT_SECRET` | Custom OIDC client secret | `string` | |
106110
| `AUTH_OIDC_CUSTOM_CALLBACK_URL` | Custom OIDC callback URL | `string` | |
107111
| `AUTH_OIDC_CUSTOM_SCOPE` | Custom OIDC scope | `string` | `"openid profile"` |
112+
| `AUTH_OIDC_CUSTOM_PKCE_IS_ENABLED` | Enables PKCE flow for custom OIDC integration | `boolean` | `false` |
108113
| `AUTH_SAML_ENTRA_ID_IS_ENABLED` | Enable or disable Entra ID SSO authentication via SAML | `boolean` | `false` |
109114
| `AUTH_SAML_ENTRA_ID_DISPLAY_NAME` | Entra ID SAML display name "Sign in with `<name>`" | `string` | `"Entra ID"` |
110115
| `AUTH_SAML_ENTRA_ID_ENTRY_POINT` | Entra ID SAML entry point | `string` | |

pages/memgraph-lab/features/graph-style-script/built-in-elements.mdx

Lines changed: 60 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: Built in elements
3-
description: Unleash the potential of the built-in elements in Memgraph. Our documentation page offers detailed information on the different elements available, enabling you to optimize your graph computing as you move forward with your graph project.
3+
description: Unleash the potential of the built-in elements in Memgraph. Our documentation page offers detailed information on the different elements available, enabling you to optimize your graph computing as you move forward with your graph project.
44
---
55

66
import {CommunityLinks} from '/components/social-card/CommunityLinks'
@@ -789,6 +789,38 @@ Outputs:
789789

790790
- `List[Relationship]`
791791

792+
#### `InNodes(node)`
793+
794+
Returns the list of unique inbound node from a given graph node.
795+
796+
Example:
797+
798+
- `size: Size(InNodes(node))` sets the size to be equal to the count of unique inbound nodes.
799+
800+
Inputs:
801+
802+
- `node: Node`
803+
804+
Outputs:
805+
806+
- `List[Node]`
807+
808+
#### `OutNodes(node)`
809+
810+
Returns the list of unique outbound nodes from a given graph node.
811+
812+
Example:
813+
814+
- `size: Size(OutNodes(node))` sets the size to be equal to the count of unique outbound nodes.
815+
816+
Inputs:
817+
818+
- `node: Node`
819+
820+
Outputs:
821+
822+
- `List[Node]`
823+
792824
#### `Nodes(graphOrEdge)`
793825

794826
Returns the list of start and end nodes from a given graph edge. It returns
@@ -895,6 +927,33 @@ Outputs:
895927

896928
- `number`
897929

930+
#### `IsTreeStructure(graph: Graph, minDepth?: number)`
931+
932+
Determines whether the given graph is a directed tree structure,
933+
meaning it contains no cycles and each node has at most one inbound edge.
934+
By default, the graph must have a minimum depth of 2 hops to qualify
935+
as a tree structure. You can adjust this requirement using the optional
936+
`minDepth` parameter.
937+
938+
Example:
939+
940+
- Apply a "tree" layout to the view if the graph is a tree structure:
941+
942+
```
943+
@ViewStyle IsTreeStructure(graph) {
944+
view: "tree"
945+
}
946+
```
947+
948+
Inputs:
949+
950+
- `graph: Graph`
951+
- `minDepth: number?`
952+
953+
Outputs:
954+
955+
- `boolean`
956+
898957
### Map functions
899958

900959
#### `MapKeys(map)`

pages/memgraph-lab/features/graph-style-script/directive-properties.mdx

Lines changed: 153 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,17 @@ description: Discover the properties of directives in Memgraph through our compr
44
---
55

66
import {CommunityLinks} from '/components/social-card/CommunityLinks'
7-
7+
import { Callout } from 'nextra/components'
88

99
# Directive properties
1010

11-
Graph Style Script currently has four directives:
11+
Graph Style Script currently has these directives:
1212

1313
* [`@NodeStyle` directive](#nodestyle-directive) - for defining the visual style of graph nodes.
1414
* [`@EdgeStyle` directive](#edgestyle-directive) - for defining the visual style of graph relationships.
1515
* [`@ViewStyle` directive](#viewstyle-directive) - for defining the general graph style properties.
1616
* [`@ViewStyle.Map` directive](#viewstylemap-directive) - for defining the graph style properties when map
17-
is in the background.
17+
is in the background. (**DEPRECATED in Lab 3.4**)
1818

1919
Each directive includes a set of configurable properties, along with their
2020
expected data types.
@@ -425,56 +425,97 @@ Example:
425425
## `@ViewStyle` directive
426426

427427
`@ViewStyle` directive is used for defining style properties of a general
428-
graph view: link distance, view, physics, repel force, etc. You can read more about
429-
each property in the following sections.
428+
graph view: view type, link distance, view, physics, repel force, etc. It is also
429+
possible to use a predicate expression which acts as a filter to apply
430+
the defined properties to the final directive output.
430431

431432
Here is the list of all properties that can be defined in the `@ViewStyle` directive,
432433
along with their expected types.
433434

434-
### `collision-radius: number`
435+
### `force-collision-radius: number`
435436

436437
Sets the margin radius for each node from its centre. If node `size` is `10` and
437-
`collision-radius` is set to `20`, it means there will be `10` spaces left around each
438+
`force-collision-radius` is set to `20`, it means there will be `10` spaces left around each
438439
node. No other node can be in that space.
439440

440-
The default `collision-radius` is `15`.
441+
The default `force-collision-radius` is `15`.
441442

442443
Example:
443444

444-
- `collision-radius: 15` sets the margin radius for each node from its centre to `15`.
445+
- `force-collision-radius: 15` sets the margin radius for each node from its centre to `15`.
445446

446-
### `repel-force: number`
447+
### `force-repel-force: number`
447448

448449
Sets the strength of repel force between all nodes. If positive, it adds a force that
449450
moves nodes away from each other, if negative, it moves nodes towards each other.
450451

451-
The default `repel-force` is `-100`.
452+
The default `force-repel-force` is `-100`.
452453

453454
Example:
454455

455-
- `repel-force: -100` sets the repel force between all nodes to `-100`.
456+
- `force-repel-force: -100` sets the repel force between all nodes to `-100`.
456457

457-
### `link-distance: number`
458+
### `force-link-distance: number`
458459

459460
Sets the minimum required distance between two connected nodes from their centres.
460461

461-
The default `link-distance` is `30`. If node sizes are `20` and link distance is `30`,
462+
The default `force-link-distance` is `30`. If node sizes are `20` and link distance is `30`,
462463
nodes might overlap because the minimum distance from one node centre to another is
463464
`20 + 20 = 40`.
464465

465466
Example:
466467

467-
- `link-distance: 30` sets the minimum required distance to `30`.
468+
- `force-link-distance: 30` sets the minimum required distance to `30`.
468469

469-
### `physics-enabled: boolean`
470+
### `force-physics-enabled: boolean`
470471

471472
Enables or disables physics which is a real-time simulation for graph node positions.
472473
When physics is enabled, the graph is not static anymore.
473474

474475
Examples:
475476

476-
- `physics-enabled: True` enables the physics.
477-
- `physics-enabled: Greater(NodeCount(graph), 100)` enables the physics for graphs with more than 100 nodes.
477+
- `force-physics-enabled: True` enables the physics.
478+
- `force-physics-enabled: Greater(NodeCount(graph), 100)` enables the physics for graphs with more than 100 nodes.
479+
480+
### `tree-orientation: "horizontal" | "vertical"`
481+
482+
Determines the direction in which the `"tree"` layout is rendered.
483+
484+
- `"vertical"` (default): Renders the tree from top to bottom, with parent nodes above their children.
485+
- `"horizontal"`: Renders the tree from left to right, with parent nodes to the left of their children.
486+
487+
Example:
488+
489+
- `tree-orientation: "horizontal"` lays out the tree from left to right.
490+
491+
### `tree-node-gap: number`
492+
493+
Specifies the spacing between sibling nodes within the same depth
494+
level in the `"tree"` layout.
495+
This affects the horizontal or vertical distance between nodes,
496+
depending on the tree orientation.
497+
498+
Example:
499+
500+
- `tree-node-gap: 50` increases the spacing between nodes on the same level.
501+
502+
### `tree-level-gap: number`
503+
504+
Sets the spacing between different depth levels in the `"tree"` layout.
505+
This controls the vertical or horizontal distance between parent and
506+
child nodes based on the tree orientation.
507+
508+
Example:
509+
510+
- `tree-level-gap: 100` increases the space between levels in the tree.
511+
512+
### `map-tile-layer: "detailed" | "light" | "dark" | "basic" | "satellite"`
513+
514+
Sets the map tile for the map background. The default map tile is `"light"`.
515+
516+
Examples:
517+
518+
- `map-tile-layer: "dark"` sets the map tile to be type `"dark"`.
478519

479520
### `background-color: Color`
480521

@@ -485,33 +526,116 @@ Examples:
485526
- `background-color: #DDDDDD` sets the background color of the canvas to light gray.
486527
- `background-color: black` sets the background color of the canvas to black.
487528

488-
### `view: string: "default" | "map"`
529+
### `view: string: "default" | "map" | "force" | "tree"`
530+
531+
Sets the current graph view.
532+
533+
- `"default"` automatically selects between `"force"` and `"map"` views based on the available graph data.
534+
- `"map"` displays the graph over a geographical map. Each node must include `latitude` and `longitude` to be positioned correctly.
535+
- `"force"` renders a force-directed layout, placing nodes on a canvas with repelling forces between them.
536+
- `"tree"` arranges the nodes in a hierarchical layout, displaying the structure from root to leaf nodes.
537+
538+
The default value of `view` is `"default"`.
539+
540+
Examples:
541+
542+
- `view: "default"` uses automatic view selection.
543+
- `view: "map"` sets the view to a map layout, which will only render if at least one node includes both `latitude` and `longitude`.
544+
545+
### `collision-radius: number`
546+
547+
<Callout type="warning">
548+
549+
**DEPRECATED in Lab 3.4**: Use `force-collision-radius` instead.
550+
551+
</Callout>
552+
553+
Sets the margin radius for each node from its centre. If node `size` is `10` and
554+
`collision-radius` is set to `20`, it means there will be `10` spaces left around each
555+
node. No other node can be in that space.
556+
557+
The default `collision-radius` is `15`.
558+
559+
Example:
560+
561+
- `collision-radius: 15` sets the margin radius for each node from its centre to `15`.
562+
563+
### `repel-force: number`
564+
565+
<Callout type="warning">
566+
567+
**DEPRECATED in Lab 3.4**: Use `force-repel-force` instead.
568+
569+
</Callout>
570+
571+
Sets the strength of repel force between all nodes. If positive, it adds a force that
572+
moves nodes away from each other, if negative, it moves nodes towards each other.
573+
574+
The default `repel-force` is `-100`.
575+
576+
Example:
577+
578+
- `repel-force: -100` sets the repel force between all nodes to `-100`.
579+
580+
### `link-distance: number`
581+
582+
<Callout type="warning">
583+
584+
**DEPRECATED in Lab 3.4**: Use `force-link-distance` instead.
489585

490-
Sets the current graph view that can be either `"default"` or `"map"`. The `"default"` view is
491-
a graph visualization on a blank background. The `"map"` view is a graph visualization with a map
492-
as a background where each node needs to provide `latitude` and `longitude` to be positioned
493-
on the map.
586+
</Callout>
494587

495-
The default `view` is `"default"`.
588+
Sets the minimum required distance between two connected nodes from their centres.
589+
590+
The default `link-distance` is `30`. If node sizes are `20` and link distance is `30`,
591+
nodes might overlap because the minimum distance from one node centre to another is
592+
`20 + 20 = 40`.
593+
594+
Example:
595+
596+
- `link-distance: 30` sets the minimum required distance to `30`.
597+
598+
### `physics-enabled: boolean`
599+
600+
<Callout type="warning">
601+
602+
**DEPRECATED in Lab 3.4**: Use `force-physics-enabled` instead.
603+
604+
</Callout>
605+
606+
Enables or disables physics which is a real-time simulation for graph node positions.
607+
When physics is enabled, the graph is not static anymore.
496608

497609
Examples:
498610

499-
- `view: "default"` sets the view to the default view.
500-
- `view: "map"` sets the view to the map view that will be shown only if at least one node has
501-
required geo information: `latitude` and `longitude`.
611+
- `physics-enabled: True` enables the physics.
612+
- `physics-enabled: Greater(NodeCount(graph), 100)` enables the physics for graphs with more than 100 nodes.
502613

503614
## `@ViewStyle.Map` directive
504615

616+
<Callout type="warning">
617+
618+
`@ViewStyle.Map` is deprecated in Lab 3.4. Check updated directive `@ViewStyle` to
619+
set up map view and map tile layer.
620+
621+
</Callout>
622+
505623
`@ViewStyle.Map` directive is a subset of `@ViewStyle` because it defines
506-
additional style properties for a graph view when there is a map background.
507-
Style properties of the `@ViewStyle.Map` directive are used to style the
624+
additional style properties for a graph view when there is a map background.
625+
Style properties of the `@ViewStyle.Map` directive are used to style the
508626
background map.
509627

510628
Here is the list of all properties that can be defined in the `@ViewStyle.Map`
511629
directive, along with their expected types.
512630

513631
### `tile-layer: string: "detailed" | "light" | "dark" | "basic" | "satellite"`
514632

633+
<Callout type="warning">
634+
635+
**DEPRECATED in Lab 3.4**: Use `@ViewStyle { map-tile-layer }` instead.
636+
637+
</Callout>
638+
515639
Sets the map tile for the map background. The default map tile is `"light"`.
516640

517641
Examples:

0 commit comments

Comments
 (0)