Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
90b31a6
gh-418 Implement data input plug-in engine and integration with SCP s…
mocsharp Aug 3, 2023
85d7d94
Input/output data plug-in engine (#423)
mocsharp Aug 3, 2023
8cfece2
Update dependencies (#427)
mocsharp Aug 8, 2023
d54788e
gh-419 Implement data output plug-in engine and integration with SCU/…
mocsharp Aug 8, 2023
0ff1963
gh-435 Fix CLI to read log dir path from NLog config file (#436)
mocsharp Aug 10, 2023
f45656b
New APIs to get a list of input/output data plug-ins (#437)
mocsharp Aug 10, 2023
b9a2c37
Virtual AE & Dynamic DICOMWeb STOW-RS Endpoints (#448)
mocsharp Aug 16, 2023
b780769
Update Ardalis.GuardClauses
mocsharp Aug 3, 2023
d945237
Update coverlet.collector
mocsharp Aug 3, 2023
adef5cf
Update Microsoft .NET 6 libraries
mocsharp Aug 3, 2023
e5f94a0
Update fo-dicom
mocsharp Aug 3, 2023
9023a65
Implement OutputDataPluginEngine for export service (SCU, DICOMWeb)
mocsharp Aug 7, 2023
cf9976f
adding externalApp plugins
neildsouth Aug 8, 2023
14da905
Update licenses
mocsharp Aug 8, 2023
4c7499b
Include WorkflowInstanceId and TaskId in Payload
mocsharp Aug 8, 2023
d701f62
fixing up errors
neildsouth Aug 9, 2023
4aff9cf
adding tag list to configuration
neildsouth Aug 9, 2023
932d718
fix up samll issues
neildsouth Aug 9, 2023
64feb58
change to how dicomTag are stored
neildsouth Aug 9, 2023
3d6015c
refactoring and more tests
neildsouth Aug 11, 2023
bbced00
adding test
neildsouth Aug 14, 2023
fa9dbeb
Regenerate EF DB migration code
mocsharp Aug 16, 2023
22c23d2
Fix unit test
mocsharp Aug 16, 2023
0729d34
Refactor RemoteAppExecution plug-ins to a new project
mocsharp Aug 19, 2023
adc1098
Ignore generated code from license scanning
mocsharp Aug 19, 2023
244c6f3
Include WorkflowInstanceId and TaskId in the md.workflow.request event
mocsharp Aug 19, 2023
46c5840
Rename plug-ins
mocsharp Aug 21, 2023
27e4a3c
Update user guide with data plug-ins feature
mocsharp Aug 21, 2023
9ab118b
fix up export complete message for external app execution
neildsouth Aug 22, 2023
2eacbce
Merge pull request #429 from Project-MONAI/nds/#422
neildsouth Aug 22, 2023
f88af26
change so that publish and build copy the new plugin assembly RemoteA…
neildsouth Aug 25, 2023
b069e17
fixup for docker build
neildsouth Aug 25, 2023
d619c62
Merge pull request #456 from Project-MONAI/nds-fix-IOPlugin-copy
neildsouth Aug 25, 2023
6d2cf96
Support new Workflow Request event data structure (#455)
mocsharp Aug 25, 2023
c9c584c
making project nullable
neildsouth Sep 8, 2023
1b39059
Merge pull request #466 from Project-MONAI/AI94-nds-logging
neildsouth Sep 8, 2023
340f181
Store payload IDs in DicomAssociationInfo table (#470)
mocsharp Sep 8, 2023
664452a
Update nlog.config to include scope props in console logs
mocsharp Sep 8, 2023
1018ca0
Publish API project to nuget (#473)
mocsharp Sep 13, 2023
3583122
Update package-cleanup.yml
mocsharp Sep 13, 2023
ddfec9e
Update package-cleanup.yml
mocsharp Sep 13, 2023
d27cec3
Update package-cleanup.yml
mocsharp Sep 13, 2023
047406b
Main (#477)
mocsharp Sep 18, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
7 changes: 6 additions & 1 deletion .dockerignore
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -73,4 +73,9 @@ bld/
# files ending in .cache can be ignored
*.[Cc]ache
# but keep track of directories ending in .cache
!*.[Cc]ache/
!*.[Cc]ache/

docker-compose/
doc
guidlines
tests
8 changes: 6 additions & 2 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Copyright 2022 MONAI Consortium
# Copyright 2022-2023 MONAI Consortium
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
Expand All @@ -18,7 +18,7 @@
root = true

# Copyright File Header
file_header_template = SPDX-FileCopyrightText: [year file created] - [last year file modified], MONAI Consortium\nSPDX-License-Identifier: Apache License 2.0
file_header_template = SPDX-FileCopyrightText: © [year file created] - [last year file modified], MONAI Consortium\nSPDX-License-Identifier: Apache License 2.0
dotnet_diagnostic.IDE0073.severity = error

# Default settings:
Expand Down Expand Up @@ -309,3 +309,7 @@ max_line_length = 88
[*.json]
indent_size = 2
insert_final_newline = ignore


# Spelling
spelling_error_severity = information
2 changes: 1 addition & 1 deletion .github/.gitversion.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,4 +29,4 @@ branches:
ignore:
sha: []
merge-message-formats: {}
next-version: 0.3.14
next-version: 0.3.17
71 changes: 65 additions & 6 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Copyright 2021-2022 MONAI Consortium
# Copyright 2021-2023 MONAI Consortium
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
Expand Down Expand Up @@ -39,6 +39,7 @@ jobs:
semVer: ${{ steps.gitversion.outputs.semVer }}
preReleaseLabel: ${{ steps.gitversion.outputs.preReleaseLabel }}
majorMinorPatch: ${{ steps.gitversion.outputs.majorMinorPatch }}
nuGetVersionV2: ${{ steps.gitversion.outputs.nuGetVersionV2 }}

steps:
- uses: actions/checkout@v3
Expand Down Expand Up @@ -255,7 +256,7 @@ jobs:
timeout-minutes: 30
strategy:
matrix:
feature: [AcrApi, DicomDimseScp, DicomDimseScu, DicomWebExport, DicomWebStow, HealthLevel7, Fhir]
feature: [AcrApi, DicomDimseScp, DicomDimseScu, DicomWebExport, DicomWebStow, HealthLevel7, Fhir, RemoteAppExecutionPlugIn]
database: [ef, mongodb]
fail-fast: false
env:
Expand Down Expand Up @@ -308,6 +309,7 @@ jobs:
runs-on: ${{ matrix.os }}
needs: [calc-version]
env:
NUGETVER: ${{ needs.calc-version.outputs.nuGetVersionV2 }}
SEMVER: ${{ needs.calc-version.outputs.semVer }}
PRERELEASELABEL: ${{ needs.calc-version.outputs.preReleaseLabel }}
MAJORMINORPATCH: ${{ needs.calc-version.outputs.majorMinorPatch }}
Expand Down Expand Up @@ -388,8 +390,24 @@ jobs:
path: ~/release
retention-days: 7

- name: Package API
if: ${{ (matrix.os == 'ubuntu-latest') }}
run: |
mkdir ~/nupkg
dotnet pack --no-build -c ${{ env.BUILD_CONFIG }} -o ~/nupkg -p:PackageVersion=${{ env.NUGETVER }}
ls -lR ~/nupkg
working-directory: ./src/Api

- name: Upload Nuget
if: ${{ matrix.os == 'ubuntu-latest' }}
uses: actions/[email protected]
with:
name: nuget
path: ~/nupkg
retention-days: 30

- name: Log in to the Container registry
uses: docker/login-action@v2.1.0
uses: docker/login-action@v2.2.0
if: ${{ (matrix.os == 'ubuntu-latest') }}
with:
registry: ${{ env.REGISTRY }}
Expand All @@ -398,7 +416,7 @@ jobs:

- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@v4.3.0
uses: docker/metadata-action@v4.6.0
if: ${{ (matrix.os == 'ubuntu-latest') }}
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
Expand All @@ -407,7 +425,7 @@ jobs:
type=raw,value=latest,enable=${{ endsWith(github.ref, github.event.repository.default_branch) }}

- name: Build and push Docker image
uses: docker/build-push-action@v4.0.0
uses: docker/build-push-action@v4.1.1
if: ${{ (matrix.os == 'ubuntu-latest') }}
with:
context: .
Expand All @@ -425,7 +443,7 @@ jobs:

- name: Anchore container scan
id: anchore-scan
uses: anchore/[email protected].5
uses: anchore/[email protected].6
if: ${{ (matrix.os == 'ubuntu-latest') }}
with:
image: ${{ fromJSON(steps.meta.outputs.json).tags[0] }}
Expand Down Expand Up @@ -501,6 +519,31 @@ jobs:
name: artifacts
path: ~/release
retention-days: 7

publish:
name: Publish to GitHub Packages
runs-on: ubuntu-latest
needs: [build, unit-test, integration-test]
if: ${{ ! ( github.event.inputs.nuget ) && ! ( contains(github.ref, 'refs/heads/main') ) }}
steps:
- uses: actions/download-artifact@v3
id: download

- name: List artifacts
run: ls -ldR ${{steps.download.outputs.download-path}}/**/*

- name: Install grp
run: dotnet tool install gpr -g

- uses: actions/setup-dotnet@v3
env:
NUGET_AUTH_TOKEN: ${{secrets.GITHUB_TOKEN}}
with:
dotnet-version: "6.0.x"
source-url: https://nuget.pkg.github.com/Project-MONAI/index.json

- name: Publish to GitHub
run: gpr push '${{ steps.download.outputs.download-path }}/nuget/*.nupkg' --repository ${{ github.repository }} -k ${{ secrets.GITHUB_TOKEN }}

release:
if: ${{ contains(github.ref, 'refs/heads/main') || contains(github.ref, 'refs/heads/develop') ||contains(github.head_ref, 'release/') || contains(github.head_ref, 'feature/') || contains(github.head_ref, 'develop') }}
Expand All @@ -521,6 +564,22 @@ jobs:

- name: List artifacts
run: ls -ldR ${{steps.download.outputs.download-path}}/**/*

- name: Install grp
run: dotnet tool install gpr -g

- uses: actions/setup-dotnet@v3
env:
NUGET_AUTH_TOKEN: ${{secrets.GITHUB_TOKEN}}
with:
dotnet-version: "6.0.x"
source-url: https://nuget.pkg.github.com/Project-MONAI/index.json

- name: Publish to GitHub
run: gpr push '${{ steps.download.outputs.download-path }}/nuget/*.nupkg' --repository ${{ github.repository }} -k ${{ secrets.GITHUB_TOKEN }}

- name: Publish to NuGet.org
run: dotnet nuget push ${{ steps.download.outputs.download-path }}/nuget/*.nupkg -s https://api.nuget.org/v3/index.json --api-key ${{ secrets.NUGET }} --skip-duplicate

- name: Extract owner and repo
uses: jungwinter/split@v2
Expand Down
58 changes: 58 additions & 0 deletions .github/workflows/package-cleanup.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
# Copyright 2021-2023 MONAI Consortium
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.



name: Cleanup Pre-release Packages

on:
schedule:
- cron: "0 0 * * *"
workflow_dispatch:

jobs:
nuget-api-prerelease-cleanup:
name: pre-release Monai.Deploy.InformaticsGateway.Api
runs-on: ubuntu-latest
steps:
- uses: actions/delete-package-versions@v4
with:
package-name: 'Monai.Deploy.InformaticsGateway.Api'
package-type: nuget
min-versions-to-keep: 10
delete-only-pre-release-versions: "true"

container-prerelease-cleanup:
name: delete pre-release monai-deploy-informatics-gateway
runs-on: ubuntu-latest
steps:
- uses: actions/delete-package-versions@v4
with:
package-name: 'monai-deploy-informatics-gateway'
package-type: container
min-versions-to-keep: 10
delete-only-pre-release-versions: "true"
ignore-versions: '^0\.[\d]+\.[\d]+$'

container-untagged-cleanup:
name: delete untagged monai-deploy-informatics-gateway
runs-on: ubuntu-latest
steps:
- uses: actions/delete-package-versions@v4
with:
package-name: 'monai-deploy-informatics-gateway'
package-type: container
min-versions-to-keep: 0
delete-only-untagged-versions: "true"

1 change: 1 addition & 0 deletions .licenserc.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ header:
- 'src/coverlet.runsettings'
- 'src/Monai.Deploy.InformaticsGateway.sln'
- 'src/Database/EntityFramework/Migrations/**'
- 'src/Plug-ins/RemoteAppExecution/Migrations/**'
- 'demos/**/.env/**'
- 'demos/**/*.txt'
- 'doc/dependency_decisions.yml'
Expand Down
19 changes: 19 additions & 0 deletions .trivyignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# Copyright 2023 MONAI Consortium
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# https://github.com/Project-MONAI/monai-deploy-informatics-gateway/issues/450
CVE-2018-8292

# https://github.com/Project-MONAI/monai-deploy-informatics-gateway/issues/451
CVE-2019-0820
Loading