replaced port-ui-desktop with desktop to make it more speakable

This commit is contained in:
Kevin Veen-Birkenbach 2025-08-14 11:45:08 +02:00
parent 5e00deea19
commit 4a65a254ae
No known key found for this signature in database
GPG Key ID: 44D8F11FD62F878E
65 changed files with 72 additions and 72 deletions

View File

@ -148,13 +148,13 @@ class FilterModule(object):
# Allow the loading of js from the cdn
if directive == 'script-src-elem':
if self.is_feature_enabled(applications, 'logout', application_id) or self.is_feature_enabled(applications, 'port-ui-desktop', application_id):
if self.is_feature_enabled(applications, 'logout', application_id) or self.is_feature_enabled(applications, 'desktop', application_id):
domain = domains.get('web-svc-cdn')[0]
tokens.append(f"{domain}")
if directive == 'frame-ancestors':
# Enable loading via ancestors
if self.is_feature_enabled(applications, 'port-ui-desktop', application_id):
if self.is_feature_enabled(applications, 'desktop', application_id):
domain = domains.get('web-app-port-ui')[0]
sld_tld = ".".join(domain.split(".")[-2:]) # yields "example.com"
tokens.append(f"{sld_tld}") # yields "*.example.com"

View File

@ -13,11 +13,11 @@
logout: "{{ (applications | get_app_conf(application_id, 'features.logout', False) or domain == PRIMARY_DOMAIN) }}"
css: "{{ applications | get_app_conf(application_id, 'features.css', False) }}"
matomo: "{{ applications | get_app_conf(application_id, 'features.matomo', False) }}"
port_ui: "{{ applications | get_app_conf(application_id, 'features.port-ui-desktop', False) }}"
port_ui: "{{ applications | get_app_conf(application_id, 'features.desktop', False) }}"
- name: "Activate Portfolio iFrame notifier for {{ domain }}"
include_role:
name: srv-web-7-7-inj-port-ui-desktop
name: srv-web-7-7-inj-desktop
public: true # Expose variables so that they can be used in template
when: inj_enabled.port_ui
@ -48,7 +48,7 @@
logout: "{{ (applications | get_app_conf(application_id, 'features.logout', False) or domain == PRIMARY_DOMAIN) }}"
css: "{{ applications | get_app_conf(application_id, 'features.css', False) }}"
matomo: "{{ applications | get_app_conf(application_id, 'features.matomo', False) }}"
port_ui: "{{ applications | get_app_conf(application_id, 'features.port-ui-desktop', False) }}"
port_ui: "{{ applications | get_app_conf(application_id, 'features.desktop', False) }}"
- name: "Activate Corporate CSS for {{domain}}"
include_role:

View File

@ -43,7 +43,7 @@ body_filter_by_lua_block {
-- build a list of head-injection snippets
local head_snippets = {}
{% for head_feature in ['css', 'matomo', 'port-ui-desktop', 'javascript', 'logout' ] %}
{% for head_feature in ['css', 'matomo', 'desktop', 'javascript', 'logout' ] %}
{% if applications | get_app_conf(application_id, 'features.' ~ head_feature, false) | bool %}
head_snippets[#head_snippets + 1] = [=[
{%- include "roles/srv-web-7-7-inj-" ~ head_feature ~ "/templates/head_sub.j2" -%}
@ -58,7 +58,7 @@ body_filter_by_lua_block {
-- build a list of body-injection snippets
local body_snippets = {}
{% for body_feature in ['matomo', 'logout', 'port-ui-desktop'] %}
{% for body_feature in ['matomo', 'logout', 'desktop'] %}
{% if applications | get_app_conf(application_id, 'features.' ~ body_feature, false) | bool %}
body_snippets[#body_snippets + 1] = [=[
{%- include "roles/srv-web-7-7-inj-" ~ body_feature ~ "/templates/body_sub.j2" -%}

View File

@ -5,7 +5,7 @@
when: run_once_srv_web_7_4_core is not defined
- include_tasks: 01_deploy.yml
- include_tasks: utils/run_once.yml
when: run_once_srv_web_7_7_inj_port_ui_desktop is not defined
when: run_once_srv_web_7_7_inj_desktop is not defined
# --- Build tiny inline initializer (CSP-hashed) ---
- name: "Load iFrame init code for '{{ application_id }}'"

View File

@ -5,7 +5,7 @@ setup_admin_email: "{{ users.administrator.email }}"
features:
matomo: true
css: true
port-ui-desktop: true
desktop: true
central_database: true
logout: true
server:

View File

@ -4,7 +4,7 @@ image:
features:
matomo: true
css: true
port-ui-desktop: true
desktop: true
central_database: true
logout: true
docker:

View File

@ -1,7 +1,7 @@
features:
matomo: true
css: true
port-ui-desktop: true
desktop: true
central_database: true
logout: true
docker:

View File

@ -3,7 +3,7 @@ api_suffix: "/bigbluebutton/"
features:
matomo: true
css: true
port-ui-desktop: false # Videos can't open in frame due to iframe restrictions
desktop: false # Videos can't open in frame due to iframe restrictions
# @todo fix this
ldap: false
oidc: true

View File

@ -5,7 +5,7 @@ pds:
features:
matomo: true
css: true
port-ui-desktop: true
desktop: true
central_database: true
logout: true
server:

View File

@ -2,7 +2,7 @@ repository: "discourse_repository" # Name of the repository folder
features:
matomo: true
css: true
port-ui-desktop: true
desktop: true
oidc: true
central_database: true
ldap: false # @todo implement and activate

View File

@ -1,7 +1,7 @@
features:
matomo: true
css: false
port-ui-desktop: false # @todo Solve https://chatgpt.com/c/687a50b4-8d78-800f-a202-1631aa05fd4f before setting it to true
desktop: false # @todo Solve https://chatgpt.com/c/687a50b4-8d78-800f-a202-1631aa05fd4f before setting it to true
ldap: false
oidc: true
central_database: true

View File

@ -3,7 +3,7 @@ images:
features:
matomo: true
css: false # Temporary deactivated
port-ui-desktop: true
desktop: true
oidc: false # Implementation doesn't work yet
central_database: true
ldap: true

View File

@ -15,7 +15,7 @@ docker:
features:
matomo: true
css: false
port-ui-desktop: true
desktop: true
ldap: true
central_database: true
oauth2: false # Doesn't make sense to activate it atm, because login is possible on homepage

View File

@ -7,7 +7,7 @@ configuration:
features:
matomo: true
css: false
port-ui-desktop: true
desktop: true
central_database: true
ldap: true
oauth2: true

View File

@ -1,7 +1,7 @@
features:
matomo: true
css: true
port-ui-desktop: true
desktop: true
central_database: true
logout: true
docker:

View File

@ -3,7 +3,7 @@ images:
features:
matomo: true
css: true
port-ui-desktop: true
desktop: true
central_database: true
logout: true
server:

View File

@ -4,7 +4,7 @@ actions:
features:
matomo: true
css: true
port-ui-desktop: true
desktop: true
ldap: true
central_database: true
recaptcha: true

View File

@ -11,7 +11,7 @@ oauth2_proxy:
features:
matomo: true
css: true
port-ui-desktop: true
desktop: true
ldap: true
oauth2: true
logout: true

View File

@ -11,7 +11,7 @@ docker:
features:
matomo: true # Enable Matomo Tracking
css: true # Enable Global CSS Styling
port-ui-desktop: true # Enable loading of app in iframe
desktop: true # Enable loading of app in iframe
ldap: false # Enable LDAP Network
central_database: false # Enable Central Database Network
recaptcha: false # Enable ReCaptcha

View File

@ -2,7 +2,7 @@ public_api_activated: False # Security hol
features:
matomo: true
css: false
port-ui-desktop: true
desktop: true
central_database: true
oidc: true
logout: true

View File

@ -5,7 +5,7 @@ domain: "{{ PRIMARY_DOMAIN }}" # The main domain from which m
features:
matomo: true
css: false
port-ui-desktop: true # Deactivated mailu iframe loading until keycloak supports it
desktop: true # Deactivated mailu iframe loading until keycloak supports it
oidc: true
central_database: false # Deactivate central database for mailu, I don't know why the database deactivation is necessary
logout: true

View File

@ -3,7 +3,7 @@ setup: true # Set true
features:
matomo: true
css: true
port-ui-desktop: true
desktop: true
oidc: true
central_database: true
logout: true

View File

@ -5,7 +5,7 @@ features:
# itself wouldn't be possible
matomo: false
css: false
port-ui-desktop: false # Didn't work in frame didn't have high priority @todo figure out pcause and solve it
desktop: false # Didn't work in frame didn't have high priority @todo figure out pcause and solve it
central_database: true
oauth2: false
logout: false # Dependency conflict. It requires CDN and CDN requires matomo

View File

@ -20,7 +20,7 @@ setup: false # Set true in inventory
features:
matomo: false # Deactivated, because in html CSP restricts use
css: true
port-ui-desktop: true
desktop: true
oidc: true # Deactivated OIDC due to this issue https://github.com/matrix-org/synapse/issues/10492
central_database: true
logout: true

View File

@ -7,7 +7,7 @@ docker:
features:
matomo: true # activate tracking
css: true # use custom infinito stile
port-ui-desktop: true # Enable in port-ui
desktop: true # Enable in port-ui
logout: false
server:
csp:

View File

@ -3,7 +3,7 @@ features:
central_database: true
oidc: true
matomo: true
port-ui-desktop: true
desktop: true
logout: true
server:
csp:

View File

@ -2,7 +2,7 @@ site_titel: "Academy on {{PRIMARY_DOMAIN}}"
features:
matomo: true
css: false
port-ui-desktop: true
desktop: true
central_database: true
oidc: true
logout: true

View File

@ -2,7 +2,7 @@
features:
matomo: true
css: true
port-ui-desktop: true
desktop: true
central_database: true
logout: true
docker:

View File

@ -1,7 +1,7 @@
features:
matomo: true
css: true
port-ui-desktop: true
desktop: true
logout: false
server:
csp:

View File

@ -56,7 +56,7 @@ oidc:
features:
matomo: true
css: false
port-ui-desktop: true
desktop: true
ldap: true
oidc: true
central_database: true

View File

@ -4,7 +4,7 @@ allowed_roles: "admin" # Restrict it default to admin r
features:
matomo: true
css: true
port-ui-desktop: false
desktop: false
logout: true
server:
domains:

View File

@ -13,7 +13,7 @@ ldap:
features:
matomo: true
css: false # Temporary deactivated. Needs to be optimized for production use.
port-ui-desktop: true
desktop: true
ldap: true
central_database: true
oauth2: true

View File

@ -1,7 +1,7 @@
features:
matomo: true
css: false
port-ui-desktop: true
desktop: true
central_database: true
oidc: true
logout: true

View File

@ -9,7 +9,7 @@ oauth2_proxy:
features:
matomo: true
css: true
port-ui-desktop: true
desktop: true
central_database: true
oauth2: true
logout: true

View File

@ -7,7 +7,7 @@ oauth2_proxy:
features:
matomo: true
css: true
port-ui-desktop: true
desktop: true
ldap: true
oauth2: true
logout: true

View File

@ -7,7 +7,7 @@ oauth2_proxy:
features:
matomo: true
css: false
port-ui-desktop: false # Opens itself in a new window, when it's loaded in an iframe.
desktop: false # Opens itself in a new window, when it's loaded in an iframe.
# it's anyhow not so enduser relevant, so it can be kept like this
central_database: true
oauth2: true

View File

@ -2,7 +2,7 @@ titel: "Pictures on {{PRIMARY_DOMAIN}}"
features:
matomo: true
css: false # Needs to be reactivated
port-ui-desktop: true
desktop: true
central_database: true
oidc: true
logout: true

View File

@ -1,7 +1,7 @@
features:
matomo: true
css: true
port-ui-desktop: false
desktop: false
simpleicons: true # Activate Brand Icons for your groups
javascript: true # Necessary for URL sync
logout: false # Doesn't have own user data. Just a frame.

View File

@ -22,7 +22,7 @@ class LookupModule(LookupBase):
- Retrieves the icon class from galaxy_info.logo.class
- Retrieves the tags from galaxy_info.galaxy_tags
- Builds the URL using the 'domains' variable
- Sets the iframe flag from applications | get_app_conf(application_id, 'features.port-ui-desktop', True)
- Sets the iframe flag from applications | get_app_conf(application_id, 'features.desktop', True)
Only cards whose application_id is included in the variable group_names are returned.
"""
@ -109,7 +109,7 @@ class LookupModule(LookupBase):
url = "https://" + domain_url if domain_url else ""
app_data = applications.get(application_id, {})
iframe = app_data.get("features", {}).get("port-ui-desktop", False)
iframe = app_data.get("features", {}).get("desktop", False)
# Build card dictionary
card = {

View File

@ -1,9 +1,9 @@
- name: Assert that each web-app- or web-svc- port-ui-desktop app uses the correct domain suffix
- name: Assert that each web-app- or web-svc- desktop app uses the correct domain suffix
assert:
that:
- >
(
not (item.value.features['port-ui-desktop'] | default(false) | bool)
not (item.value.features['desktop'] | default(false) | bool)
)
or (domains | get_domain(item.key)).endswith(domains | get_domain('web-app-port-ui'))
fail_msg: >

View File

@ -33,13 +33,13 @@ applications:
icon:
class: fa-solid fa-shield-halved
url: {{ keycloak_url }}/admin
iframe: {{ applications | get_app_conf( 'web-app-keycloak', 'features.port-ui-desktop', False) }}
iframe: {{ applications | get_app_conf( 'web-app-keycloak', 'features.desktop', False) }}
- name: Profile
description: Update your personal admin settings
icon:
class: fa-solid fa-user-gear
url: {{ keycloak_url }}/realms/{{oidc.client.id}}/account
iframe: {{ applications | get_app_conf( 'web-app-keycloak', 'features.port-ui-desktop', False) }}
iframe: {{ applications | get_app_conf( 'web-app-keycloak', 'features.desktop', False) }}
- name: Logout
description: End your admin session securely
icon:

View File

@ -12,7 +12,7 @@ followus:
class: fa-brands fa-mastodon
url: "{{ WEB_PROTOCOL }}://{{ service_provider.contact.mastodon.split('@')[2] }}/@{{ service_provider.contact.mastodon.split('@')[1] }}"
identifier: "{{service_provider.contact.mastodon}}"
iframe: {{ applications | get_app_conf('web-app-mastodon','features.port-ui-desktop',True) }}
iframe: {{ applications | get_app_conf('web-app-mastodon','features.desktop',True) }}
{% endif %}
{% if service_provider.contact.bluesky is defined and service_provider.contact.bluesky != "" %}
- name: Bluesky
@ -31,7 +31,7 @@ followus:
class: fa-solid fa-camera
identifier: "{{service_provider.contact.pixelfed}}"
url: "{{ WEB_PROTOCOL }}://{{ service_provider.contact.pixelfed.split('@')[2] }}/@{{ service_provider.contact.pixelfed.split('@')[1] }}"
iframe: {{ applications | get_app_conf('web-app-pixelfed','features.port-ui-desktop',True) }}
iframe: {{ applications | get_app_conf('web-app-pixelfed','features.desktop',True) }}
{% endif %}
{% if service_provider.contact.peertube is defined and service_provider.contact.peertube != "" %}
- name: Peertube
@ -40,7 +40,7 @@ followus:
class: fa-solid fa-video
identifier: "{{service_provider.contact.peertube}}"
url: "{{ WEB_PROTOCOL }}://{{ service_provider.contact.peertube.split('@')[2] }}/@{{ service_provider.contact.peertube.split('@')[1] }}"
iframe: {{ applications | get_app_conf('web-app-peertube','features.port-ui-desktop',True) }}
iframe: {{ applications | get_app_conf('web-app-peertube','features.desktop',True) }}
{% endif %}
{% if service_provider.contact.wordpress is defined and service_provider.contact.wordpress != "" %}
- name: Wordpress
@ -49,7 +49,7 @@ followus:
class: fa-solid fa-blog
identifier: "{{service_provider.contact.wordpress}}"
url: "{{ WEB_PROTOCOL }}://{{ service_provider.contact.wordpress.split('@')[2] }}/@{{ service_provider.contact.wordpress.split('@')[1] }}"
iframe: {{ applications | get_app_conf('web-app-wordpress','features.port-ui-desktop',True) }}
iframe: {{ applications | get_app_conf('web-app-wordpress','features.desktop',True) }}
{% endif %}
{% if service_provider.contact.friendica is defined and service_provider.contact.friendica != "" %}
- name: Friendica
@ -58,5 +58,5 @@ followus:
class: fas fa-net-wired
identifier: "{{service_provider.contact.friendica}}"
url: "{{ WEB_PROTOCOL }}://{{ service_provider.contact.friendica.split('@')[2] }}/@{{ service_provider.contact.friendica.split('@')[1] }}"
iframe: {{ applications | get_app_conf('web-app-friendica','features.port-ui-desktop',True) }}
iframe: {{ applications | get_app_conf('web-app-friendica','features.desktop',True) }}
{% endif %}

View File

@ -10,7 +10,7 @@
icon:
class: fas fa-book
url: https://{{domains | get_domain('web-app-sphinx')}}
iframe: {{ applications | get_app_conf('web-app-sphinx','features.port-ui-desktop',True) }}
iframe: {{ applications | get_app_conf('web-app-sphinx','features.desktop',True) }}
{% endif %}
@ -21,7 +21,7 @@
icon:
class: "fas fa-chalkboard-teacher"
url: https://{{domains | get_domain('web-app-navigator')}}
iframe: {{ applications | get_app_conf('web-app-navigator','features.port-ui-desktop',True) }}
iframe: {{ applications | get_app_conf('web-app-navigator','features.desktop',True) }}
{% endif %}
- name: Solutions

View File

@ -11,7 +11,7 @@ docker:
features:
matomo: true # Enable Matomo Tracking
css: true # Enable Global CSS Styling
port-ui-desktop: true # Enable loading of app in iframe
desktop: true # Enable loading of app in iframe
ldap: false # Enable LDAP Network
central_database: false # Enable Central Database Network
recaptcha: false # Enable ReCaptcha

View File

@ -1,7 +1,7 @@
features:
matomo: true
css: false
port-ui-desktop: true
desktop: true
central_database: true
ldap: true
oauth2: true

View File

@ -1,7 +1,7 @@
features:
matomo: true
css: true
port-ui-desktop: true
desktop: true
logout: false
server:
csp:

View File

@ -8,7 +8,7 @@ flavor: 'taigaio' # Potential flavors: robrotheram, taigaio
features:
matomo: true
css: false
port-ui-desktop: true
desktop: true
oidc: false
central_database: true
logout: true

View File

@ -10,7 +10,7 @@ plugins:
features:
matomo: true
css: false
port-ui-desktop: true
desktop: true
oidc: true
central_database: true
logout: true

View File

@ -9,7 +9,7 @@ oauth2_proxy:
features:
matomo: true
css: true
port-ui-desktop: true
desktop: true
central_database: true
oauth2: true
logout: true

View File

@ -1,7 +1,7 @@
features:
matomo: true
css: true
port-ui-desktop: false
desktop: false
server:
domains:
canonical:

View File

@ -1,7 +1,7 @@
features:
matomo: true
css: true
port-ui-desktop: true
desktop: true
server:
domains:
canonical:

View File

@ -1,7 +1,7 @@
features:
matomo: true
css: true
port-ui-desktop: true
desktop: true
server:
domains:
canonical:

View File

@ -1,7 +1,7 @@
features:
matomo: true
css: true
port-ui-desktop: true
desktop: true
javascript: false
logout: false
server:

View File

@ -11,7 +11,7 @@ docker:
features:
matomo: false # Matomo tracking isn't necessary
css: true # Enable Global CSS Styling
port-ui-desktop: true # Enable loading of app in iframe
desktop: true # Enable loading of app in iframe
ldap: false # Enable LDAP Network
central_database: false # Enable Central Database Network
recaptcha: false # Enable ReCaptcha

View File

@ -18,7 +18,7 @@ docker:
features:
matomo: true # Enable Matomo Tracking
css: true # Enable Global CSS Styling
port-ui-desktop: true # Enable loading of app in iframe
desktop: true # Enable loading of app in iframe
ldap: false # Enable LDAP Network
central_database: false # Enable Central Database Network
recaptcha: false # Enable ReCaptcha

View File

@ -177,10 +177,10 @@ class TestCspFilters(unittest.TestCase):
def test_build_csp_header_frame_ancestors(self):
"""
frame-ancestors should include the wildcarded SLD+TLD when
'port-ui-desktop' is enabled, and omit it when disabled.
'desktop' is enabled, and omit it when disabled.
"""
# Ensure feature enabled and domain set
self.apps['app1']['features']['port-ui-desktop'] = True
self.apps['app1']['features']['desktop'] = True
# simulate a subdomain for the application
self.domains['web-app-port-ui'] = ['domain-example.com']
@ -192,7 +192,7 @@ class TestCspFilters(unittest.TestCase):
)
# Now disable the feature and rebuild
self.apps['app1']['features']['port-ui-desktop'] = False
self.apps['app1']['features']['desktop'] = False
header_no = self.filter.build_csp_header(self.apps, 'app1', self.domains, web_protocol='https')
# Should no longer contain the wildcarded sld.tld
self.assertNotIn("*.domain-example.com", header_no)

View File

@ -57,7 +57,7 @@ galaxy_info:
"applications": {
"portfolio": {
"features": {
"port-ui-desktop": True
"desktop": True
}
}
},
@ -90,7 +90,7 @@ galaxy_info:
"applications": {
"portfolio": {
"features": {
"port-ui-desktop": True
"desktop": True
}
}
},