Skip to content

Development - #1285

Merged
NishaSharma14 merged 174 commits into
mainfrom
development
Jul 9, 2026
Merged

Development#1285
NishaSharma14 merged 174 commits into
mainfrom
development

Conversation

@NishaSharma14

@NishaSharma14 NishaSharma14 commented Oct 30, 2025

Copy link
Copy Markdown
Contributor

NishaSharma14 and others added 16 commits October 9, 2025 11:06
feat: enable CAS based import & extend molecule:clean to query for CAS metadata
* feat: refactor support bubble to block spamming.
- use google recaptcha v3 for bot detection
- implement rate limiting on support bubble submissions
- add server-side validation for gibberish content

* copilot review comment fix

* decrease the ratelimit

* fix: tidy up recaptcha from composer

* fix: composer warning suppressed, psr-5 warning resolved

---------

Co-authored-by: Venkata Nainala <mailcs76@gmail.com>
* configure laravel CSP

* include composer.lock changes

* fix pinting issues

* Update app/Support/Csp/Policies/NmrxivPolicy.php

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix pinting issues

* Apply suggestion from @Copilot

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix pinting issues

* fix: moved csp-report endpoint to admin routes and removed unused socialite orcid package

* chore: pint updates

* fix: ziggyvue import updates and also added link to the csp-report in the admin view

* chore: prettier formating added

* build dev image for CSP

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Chandu Nainala <mailcs76@gmail.com>
…s dashboard (#1277)

* feat: Enable search and filtering on projects dashboard
- update code to unify project badge logic
- move the project badge to a reusable component

* prettier formating

* run prettier

* copilot review changes

* add one time command to update project statuses

* fix: unmatched return type error fix

* fix: style changes to filter button

* fix: manifest json regenerated

* chore: pint formatting changes

* fix: composer update

* fix: npm audit fixes

---------

Co-authored-by: Venkata Nainala <mailcs76@gmail.com>
* fix: modify nmrxiv policy to fix csp issues

* fix:remove single policy addition and make multiple additions for font-src directive

* pint formatting

* updated policy to include missing directives

* update ORCID API endpoint in csp policy

* more formatting and removal of duplicates.

* NMRIUM_URL

* add nmrium in frame-src and connect-src directives

* revert dev build tag change

* revert missing tags for dev-latest images

* deploy latest csp changes

* fix:revert dev-build changes
* add test coverage workflow

* add .env.ci

* use postgres instead of mysql for testing

* add meilisearch test config and adjust redis to local for ci

* remove healtchecks for redis and meilisearch services

* fix the db mismatch issues in CI

* fix filesystem driver issue

* rectify .env file name

* add .env.ci.test with correct DB_PASSWORD

* skip ELNSubmissionTrackingTest.php test that requires external API access in CI environment

* ELNSubmissionTrackingTest

* fixx failing tests

* update Code cov token

* update test-coverage workflow and .env.ci.test

* fix LicenseFactory issue

* update composer install command and revert license factory changes

* fix env for mielisearch in ci

* run test for every commit/sync/pr/merge to dev and main branch

* linting fix

* skip ELNSubmissionTrackingTest and allow read and write permission for code coverage

* inherit secrets

* Update PostgreSQL image version to 17

---------

Co-authored-by: Chandu Nainala <mailcs76@gmail.com>
* add test coverage workflow

* add .env.ci

* use postgres instead of mysql for testing

* add meilisearch test config and adjust redis to local for ci

* remove healtchecks for redis and meilisearch services

* fix the db mismatch issues in CI

* fix filesystem driver issue

* rectify .env file name

* add .env.ci.test with correct DB_PASSWORD

* skip ELNSubmissionTrackingTest.php test that requires external API access in CI environment

* ELNSubmissionTrackingTest

* fixx failing tests

* update Code cov token

* update test-coverage workflow and .env.ci.test

* fix LicenseFactory issue

* update composer install command and revert license factory changes

* fix env for mielisearch in ci

* run test for every commit/sync/pr/merge to dev and main branch

* linting fix

* skip ELNSubmissionTrackingTest and allow read and write permission for code coverage

* inherit secrets

* feat: add tests for models

* chore: pint formatting of some tests

* fix: failing tests due to URL generation and storage issues

* run pint formatting

* fix: failing tests

* run pint formatting

* revert test database name

---------

Co-authored-by: Chandu Nainala <mailcs76@gmail.com>
* feat: add comprehensive project tests and factories

* fix: add unit tests for NMRiumModel

* pint formatting

* composer update symfony/http-foundation

* Update app/Events/ProjectMemberAdded.php

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update app/Events/AddingProjectMember.php

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Initial plan (#1296)

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>

* :void

* Initial plan (#1297)

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>

* revert copilot changes

* fix failing tests

* revert db name in phpunit.xml

* run lint

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Chandu Nainala <mailcs76@gmail.com>
* chore: csp optimization
remove csp routes and commands, update policy to remove unused sources

* review changes

* pint and formatting

---------

Co-authored-by: Chandu Nainala <mailcs76@gmail.com>
vcnainala and others added 15 commits June 3, 2026 23:25
Extend dashboard query handling and refresh the projects index with
search, pagination, and workspace-aware filtering.
Factories often create projects without attaching the owner to project_users,
so dashboard sharing UI now reports owner correctly via userProjectRole.
Exercise repair command dispatch paths, inspector query methods, and
ProcessProject unique lock TTL to satisfy Codecov patch thresholds.
* feat(ui): add shared public site header and navigation utilities

Extract PublicSiteHeader, deposit CTA helpers, and public nav config so
public pages share consistent navigation and branding.

* feat(pages): add dedicated FAQs Inertia page and route

Register /faqs as a named Inertia route alongside other public pages.

* refactor(ui): adopt shared header and refresh public-facing pages

Redesign welcome, about, legal, and browse pages to use PublicSiteHeader,
unified footer, and shared empty-state styling.

* refactor(search): improve unified search and structure editor UX

Consolidate structure drawing helpers and align search, predict, and upload
flows with the updated public search interface.

* style(ui): polish authenticated app layout header controls

Improve notification badge placement and tighten header action spacing.

* test: add feature coverage for public Inertia pages

Assert welcome, about, FAQs, legal, and projects routes render expected components.

* chore(build): update frontend lockfiles and Vite openchemlib config

Dedupe and pre-bundle openchemlib for reliable structure editor loading.

* fix(tests): use RefreshDatabase for public Inertia page tests

Routes for welcome, about, FAQs, legal, and public projects pages query
the database for stats; migrations must run in CI for valid Inertia responses.

* fix(tests): use SSR Inertia assertions for public page tests

The test suite renders Inertia via the root Blade template (data-page),
not X-Inertia JSON. Use assertInertiaPageComponent to match existing tests.
Increase memory_limit for queue-heavy workloads and add supervisord
Horizon worker plus .env.example notes for local Sail setups.
Surface backup failures clearly and align job tests with the revised
backup workflow.

Co-authored-by: Nisha Sharma <nisha.sharma@uni-jena.de>
* fix(compounds): repair missing compound info during processing

Add scheduled repair command and enrichment inspectors, and invoke them
from submission and project processing jobs when metadata is incomplete.

* test(compounds): expand coverage for repair and inspector helpers

Exercise repair command dispatch paths, inspector query methods, and
ProcessProject unique lock TTL to satisfy Codecov patch thresholds.
* fix(auth): align project and study policies with member access

Ensure invite flows and API resources respect updated authorization
rules for collaborators and reviewers.

* fix(tests): align reviewer coverage with current review UI

Return owner from userProjectRole when the user owns the project but is
not on the members pivot, and match policy PR tests to Project/Show until
the public browse refactor lands.
…o development

# Conflicts:
#	resources/js/Pages/Public/Compounds.vue
#	resources/js/Shared/Footer.vue
#	resources/js/Shared/PublicSiteHeader.vue
#	resources/js/Shared/UnifiedSearch.vue
#	resources/js/Utils/publicNavItems.js
#	tests/Feature/AboutPageTest.php
#	tests/Feature/FaqsPageTest.php
#	tests/Feature/LegalPagesTest.php
#	tests/Feature/Project/ProjectControllerAdditionalCoverageTest.php
#	tests/Feature/PublicProjectsPageTest.php
#	tests/Feature/WelcomePageTest.php
Show create actions on the upload page via AppLayout and remove the
duplicate "Create New" control from the drafts picker.
Tone down the metrics cards so hero search stays primary: smaller
typography, compact layout, and subtler borders.
* fix(tests): repair failing CI test suite on development

Allow ApplicationController::renderProjectForRequest to handle studies
and datasets without a parent project instead of raising a TypeError.
Treat empty-string text columns as missing in the molecule enrichment
query since molecular_formula is NOT NULL in the schema. Disable the
cookie consent middleware in tests because it rewrites response HTML
and breaks Inertia assertions. Align the project role and workspace
tests with owner-first role resolution, and fake nested Artisan calls
with a proxy partial mock so the outer command still runs.

* fix(security): resolve critical npm audit advisories

Override shell-quote to >=1.8.4 (GHSA-w7jw-789q-3m8p) and bump the
instantsearch.js qs override to 6.15.2 (GHSA-q8mj-m7cp-5q26) so the
npm audit high-severity gate passes again.
* refactor(draft): add ownership policy and shared draft utilities

Introduce DraftPolicy for owner checks, centralize community draft
detection on the Draft model, and extract filesystem detach logic into
a reusable action. Harden draft and publish endpoints against missing
projects and unauthorized access using Laravel authorization traits.

* feat(community): add partial sample publishing backend

Add community contribution routes, draft provisioning, and a publish
action that queues selected studies via ProcessSubmission while keeping
the staging draft. Extend ProcessSubmission for partial study IDs and
draft preservation without changing full publication submissions.

* feat(community): add workspace UI and deposit navigation

Add the community contribution page with file upload, structure assignment,
and sample submission modals. Extract shared draft processing and structure
parsing utilities, and unify deposit data entry points across the app.

* test: fix CI failures from community contribution changes

Pass the new DetachStudyFilesystemFromDraft dependency to
ProcessSubmission::handle in unit tests, restore study readiness after
the filesystem observer resets it in the community publish test, and
assert the new redirect behavior for drafts without a project. Make
DraftFactory deterministic by defaulting is_deleted to false instead of
a random boolean, which caused flaky draft visibility assertions.

* fix(security): resolve composer audit advisories for Laravel 12

Bump laravel/framework to v12.62.0 and transitive HTTP/crypto
dependencies so composer audit passes the June 2026 advisories.

* fix(security): resolve high-severity npm audit advisories

Bump vite to 6.4.3 and override form-data and vitepress transitive
dependencies so the PR npm audit gate passes again.
const lines = trimmed.split("\n");

if (lines.length <= 2 && trimmed.length < 500) {
const smilesPattern = /^[A-Za-z0-9@+\-\[\]()=#\\/\\.:]+$/;
datasetDetails.studySlug +
"/" +
datasetDetails.datasetSlug;
let safeDatasetUrl = datasetUrl;
vcnainala and others added 14 commits June 22, 2026 10:50
* feat(ui): add shared public site header and navigation utilities

Extract PublicSiteHeader, deposit CTA helpers, and public nav config so
public pages share consistent navigation and branding.

* feat(pages): add dedicated FAQs Inertia page and route

Register /faqs as a named Inertia route alongside other public pages.

* refactor(ui): adopt shared header and refresh public-facing pages

Redesign welcome, about, legal, and browse pages to use PublicSiteHeader,
unified footer, and shared empty-state styling.

* refactor(search): improve unified search and structure editor UX

Consolidate structure drawing helpers and align search, predict, and upload
flows with the updated public search interface.

* style(ui): polish authenticated app layout header controls

Improve notification badge placement and tighten header action spacing.

* test: add feature coverage for public Inertia pages

Assert welcome, about, FAQs, legal, and projects routes render expected components.

* chore(build): update frontend lockfiles and Vite openchemlib config

Dedupe and pre-bundle openchemlib for reliable structure editor loading.

* feat(search): add catalog text search API with legacy route support

Introduce normalized text search endpoints under v1/search, keep deprecated
routes for compatibility, and refresh OpenAPI documentation.

* feat(search): add public text search Inertia page and client API helpers

Expose /search for catalog browsing, wire unified search to the new API,
and share pagination and fetch utilities across public search views.

* refactor(public): refresh public project, study, and compound pages (#1424)

Improve public Inertia layouts, citation and access dialogs, and compound
browsing while keeping shared header navigation consistent.
)

* feat(dashboard): improve workspace filters and project listing UX

Extend dashboard query handling and refresh the projects index with
search, pagination, and workspace-aware filtering.

* fix(dashboard): restore reviewer preview without public layout refactor

Keep private reviewer links on Project/Show until ApplicationController
ships the unified public renderer, and treat project owners as owner in
viewer_role when they are not on the members pivot.

---------

Co-authored-by: Nisha Sharma <nisha.sharma@uni-jena.de>
* fix: update csp to include meilisearch host

* chore: regenerate vite manifest after merge

---------

Co-authored-by: Chandu Nainala <mailcs76@gmail.com>
* fix: format time to utc

* composer update
* feat(deployment): include nmrkit deployment in docker-compose.dev.yml
update deployment script to include nmrkit deployment

* feat(deployment): add nmrKit to production deployment docker-compose and deployment script

* npm update

* fix(deps): sync package-lock.json after npm update merge

Regenerate the lockfile so npm ci succeeds in CI after the partial
npm update commit left package.json and package-lock.json out of sync.
* fix: remove deprecated search endpoints
- failing query for inchikey & tags
- updated return response
- updated tests to reflect changes

* fix: update return response for empty result in Schema APIs

* fix: failing tests
- update DataController to fix failing response for filters
- update null response for invalid identifiers to return 404 instead of 403

* test: fix the failing tests for DataCiteController
# Conflicts:
#	.phpunit.cache/test-results
#	app/Actions/Citation/SyncCitations.php
#	app/Console/Commands/PublishReleasedProjects.php
#	app/Console/Commands/SanitizeMolecules.php
#	app/Http/Controllers/API/DataController.php
#	app/Http/Controllers/API/Schemas/Bioschemas/BioschemasController.php
#	app/Http/Controllers/API/SearchController.php
#	app/Http/Resources/ProjectResource.php
#	app/Jobs/ArchiveStudy.php
#	app/Jobs/ProcessSubmission.php
#	app/Providers/EventServiceProvider.php
#	app/Services/AuthorService.php
#	app/Services/FileSystemObjectService.php
#	bootstrap/app.php
#	bootstrap/providers.php
#	composer.lock
#	database/factories/NMRiumFactory.php
#	package-lock.json
#	resources/js/Pages/About.vue
#	resources/js/Pages/Study/About.vue
#	resources/js/Pages/Upload.vue
#	resources/js/Pages/Welcome.vue
#	resources/js/Shared/Children.vue
#	resources/js/Shared/SpectraEditor.vue
#	routes/console.php
#	tests/Feature/ManageAuthorsTest.php
#	tests/Unit/SyncProjectAuthorsActionTest.php
#	yarn.lock
Route projects with studies but no remaining draft through
finalizeProjectModeFromReleaseDate instead of exiting early, so
embargo republish jobs resolve to published as expected.
* http://localhost/chemistry/standardize

* whats new notification for user after every release.

---------

Co-authored-by: Chandu Nainala <mailcs76@gmail.com>
Clarify publication and community contribution copy in the deposit menu
and community contribution navbar.
* build(deps): upgrade to Laravel 13 and compatible packages

Bump the framework and packages that blocked the upgrade, including
l5-swagger, spatie/backup, markable, tinker, boost, and PHPUnit 12.

* refactor(config): apply Laravel 13 framework configuration changes

Update Sanctum CSRF middleware, cache serializable_classes defaults,
PHPUnit 12 schema, and document env prefix pinning for deploy safety.

* fix(swagger): configure l5-swagger 11 for legacy OpenAPI annotations

Register a reflection analyser that supports docblock annotations alongside
PHP attributes and regenerate the API documentation for swagger-php 6.

* chore(cursor): update Laravel Boost guidelines for Laravel 13

Align documented package versions with the upgraded framework and tooling.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment