Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Request for Entrypoint to be included in the Spec #422

Open
BBialeckiACR opened this issue Dec 14, 2020 · 1 comment
Open

Request for Entrypoint to be included in the Spec #422

BBialeckiACR opened this issue Dec 14, 2020 · 1 comment

Comments

@BBialeckiACR
Copy link

Entrypoint - Entrypoints describe how data is accepted and results are emitted. Entrypoints and their security are defined as part of a Components Workload.
For DICOM Use Case
DimseInEntrypoint, DimseOutEntrypoint, WadoRsInEntrypoint, StowRsInEntrypoint, StowRsOutEntrypoint, OperatorInEntrypoint, OperatorOutEntrypoint or DicomRestApiEntrypoint are reserved names with standardized schemas defined within this standard. These are also defined within the Standard Scope definitions of OAM. Definitions at this level are made with default values. Mutability is defined when the entrypoint is applied to a component.
For Example:

DICOM DIMSE In Entrypoint Schematic

apiVersion: standard.oam.dev/v1alpha2
kind: EntrypointDefintion
metadata:
  name: DimseInEntrypoint
spec:
  definitionRef:
    name: schema.dimseinentrypoint.oam.dev

image
image

Example DIMSE In Entrypoint Definition

apiVersion: standard.oam.dev/v1alpha2
kind: DimseInEntrypoint
metadata:
  name: example-app-dimse-in-entrypoint
spec:
  inputAet: MYAPPAET
  inputPort: 11112
  inputHost: 192.168.10.10
  security: 
    type: tls
    properties:
      version: 1.2
      clientCertCn: client.hospital.org
      serverCertCn: server.app.com
      cipherSuite: TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384

Usage in Component Spec
image
image

Example Component with mutable parameters for Entrypoint

apiVersion: core.oam.dev/v2
kind: Component
metadata:
    name: dimseserver
spec:
    type: DicomServerWorkload
    settings:
        livenessProbe:
            httpGet:
                port: 8080
                path: /live
        readinessProbe:
            httpGet:
                port: 8080
                path: /ready        
        logAccess:
            httpGet:
                port: 8080
                path: /log
                httpHeaders:
                    - name: systemToken
                      value: sampleheadertoken
        env:
        - name: inputHost
          value: samplehost.domain.com
        - name: ip
          value: 10.20.30.40
    entrypoints:
        - entrypointRef:
              apiVersion: standard.oam.dev/v1alpha2
              kind: DimseInEntrypoint
              name: example-app-dimse-in-entrypoint
    parameters:
        - name: inputHost
          description: Input Host Name
          fieldPaths: 
          - "spec.settings.env[0].value"
          - "spec.entrypoints[0].spec.inputHost.value"
          required: false
        - name: ip
          description: IP
          fieldPaths: 
          - "spec.settings.env[1].value"
          required: false
        - name: inputAet
          description: Input AET
          fieldPaths:
          - "spec.entrypoints[0].spec.inputAet.value"
          required: false
        - name: inputPort
          description: Input Port
          fieldPaths:
          - "spec.entrypoints[0].spec.inputPort.value"
          required: false 
@BBialeckiACR
Copy link
Author

As an update to this request, Entrypoints describe how data is accepted and results are emitted. Entrypoints and their security are defined separately as resources and applied to a Components Workload in the Application Configuration.
Entrypoints are requested to have their own schema definitions:

Attributes:

apiVersion - A string that identifies the version of the schema the resource object should have.
kind - Entrypoint or Entrypoint Definition
metadata - Information about the resource. The name used here must be unique to the Platform and will be used when building the Application Configuration.
spec - The settings to be used to define resource using the resource schema. Those setting which will be mutable or those required at the time of application invocation or instantiation are also defined here.

Entrypoint Spec

settings - properties defined in the schema
security - security properties defined in the schema
parameters - those properties in settings and security that are mutable or require user input

Example Definition:

apiVersion: standard.oam.dev/v1alpha2
kind: EntrypointDefintion
metadata:
  name: cStoreEntrypoint
spec:
  aet:
    description: This is the Called AET (Application Entity Title) of the Entrypoint.  It is the intended acceptor of the service request.
    type: string
  port:
    description: This is the port which will be used to initiate the DIMSE service request.
    type: integer
  host:
    description: The fully qualified domain name or IP address of the SCP (Service Class Provider).
    type: string

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

No branches or pull requests

1 participant