Compare commits

..

No commits in common. "dad7ee2f2005b1e646bb66cbdba2d65222365f02" and "c7ff39169a6a37638e9ff834e44aaa5cf21127a1" have entirely different histories.

16 changed files with 20 additions and 51 deletions

View File

@ -120,28 +120,17 @@ def generate_playbook_entries(roles_dir, prefix=None):
# Include the remaining unsorted roles
final_sorted_roles += [role for role in sorted_role_names if role not in final_sorted_roles]
# Remove duplicates, keeping only the first occurrence to preserve dependency order
seen = set()
deduplicated_roles = []
for role in final_sorted_roles:
if role not in seen:
deduplicated_roles.append(role)
seen.add(role)
# Generate the playbook entries
entries = []
for role_name in deduplicated_roles:
for role_name in final_sorted_roles:
role = roles[role_name]
entries.append(
f"- name: setup {role['application_id']}\n"
f" when: ('{role['application_id']}' in group_names)\n"
entry = (
f"- name: setup {role['application_id']}\n" # Use application_id here
f" when: ('{role['application_id']}' in group_names)\n" # Correct condition format
f" include_role:\n"
f" name: {role['role_name']}\n"
)
entries.append(
f"- name: flush handlers after {role['application_id']}\n"
f" meta: flush_handlers\n"
)
entries.append(entry)
return entries

View File

@ -2,7 +2,7 @@
## Description
Elevate your website management with [Joomla](https://www.joomla.org/), a powerful content management system that fuses versatility with dynamic design. Experience a vibrant platform that inspires creativity and drives your digital presence to new, energetic heights.
Elevate your website management with Joomla, a powerful content management system that fuses versatility with dynamic design. Experience a vibrant platform that inspires creativity and drives your digital presence to new, energetic heights.
## Overview

View File

@ -11,7 +11,3 @@ features:
domains:
canonical:
- "microblog.{{ primary_domain }}"
csp:
whitelist:
frame-src:
- "*"

View File

@ -24,5 +24,4 @@ galaxy_info:
documentation: "https://s.veen.world/cymais"
logo:
class: "fa-solid fa-database"
run_after:
- docker-postgres
dependencies: []

View File

@ -23,5 +23,4 @@ galaxy_info:
documentation: "https://s.veen.world/cymais"
logo:
class: "fa-solid fa-user-lock"
run_after:
- docker-ldap
dependencies: []

View File

@ -25,5 +25,4 @@ galaxy_info:
documentation: https://s.veen.world/cymais
logo:
class: "fa-solid fa-database"
run_after:
- docker-mariadb
dependencies: []

View File

@ -24,5 +24,4 @@ galaxy_info:
documentation: "https://s.veen.world/cymais"
logo:
class: "fa-solid fa-camera"
run_after:
- docker-keycloak
dependencies: []

View File

@ -112,7 +112,7 @@
description: Access our comprehensive documentation and support resources to help you get the most out of the software.
icon:
class: fas fa-book
url: https://{{domains | get_domain('sphinx')}}
url: https://{{domains.sphinx}}
iframe: {{ applications | is_feature_enabled('portfolio_iframe','sphinx') }}
{% endif %}
@ -123,16 +123,10 @@
description: Checkout the presentation
icon:
class: "fas fa-chalkboard-teacher"
url: https://{{domains | get_domain('presentation')}}
url: https://{{domains.presentation}}
iframe: {{ applications | is_feature_enabled('portfolio_iframe','presentation') }}
{% endif %}
- name: Solutions
description: "Software and IT Infrastructure Solutions by Kevin Veen-Birkenbach"
icon:
class: fa-solid fa-rocket
url: "https://cybermaster.space/"
iframe: false
- name: Imprint
description: Check out the imprint information

View File

@ -19,8 +19,6 @@ csp:
flags:
style-src:
unsafe-inline: true
script-src:
unsafe-inline: true
domains:
canonical:
- "{{ primary_domain }}"

View File

@ -1,4 +1,2 @@
application_id: "html-server"
domain: "{{domains | get_domain(application_id)}}"
features:
portfolio_iframe: true # Necessary for imprint loading
application_id: "html-server"
domain: "{{domains | get_domain(application_id)}}"

View File

@ -28,8 +28,6 @@ class TestCspConfigurationConsistency(unittest.TestCase):
return True
if entry.startswith(('data:', 'blob:')):
return True
if entry == '*':
return True
parsed = urlparse(entry)
return parsed.scheme in ('http', 'https') and bool(parsed.netloc)

View File

@ -181,7 +181,7 @@ class TestCspFilters(unittest.TestCase):
# Expect '*.domain-example.com' in the frame-ancestors directive
self.assertRegex(
header,
r"frame-ancestors\s+'self'\s+domain-example\.com;"
r"frame-ancestors\s+'self'\s+\*\.domain-example\.com;"
)
# Now disable the feature and rebuild