Raw Fileserver - Releases

← App details

Nextcloud 33

Raw Fileserver 0.5.0
Release Details
UpdatedMarch 3, 2026, 12:04 p.m.
Changelog

Breaking Changes

  • App renamed from raw to files_sharing_raw; PHP namespace from OCA\Raw to OCA\FilesSharingRaw. All routes are now exclusively available under the /raw/ root alias (requires files_sharing_raw entry in Nextcloud core RouteParser.php). Config keys (raw_*) are unchanged.
  • Routes without root alias removed: /apps/raw/s/{token}, /apps/raw/{token}, /apps/raw/{token}/{path}, /apps/raw/u/{userId}/{path}. Private access now requires /raw/u/{userId}/{path}.

Added

  • UI-based raw share management (Files sidebar integration):
  • "Enable raw link" toggle in the share's Advanced settings panel.
  • REST API: GET/POST /api/v1/raw-share/{shareId}, GET /api/v1/raw-shares/{fileId}, GET /api/v1/raw-public-url
  • DB table raw_shares: stores per-share enabled state and optional custom CSP override per share.
  • ShareDeletedListener: auto-purges DB entry on share deletion.
  • ShareUpdatedListener: handles token rotation and share updates.
  • FilesLoadAdditionalScriptsListener: injects sidebar JS bundle into the Files app.
  • DB-based share authorization (additive to config allowlist):
  • Config (allowed_raw_tokens, allowed_raw_token_wildcards) retains highest priority.
  • UI toggle creates a DB row that additively allows the share.
  • Canonical URL redirect: when files_sharing_raw is in rootUrlApps, requests to /apps/files_sharing_raw/{token}/... are 307-redirected to canonical /raw/{token}/...
  • PublicUrlBuilder service + PublicUrlController (/api/v1/raw-public-url) for generating canonical raw URLs.
  • Per-share DB CSP override: CspManager reads a custom CSP string from the DB for raw-enabled shares (priority: config token > DB CSP > path/extension/mimetype rules).
  • CSP preset selector in the Files sidebar: choose from predefined CSP templates (Server default, Sandbox, Images only, Documents, Audio/Video) or enter a custom policy.
  • raw_only flag per share: mark a share as raw-only to block the standard Nextcloud /s/{token} share page; only the /raw/{token} URL remains active. ShareRawOnlyMiddleware enforces this globally.
  • CSP editor group restriction: the Edit CSP option in the sidebar three-dot menu is only visible to members of a configurable group (default: admin). Users outside the group cannot change a share's CSP via the API — existing values are silently preserved. Configure via: occ config:app:set files_sharing_raw csp_editor_group --value="raw_csp_allowed"
  • patch-route-parser.sh: idempotent helper script to add files_sharing_raw to the rootUrlApps constant in Nextcloud core RouteParser.php.
  • IBootstrap interface implemented; event listeners registered via register() (modern Nextcloud pattern).
  • SPDX copyright/license headers added to all source files.

Fixed

  • Canonical URL redirect uses 307 (Temporary Redirect) instead of 301 (Permanent Redirect) to prevent permanent browser caching.

Changed

  • Requirement bump: PHP min-version 8.0 → 8.1, Nextcloud min-version 26 → 32.
  • CspManager: all URL forms (/raw/..., /rss/...) normalized to /apps/files_sharing_raw/... before CSP matching rules are applied.
  • PubPageController: share type now validated (must be SHARE_TYPE_LINK); non-directory shares accessed with a sub-path return plain 404 instead of throwing an exception; dead wrapper methods removed.
  • Readme restructured into feature-oriented chapters.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDDCCAvQCAhMAMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMzAzMDgxMDM5WhcNMzYwNjA4MDgxMDM5WjAcMRowGAYD
VQQDDBFmaWxlc19zaGFyaW5nX3JhdzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCC
AgoCggIBAJ9xzncYWefoqk4VmoKM8oiyr6ILqMizV8HwShbm73f5n1xGiTtFMkYb
U+vyqKA7Ckyt9PcbHphVWWFpZEwJuK/l7KqYeoFV5KiMomyXbkA5tkoOyz1MZveZ
t+YzgcL7+oEFAkjcUf+L+jU0DVVnkI7VDxwJfPgZmBIkCByyOfOCLJ1r8sBgOCI6
RTqajwnSOIh3UgDdC1bt8tQAYbJzOmxKpIFXJdyXH6ol1OXGdjbbUPHd0krESUAd
W3jlhKDrMNLu4YBzsuNN/FT4mKCEsiNd2qXfRRxNIFgITq5eWqqqfE5tM8FL7WNT
xy1gtlmZsaV2SXIddRKeWc09Ly6E9KhDOEPuUfkvRt61XbHuGDgonfZfUn/AuvT9
T/2B9Wujv/vlbH79tLV3K7f8Opcb5CmzbTPpOAG3TmfyFTcyhnPTqrb3Y3sWAl1o
Hm/iCvI9wTFeO0D/a7fTluEhcC3fFprnYWFN+XMqqV5EfxTTloEhAWIhbqDEFcPo
/RbExB6uCcCCX8bWKp4n6012WTSawSAVwBi6hy8+wQlSIbtw3gWRbvMeCQxoePCt
Np9GKkb5UKaEFGTIMMNrnTqlFAEk33HymTeIzvERPrzwr2KHkKjNG8hOAFptYadz
D/N6E3mt402EFe4buBwXHjjSQxig787hfdffwYE7OUHYSVzuI78hAgMBAAEwDQYJ
KoZIhvcNAQELBQADggEBADH8JwKxF3DcmzF6BwNxS9/jJJrV3X8CfePPH/qxIRhl
LtIimc0/tTAqGEYH86iPP022HDTeZCUC7p5hrU2N9QN6sabPSEiU6w48BVv+XC0i
h39K66gelm9HS7e+gOEVLM1YNVAKwxhKgiYoEkafe+FOPb87FIshOZiirunkuyoL
hnZmtTsEPP6yaQ2XCB9c/Ipmb3x5HkZuco0ONBo8eqZm/QBjYszLUY0Notx1zzUA
D/U0qO5svzPwneZVKYshte0l4Fc+gNGUiBynfJ5AUvCKeS0UCqiyheSRs9kG+/+6
KnBAhKP1yXLE7Fr+f5TXtC4KjjMj7GYbtL+Bl9wwC4o=
-----END CERTIFICATE-----
SignaturehJm0u0gtDyPr2kpl+A0rDSCmB+VF9X2k7s8VoE0V0dVEgkVAP0IvXrShiTYeNhr/
6YNer6gcZ038QSMrSHvjhHVzeC146rWyasiIjgxQGPTW9Zt3Eh/Yv8011kCNtflh
jR3Fs4jeXhgRA5sKNc8nHs05o2SM3AWA0MVYna7Xzzr5w4VQ7pR96ufbuuIhkSr+
40Ygxir2NyE1DgvNRKt4dmo3Sd99s5PP+zyr/g58Mjuzs1NFzermvvNaG63jKwPW
hXS6WflbijbXFhpu3Yjyy6NuCCN3DNHL5vexjwN4fHQz9sJZIqlCNITmLndZyz+T
dyV891iPf0Y4w61p1pP64OIEqoROJ+xgj+PmuYxjlnacA+Ht5tk6crtzD4mKpml1
oup6emhizLQrlTt4jZ/hr4rYPGIgo+v4o120UhPfj4VPm96Yc3SC73cfAWz+kRH3
oc+oyqUEvUnHvDoKdjazklPa4NDq1MLdxQAlO8rfVP7xrjjOnnTZRlILfNUt7Rzc
3UEbPoccm7vxoMoZqCW46Pte7TtVmCtq5Z6Vxwfb1OoGsyEQ+R/7Lf61OsqUcn8e
VIdAoQfICEbJGmTBEHTgGj8F759+rsdjJEFbfANugysFehttuI4+1UY2stLd8Cso
qM0g9LD79cuOj+q9u0RPF9ZFcVFKMDtum7ayM6dNal0=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.1.0

Nextcloud 32

Raw Fileserver 0.5.0
Release Details
UpdatedMarch 3, 2026, 12:04 p.m.
Changelog

Breaking Changes

  • App renamed from raw to files_sharing_raw; PHP namespace from OCA\Raw to OCA\FilesSharingRaw. All routes are now exclusively available under the /raw/ root alias (requires files_sharing_raw entry in Nextcloud core RouteParser.php). Config keys (raw_*) are unchanged.
  • Routes without root alias removed: /apps/raw/s/{token}, /apps/raw/{token}, /apps/raw/{token}/{path}, /apps/raw/u/{userId}/{path}. Private access now requires /raw/u/{userId}/{path}.

Added

  • UI-based raw share management (Files sidebar integration):
  • "Enable raw link" toggle in the share's Advanced settings panel.
  • REST API: GET/POST /api/v1/raw-share/{shareId}, GET /api/v1/raw-shares/{fileId}, GET /api/v1/raw-public-url
  • DB table raw_shares: stores per-share enabled state and optional custom CSP override per share.
  • ShareDeletedListener: auto-purges DB entry on share deletion.
  • ShareUpdatedListener: handles token rotation and share updates.
  • FilesLoadAdditionalScriptsListener: injects sidebar JS bundle into the Files app.
  • DB-based share authorization (additive to config allowlist):
  • Config (allowed_raw_tokens, allowed_raw_token_wildcards) retains highest priority.
  • UI toggle creates a DB row that additively allows the share.
  • Canonical URL redirect: when files_sharing_raw is in rootUrlApps, requests to /apps/files_sharing_raw/{token}/... are 307-redirected to canonical /raw/{token}/...
  • PublicUrlBuilder service + PublicUrlController (/api/v1/raw-public-url) for generating canonical raw URLs.
  • Per-share DB CSP override: CspManager reads a custom CSP string from the DB for raw-enabled shares (priority: config token > DB CSP > path/extension/mimetype rules).
  • CSP preset selector in the Files sidebar: choose from predefined CSP templates (Server default, Sandbox, Images only, Documents, Audio/Video) or enter a custom policy.
  • raw_only flag per share: mark a share as raw-only to block the standard Nextcloud /s/{token} share page; only the /raw/{token} URL remains active. ShareRawOnlyMiddleware enforces this globally.
  • CSP editor group restriction: the Edit CSP option in the sidebar three-dot menu is only visible to members of a configurable group (default: admin). Users outside the group cannot change a share's CSP via the API — existing values are silently preserved. Configure via: occ config:app:set files_sharing_raw csp_editor_group --value="raw_csp_allowed"
  • patch-route-parser.sh: idempotent helper script to add files_sharing_raw to the rootUrlApps constant in Nextcloud core RouteParser.php.
  • IBootstrap interface implemented; event listeners registered via register() (modern Nextcloud pattern).
  • SPDX copyright/license headers added to all source files.

Fixed

  • Canonical URL redirect uses 307 (Temporary Redirect) instead of 301 (Permanent Redirect) to prevent permanent browser caching.

Changed

  • Requirement bump: PHP min-version 8.0 → 8.1, Nextcloud min-version 26 → 32.
  • CspManager: all URL forms (/raw/..., /rss/...) normalized to /apps/files_sharing_raw/... before CSP matching rules are applied.
  • PubPageController: share type now validated (must be SHARE_TYPE_LINK); non-directory shares accessed with a sub-path return plain 404 instead of throwing an exception; dead wrapper methods removed.
  • Readme restructured into feature-oriented chapters.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEDDCCAvQCAhMAMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMzAzMDgxMDM5WhcNMzYwNjA4MDgxMDM5WjAcMRowGAYD
VQQDDBFmaWxlc19zaGFyaW5nX3JhdzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCC
AgoCggIBAJ9xzncYWefoqk4VmoKM8oiyr6ILqMizV8HwShbm73f5n1xGiTtFMkYb
U+vyqKA7Ckyt9PcbHphVWWFpZEwJuK/l7KqYeoFV5KiMomyXbkA5tkoOyz1MZveZ
t+YzgcL7+oEFAkjcUf+L+jU0DVVnkI7VDxwJfPgZmBIkCByyOfOCLJ1r8sBgOCI6
RTqajwnSOIh3UgDdC1bt8tQAYbJzOmxKpIFXJdyXH6ol1OXGdjbbUPHd0krESUAd
W3jlhKDrMNLu4YBzsuNN/FT4mKCEsiNd2qXfRRxNIFgITq5eWqqqfE5tM8FL7WNT
xy1gtlmZsaV2SXIddRKeWc09Ly6E9KhDOEPuUfkvRt61XbHuGDgonfZfUn/AuvT9
T/2B9Wujv/vlbH79tLV3K7f8Opcb5CmzbTPpOAG3TmfyFTcyhnPTqrb3Y3sWAl1o
Hm/iCvI9wTFeO0D/a7fTluEhcC3fFprnYWFN+XMqqV5EfxTTloEhAWIhbqDEFcPo
/RbExB6uCcCCX8bWKp4n6012WTSawSAVwBi6hy8+wQlSIbtw3gWRbvMeCQxoePCt
Np9GKkb5UKaEFGTIMMNrnTqlFAEk33HymTeIzvERPrzwr2KHkKjNG8hOAFptYadz
D/N6E3mt402EFe4buBwXHjjSQxig787hfdffwYE7OUHYSVzuI78hAgMBAAEwDQYJ
KoZIhvcNAQELBQADggEBADH8JwKxF3DcmzF6BwNxS9/jJJrV3X8CfePPH/qxIRhl
LtIimc0/tTAqGEYH86iPP022HDTeZCUC7p5hrU2N9QN6sabPSEiU6w48BVv+XC0i
h39K66gelm9HS7e+gOEVLM1YNVAKwxhKgiYoEkafe+FOPb87FIshOZiirunkuyoL
hnZmtTsEPP6yaQ2XCB9c/Ipmb3x5HkZuco0ONBo8eqZm/QBjYszLUY0Notx1zzUA
D/U0qO5svzPwneZVKYshte0l4Fc+gNGUiBynfJ5AUvCKeS0UCqiyheSRs9kG+/+6
KnBAhKP1yXLE7Fr+f5TXtC4KjjMj7GYbtL+Bl9wwC4o=
-----END CERTIFICATE-----
SignaturehJm0u0gtDyPr2kpl+A0rDSCmB+VF9X2k7s8VoE0V0dVEgkVAP0IvXrShiTYeNhr/
6YNer6gcZ038QSMrSHvjhHVzeC146rWyasiIjgxQGPTW9Zt3Eh/Yv8011kCNtflh
jR3Fs4jeXhgRA5sKNc8nHs05o2SM3AWA0MVYna7Xzzr5w4VQ7pR96ufbuuIhkSr+
40Ygxir2NyE1DgvNRKt4dmo3Sd99s5PP+zyr/g58Mjuzs1NFzermvvNaG63jKwPW
hXS6WflbijbXFhpu3Yjyy6NuCCN3DNHL5vexjwN4fHQz9sJZIqlCNITmLndZyz+T
dyV891iPf0Y4w61p1pP64OIEqoROJ+xgj+PmuYxjlnacA+Ht5tk6crtzD4mKpml1
oup6emhizLQrlTt4jZ/hr4rYPGIgo+v4o120UhPfj4VPm96Yc3SC73cfAWz+kRH3
oc+oyqUEvUnHvDoKdjazklPa4NDq1MLdxQAlO8rfVP7xrjjOnnTZRlILfNUt7Rzc
3UEbPoccm7vxoMoZqCW46Pte7TtVmCtq5Z6Vxwfb1OoGsyEQ+R/7Lf61OsqUcn8e
VIdAoQfICEbJGmTBEHTgGj8F759+rsdjJEFbfANugysFehttuI4+1UY2stLd8Cso
qM0g9LD79cuOj+q9u0RPF9ZFcVFKMDtum7ayM6dNal0=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.1.0