Skip to content

Commit 51160fa

Browse files
authored
Merge branch 'main' into feat/s3parser
2 parents 5876f34 + cf4e347 commit 51160fa

100 files changed

Lines changed: 20967 additions & 150 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CHANGELOG.md

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,34 @@ and this project adheres to
1010

1111
### Added
1212

13+
- 🔒️(backend) add validation of Room.configuration
14+
- ✨(helm) add support multiple transcribe worker / endpoint #1247
15+
16+
### Fixed
17+
18+
- ♻(frontend) standardize role terminology across localizations
19+
- 🐛(backend) make start-recording atomic and fault-tolerant
20+
- 🔒️(frontend) room ids are generated with non-cryptographic rand
21+
22+
## [1.15.0] - 2026-04-30
23+
24+
### Added
25+
1326
- ✨(backend) add metadata collection of VAD, connection and chat events
1427
- ✨(backend) add core.recording.event.parsers.S3Parser
28+
- ✨(backend) introduce add-ons authentication backend
29+
- 💬(backend) clarify french transcription audio download link text #1299
30+
- 🚧(addons) introduce initial Microsoft Outlook add-in support (alpha)
31+
- 🔧(backend) add setting to toggle application token exchange mechanism
32+
- ✨(backend) support add-ons authentication in external viewset
33+
34+
### Fixed
35+
36+
- 🐛(summary) support webm #1290
37+
- ⬆️(backend) bump django-lasuite to v0.0.26
38+
- 🩹(frontend) use a more standard (quality) rating scale
39+
- 🩹(frontend) fix access control for screen recording feature flag
40+
- 🩹(frontend) fix reconnect loop caused by connectionObserverStore updates
1541

1642
## [1.14.0] - 2026-04-16
1743

bin/Tiltfile

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,11 @@ docker_build(
3434
'localhost:5001/meet-frontend-dinum:latest',
3535
context='..',
3636
dockerfile='../docker/dinum-frontend/Dockerfile',
37-
only=['./src/frontend', './docker', './.dockerignore'],
37+
only=['./src/frontend', './src/addons', './docker', './.dockerignore'],
3838
target = 'frontend-production',
3939
live_update=[
4040
sync('../src/frontend', '/home/frontend'),
41+
sync('../src/addons', '/home/addons'),
4142
]
4243
)
4344
clean_old_images('localhost:5001/meet-frontend-dinum')
@@ -108,7 +109,7 @@ k8s_resource('meet-backend', resource_deps=['postgresql', 'minio', 'redis', 'liv
108109
k8s_resource('meet-celery-backend', resource_deps=['redis'])
109110
k8s_resource('meet-celery-summarize', resource_deps=['redis'])
110111
k8s_resource('meet-celery-summary-backend', resource_deps=['redis'])
111-
k8s_resource('meet-celery-transcribe', resource_deps=['redis'])
112+
k8s_resource('meet-celery-transcribe-default', resource_deps=['redis'])
112113
k8s_resource('meet-backend-migrate', resource_deps=['meet-backend'])
113114
k8s_resource('livekit-livekit-server', resource_deps=['redis'])
114115
k8s_resource('livekit-livekit-server-test-connection', resource_deps=['livekit-livekit-server'])

bin/prepare-release.sh

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,12 @@ update_npm_version "mail"
101101
# Update backend pyproject.toml
102102
update_python_version "backend"
103103

104+
# Run uv lock in backend
105+
print_info "Running uv lock in backend..."
106+
cd "src/backend"
107+
uv lock
108+
cd -
109+
104110
# Update summary pyproject.toml
105111
update_python_version "summary"
106112

@@ -149,6 +155,7 @@ echo " - src/frontend/package.json"
149155
echo " - src/sdk/package.json"
150156
echo " - src/mail/package.json"
151157
echo " - src/backend/pyproject.toml"
158+
echo " - src/backend/uv.lock"
152159
echo " - src/summary/pyproject.toml"
153160
echo " - src/agents/pyproject.toml"
154161
echo " - CHANGELOG.md"

docker/dinum-frontend/Dockerfile

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,21 @@ COPY ./docker/dinum-frontend/assets/ \
3838
COPY ./docker/dinum-frontend/fonts/ \
3939
./dist/assets/fonts/
4040

41+
# ---- Addons builder image ----
42+
FROM node:20-alpine AS addons-builder
43+
44+
WORKDIR /home/addons/outlook
45+
46+
COPY ./src/addons/outlook/package.json ./package.json
47+
COPY ./src/addons/outlook/package-lock.json ./package-lock.json
48+
49+
RUN npm ci
50+
51+
COPY ./src/addons/outlook/ .
52+
53+
RUN npx webpack --mode production
54+
55+
4156
# ---- Front-end image ----
4257
FROM nginxinc/nginx-unprivileged:alpine3.23 AS frontend-production
4358

@@ -60,7 +75,11 @@ COPY --from=meet-builder \
6075
/home/frontend/dist \
6176
/usr/share/nginx/html
6277

63-
COPY ./src/frontend/default.conf /etc/nginx/conf.d
78+
COPY --from=addons-builder \
79+
/home/addons/outlook/dist \
80+
/usr/share/nginx/html/addons/outlook
81+
82+
COPY ./docker/dinum-frontend/nginx/default.conf /etc/nginx/conf.d
6483
COPY ./docker/files/usr/local/bin/entrypoint /usr/local/bin/entrypoint
6584

6685
ENTRYPOINT [ "/usr/local/bin/entrypoint" ]
Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
server {
2+
listen 8080;
3+
server_name localhost;
4+
server_tokens off;
5+
6+
root /usr/share/nginx/html;
7+
8+
location = /.well-known/windows-app-web-link {
9+
default_type application/json;
10+
alias /usr/share/nginx/html/.well-known/windows-app-web-link;
11+
add_header Content-Disposition "attachment; filename=windows-app-web-link";
12+
}
13+
14+
# Manifest — fetched, never iframed
15+
location = /addons/outlook/manifest.xml {
16+
alias /usr/share/nginx/html/addons/outlook/manifest.xml;
17+
18+
add_header Access-Control-Allow-Origin "*";
19+
add_header Cache-Control "no-cache, no-store, must-revalidate";
20+
add_header X-Frame-Options "DENY";
21+
add_header Content-Security-Policy "frame-ancestors 'none'";
22+
}
23+
24+
location = /addons/outlook/assets/ {
25+
return 404;
26+
}
27+
28+
location ~* ^/addons/outlook/assets/(.+\.(?:css|js|json|png|jpg|jpeg|gif|ico|svg|woff|woff2|ttf|eot))/?$ {
29+
root /usr/share/nginx/html;
30+
expires 30d;
31+
add_header Cache-Control "public, max-age=2592000, immutable" always;
32+
add_header Access-Control-Allow-Origin "*";
33+
add_header Vary "Origin" always;
34+
}
35+
36+
location = /addons/outlook/ {
37+
return 404;
38+
}
39+
40+
location ~ ^/addons/outlook(/.*)?$ {
41+
alias /usr/share/nginx/html/addons/outlook$1;
42+
error_page 404 =200 /index.html;
43+
add_header Cache-Control "no-cache, no-store, must-revalidate";
44+
add_header Pragma "no-cache" always;
45+
add_header Expires 0 always;
46+
47+
set $ms_domains "https://*.live.com https://*.office.com https://*.microsoft.com https://*.office365.com https://*.sharepoint.com";
48+
49+
set $nonce $request_id;
50+
51+
set $csp "upgrade-insecure-requests; ";
52+
set $csp "${csp}frame-ancestors ${ms_domains}; ";
53+
set $csp "${csp}script-src 'nonce-${nonce}' 'strict-dynamic'; ";
54+
set $csp "${csp}connect-src 'self' ${ms_domains}; ";
55+
set $csp "${csp}frame-src 'none'; ";
56+
set $csp "${csp}object-src 'none'; ";
57+
set $csp "${csp}base-uri 'none'; ";
58+
59+
add_header Content-Security-Policy $csp;
60+
61+
sub_filter 'NONCE_PLACEHOLDER' $nonce;
62+
sub_filter_once off;
63+
}
64+
65+
# Serve static files with caching
66+
location ~* ^/assets/.*\.(css|js|json|png|jpg|jpeg|gif|ico|svg|woff|woff2|ttf|eot)$ {
67+
expires 30d;
68+
add_header Cache-Control "public, max-age=2592000";
69+
}
70+
71+
# Serve static files
72+
location / {
73+
try_files $uri $uri/ /index.html;
74+
# Add no-cache headers
75+
add_header Cache-Control "no-cache, no-store, must-revalidate";
76+
add_header Pragma "no-cache"; # HTTP 1.0 header for backward compatibility
77+
add_header Expires 0;
78+
}
79+
80+
# Optionally, handle 404 errors by redirecting to index.html
81+
error_page 404 =200 /index.html;
82+
}

src/addons/outlook/.eslintrc.json

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"plugins": [
3+
"office-addins"
4+
],
5+
"extends": [
6+
"plugin:office-addins/recommended"
7+
]
8+
}
396 Bytes
Loading
678 Bytes
Loading
1.44 KB
Loading
1.67 KB
Loading

0 commit comments

Comments
 (0)