Skip to content

Commit c8b8779

Browse files
authored
Merge branch 'main' into jme/LFXV2-325
Signed-off-by: Jordan Evans <jevans@linuxfoundation.org>
2 parents 8c4f4a5 + e3d365a commit c8b8779

File tree

5 files changed

+101
-22
lines changed

5 files changed

+101
-22
lines changed

charts/lfx-platform/Chart.lock

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,10 @@ dependencies:
1919
version: 0.25.2
2020
- name: authelia
2121
repository: https://charts.authelia.com
22-
version: 0.10.42
22+
version: 0.10.44
2323
- name: nack
2424
repository: https://nats-io.github.io/k8s/helm/charts/
25-
version: 0.29.1
25+
version: 0.29.2
2626
- name: fga-operator
2727
repository: https://3schwartz.github.io/fga-operator/
2828
version: 1.0.0
@@ -34,18 +34,18 @@ dependencies:
3434
version: v0.18.0
3535
- name: lfx-v2-query-service
3636
repository: oci://ghcr.io/linuxfoundation/lfx-v2-query-service/chart
37-
version: 0.2.3
37+
version: 0.2.4
3838
- name: lfx-v2-project-service
3939
repository: oci://ghcr.io/linuxfoundation/lfx-v2-project-service/chart
40-
version: 0.4.2
40+
version: 0.4.3
4141
- name: lfx-v2-fga-sync
4242
repository: oci://ghcr.io/linuxfoundation/lfx-v2-fga-sync/chart
4343
version: 0.2.1
4444
- name: lfx-v2-access-check
4545
repository: oci://ghcr.io/linuxfoundation/lfx-v2-access-check/chart
46-
version: 0.2.1
46+
version: 0.2.2
4747
- name: lfx-v2-indexer-service
4848
repository: oci://ghcr.io/linuxfoundation/lfx-v2-indexer-service/chart
49-
version: 0.2.0
50-
digest: sha256:a4308bf013728b0d0114c4b3eb0f4eeda5713c241d5fa37e4ddfcfc850773159
51-
generated: "2025-08-19T15:22:38.814964-07:00"
49+
version: 0.4.1
50+
digest: sha256:5d3f71f046ccac29a00cddb34dd9472a57a1c38fc1d92f8e5e784abd61616b80
51+
generated: "2025-09-08T11:05:46.092768-07:00"

charts/lfx-platform/Chart.yaml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ apiVersion: v2
55
name: lfx-platform
66
description: LFX Platform v2 Helm chart
77
type: application
8-
version: 0.2.3
8+
version: 0.2.9
99
icon: https://github.com/linuxfoundation/lfx-v2-helm/raw/main/img/lfx-logo-color.svg
1010
dependencies:
1111
- name: traefik
@@ -54,21 +54,21 @@ dependencies:
5454
condition: trustManagerEnabled
5555
- name: lfx-v2-query-service
5656
repository: oci://ghcr.io/linuxfoundation/lfx-v2-query-service/chart
57-
version: ~0.2.2
57+
version: ~0.2.3
5858
condition: lfx-v2-query-service.enabled
5959
- name: lfx-v2-project-service
6060
repository: oci://ghcr.io/linuxfoundation/lfx-v2-project-service/chart
61-
version: ~0.4.0
61+
version: ~0.4.2
6262
condition: lfx-v2-project-service.enabled
6363
- name: lfx-v2-fga-sync
6464
repository: oci://ghcr.io/linuxfoundation/lfx-v2-fga-sync/chart
65-
version: ~0.2.0
65+
version: ~0.2.1
6666
condition: lfx-v2-fga-sync.enabled
6767
- name: lfx-v2-access-check
6868
repository: oci://ghcr.io/linuxfoundation/lfx-v2-access-check/chart
69-
version: ~0.2.1
69+
version: ~0.2.2
7070
condition: lfx-v2-access-check.enabled
7171
- name: lfx-v2-indexer-service
7272
repository: oci://ghcr.io/linuxfoundation/lfx-v2-indexer-service/chart
73-
version: ~0.2.0
73+
version: ~0.4.0
7474
condition: lfx-v2-indexer-service.enabled

charts/lfx-platform/templates/heimdall/middleware.yaml

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,28 @@
11
# Copyright The Linux Foundation and each contributor to LFX.
22
# SPDX-License-Identifier: MIT
3-
---
43
{{ if and .Values.heimdall.enabled (or
54
.Values.gateway.enabled .Values.lfx.parentGateway.enabled) -}}
5+
---
6+
# Heimdall middleware with body forwarding capability
7+
# This is the default middleware that should be used in most cases, particularly
8+
# when parentRef requiring authentication is in the request body.
9+
# Note: For routes handling very large payloads (like file uploads), consider using
10+
# the lighter-weight middleware below to reduce overhead.
11+
apiVersion: traefik.io/v1alpha1
12+
kind: Middleware
13+
metadata:
14+
name: heimdall-forward-body
15+
namespace: {{ .Release.Namespace }}
16+
spec:
17+
forwardAuth:
18+
address: "http://{{ include "heimdall.fullname" .Subcharts.heimdall }}.{{ .Release.Namespace }}:{{ .Values.heimdall.service.main.port }}"
19+
authResponseHeaders:
20+
- Authorization
21+
forwardBody: true
22+
---
23+
# Alternative Heimdall middleware without body forwarding
24+
# Use this middleware only for routes where body inspection isn't required for authentication
25+
# and when dealing with large payloads where forwarding the entire body would be inefficient.
626
apiVersion: traefik.io/v1alpha1
727
kind: Middleware
828
metadata:

charts/lfx-platform/templates/openfga/model.yaml

Lines changed: 59 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,17 @@ metadata:
1111
app.kubernetes.io/component: openfga
1212
spec:
1313
instances:
14+
{{/*
15+
Each change to the authorization model should be accompanied by a version bump.
16+
These are the recommended guidelines for versioning:
17+
- major: Modifications, deletions, or additions of type
18+
- minor: Additions or deletions of relations
19+
- patch: Modifications of define
20+
*/}}
1421
- version:
15-
major: 1
16-
minor: 2
17-
patch: 1
22+
major: 4
23+
minor: 1
24+
patch: 0
1825
authorizationModel: |
1926
model
2027
schema 1.1
@@ -40,17 +47,38 @@ spec:
4047
relations
4148
define member: [user]
4249
define project: [project]
43-
define writer: writer from project
44-
define auditor: auditor from project or meeting_coordinator from project
50+
define owner: [user, team#member]
51+
define writer: [user] or owner or writer from project
52+
define auditor: [user, team#member] or auditor from project or meeting_coordinator from project
53+
define viewer: [user:*] or auditor or auditor from project
54+
55+
type groupsio_service
56+
relations
57+
define project: [project]
58+
define owner: owner from project
59+
define writer: writer from project or owner
60+
define auditor: auditor from project or writer
4561
define viewer: [user:*] or auditor from project
4662
63+
type groupsio_mailing_list
64+
relations
65+
define groupsio_service: [groupsio_service] # Parent relationship
66+
define project: project from groupsio_service # Inherit project permissions
67+
define committee: [committee] # Inherit committee permissions
68+
define owner: owner from groupsio_service or owner from committee
69+
define writer: writer from groupsio_service or writer from committee
70+
define auditor: auditor from groupsio_service or auditor from committee
71+
define viewer: viewer from groupsio_service or member from committee
72+
4773
type meeting
4874
relations
4975
define project: [project]
5076
define committee: [committee]
77+
# The auditor relation identifies a user who can audit this meeting.
78+
define auditor: auditor from project
5179
# The organizer relation identifies a user who can manage this one meeting.
5280
# That means they can update the meeting details, invite/uninvite participants, etc.
53-
define organizer: [user] or meeting_coordinator from project or writer from project
81+
define organizer: [user] or meeting_coordinator from project or writer from committee or writer from project
5482
# The host relation identifies a user who is a host of this meeting.
5583
# This is different than the organizer relation because an organizer isn't necessarily
5684
# the user who is hosting the meeting, nor is the host necessarily the one who is
@@ -68,5 +96,29 @@ spec:
6896
# The viewer relation identifies a user who can view this meeting.
6997
# If the meeting is public, then any user can view it; but if it is private, then
7098
# only certain privileged users can view it.
71-
define viewer: [user:*] or participant or organizer or auditor from project
99+
define viewer: [user:*] or participant or organizer or auditor
100+
101+
type past_meeting
102+
relations
103+
define project: [project]
104+
define committee: [committee]
105+
# The meeting relation identifies the meeting that this past meeting was created from.
106+
# Note: it is possible that the meeting no longer exists, so having permissions on the
107+
# meeting become obsolete if the meeting is deleted.
108+
define meeting: [meeting]
109+
# The auditor relation identifies a user who can audit this meeting.
110+
define auditor: auditor from project or auditor from meeting
111+
# The organizer relation identifies a user who can manage this one past meeting.
112+
# That means they can update the past meeting details, update the participants, etc.
113+
define organizer: [user] or meeting_coordinator from project or writer from project or organizer from meeting
114+
# The host relation identifies a user who was a host of this past meeting.
115+
define host: [user] or organizer
116+
# The invitee relation identifies a participant who was invited to this past meeting.
117+
define invitee: [user]
118+
# The attendee relation identifies a participant who attended this past meeting.
119+
define attendee: [user]
120+
# The viewer relation identifies a user who can view this past meeting.
121+
# If the past meeting is public, then any user can view it; but if it is private, then
122+
# only certain privileged users can view it.
123+
define viewer: [user:*] or attendee or invitee or organizer or auditor
72124
{{- end }}

charts/lfx-platform/values.yaml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -209,6 +209,13 @@ heimdall:
209209
type: allow
210210
- id: deny_all
211211
type: deny
212+
- id: json_content_type
213+
type: cel
214+
config:
215+
expressions:
216+
- expression: |
217+
Request.Header("Content-Type") == "application/json"
218+
message: "Content-Type must be application/json"
212219
- id: openfga_check
213220
type: remote
214221
config:

0 commit comments

Comments
 (0)