Skip to content

Conversation

@alexskr
Copy link
Contributor

@alexskr alexskr commented Sep 24, 2025

alexskr and others added 23 commits February 3, 2025 17:30
Develop to master merge, release v6.5.0
Add `system_controlled` DSL to LinkedData::Hypermedia::Resource

- Adds `:system_controlled` to the DSL SETTINGS list
- Allows declaring system-assigned (internally-managed) attributes in model classes
- Intended for use in the API layer to reject client input for restricted fields like `uploadFilePath`
- Mirrors the behavior of other DSLs like `serialize_never` (last call wins)
- Add selected attributes to system_controlled list for User, OntologySubmission, Note and Project model as a proof of concept. More models may follow after further analysis.

See ncbo/bioportal-project#348
Feature: submission version validation and fixes to the metadata auto-extraction
Develop -> Master merge, release v6.6.0
- Switch from shelling out to `file --mime` to checking magic bytes
  (PK for ZIP, 1F 8B for GZIP). Improves portability and removes
  external dependency.
- Add `safe_join` guard to block path traversal.
- Normalize gzip names via `resolve_gzip_name` (strip control chars,
  collapse to basename, ensure non-empty).
- Explicitly exclude .tar.gz and .tgz files (not supported yet).
- align with RubyZip v3+ semantics:
    - enforce explicit destination_directory (no implicit cwd writes),
    - block path traversal (`../` entries skipped).
- use streaming writes (`IO.copy_stream`) to reduce memory usage.
- Rename `files_from_zip` to `filenames_in_archive` for clarity
  (returns entry names, not extracted files
- add rubyzip gem as dependency to gemspec
- pin thin gem to v1 for compatibility reasons
 Refactor: improve archive handling in LinkedData::Utils::FileHelpers
Develop -> Master merge, release v6.6.1
@alexskr alexskr merged commit a698a4f into ontoportal:master Sep 25, 2025
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants