📖
Eclipse PASS Documentation
PASS Documentation - DEV
PASS Documentation - DEV
  • Welcome to the Public Access Submission System (PASS) Documentation
  • PASS Welcome Guide
    • Research Submission Overview
    • PASS at JHU
    • PASS Demonstrations at Conferences
    • Technology Stack
    • PASS Architecture
    • Latest Release
    • Setup and Run PASS Locally
    • Collaboration with Other Institutions
    • Contributing to PASS
  • Community
    • Developer Guidelines
    • PASS Roadmap
    • Release Notes
  • Developer Documentation
    • Use Cases
    • PASS Core
      • Authentication & Authorization
      • API
        • DOI API
        • File API
        • Metadata Schema API
        • Policy API
        • User API
      • Model
        • Deposit
        • File
        • Funder
        • Grant
        • Journal
        • Policy
        • Publication
        • Repository
        • RepositoryCopy
        • Submission
        • SubmissionEvent
        • User
    • PASS UI
    • Data Loaders
      • Grant Loader
      • Journal Loader
      • NIHMS Loader
    • Deposit Services
      • Knowledge Needed / Skills Inventory
      • Technologies Utilized
      • Model
      • Statuses
      • Business Logic
      • Assemblers
      • Configuration
      • Next Steps / Institution Configuration
    • Notification Services
      • Knowledge Needed / Skills Inventory
      • Technologies Utilized
      • Model
      • Business Logic
      • Template
      • Dispatch
      • Configuration
      • Next Steps / Institution Configuration
    • PASS Acceptance Testing
    • PASS Docker
      • Testing InvenioRDM
    • Release
      • Automated Release
  • PASS Infrastructure
    • CI/CD
    • Code Quality Analysis
      • Code Coverage
    • Deployment
      • GitHub CI/CD
    • Operations/Production
      • Knowledge Needed / Skills Inventory
      • Technologies Utilized
      • PASS Design & AWS Architecture
      • AWS Cost Estimates
      • PASS Versioning
      • How to Deploy
      • Monitoring
      • Data Loaders
      • Data & Backups
      • Eclipse Operations
      • Next Steps / Institution Configuration
Powered by GitBook
On this page
  • Technologies Utilized
  • Installation
  • Running pass-ui Inside the Docker Environment
  • Building for the Docker Environment
  • Running pass-ui Outside of the Docker Environment
  • Configure the Docker Environment
  • Run pass-ui on a Host Machine
  • Test Users
  • Configuration
  • Testing
  • Linting
  • CI
  • Related Documentation:
  1. Developer Documentation

PASS UI

PreviousUserNextData Loaders

Last updated 6 months ago

PASS is an application which provides a unified user interface that allow its users to deposit manuscripts into multiple repositories as required by applicable funding agency's public access policies

PASS communicates with an , and on the backend that serves json in conformance with the .

Technologies Utilized

Installation

  • Clone the repository using the following command: git clone https://github.com/eclipse-pass/pass-ui

  • Change into the directory that was cloned: cd pass-ui

  • Run the following command: pnpm i

Running pass-ui Inside the Docker Environment

The default environment for running pass-ui locally utilizes .

pass-docker can run with pass-ui running inside of the docker network in its own service and docker container with these .

This environment is not as conducive for active development of pass-ui, depending on your host machine's operating system you might be able to run pass-ui on your host machine outside of the docker network and use these to forward traffic from the docker network to your host machine.

Building for the Docker Environment

GitHub automations are in place to produce production builds during a release. If you want to develop a build for local testing, you can use the build.sh script, specifying a .env file:

./build.sh ../pass-docker/.env

This script will remove any existing files in dist/, perform an Ember dev build, and create a new pass-ui Docker image with the :latest tag

Running pass-ui Outside of the Docker Environment

It can be a better development experience to run pass-ui outside of pass-docker. To do this complete the following steps:

Configure the Docker Environment

You will need to configure pass-core to load the UI from localhost:4200.

This can be done by seting the environment variable PASS_CORE_APP_LOCATION to http://host.docker.internal:4200/app/ in .env. This will bypass the pass-ui container.

Then simply use docker compose like normal.

docker compose -f docker-compose.yml -f eclipse-pass.local.yml <your command here>

You may also consider stopping the pass-ui container.

Run pass-ui on a Host Machine

Start ember on port 4200.

ember s

Test Users

Configuration

The application also gets "branding" configuration from a config.json file, with a default implementation found in the public/ directory, which is automatically made available by default at /app/config.json.

config.json

{
  "branding": {
    "homepage": "https://www.eclipse.org/org/foundation/",
    "logo": "ef/eclipse_foundation_logo_wo/EF_WHT-OR_png.png",
    "favicon": "favicon.ico",
    "stylesheet": "/app/branding.css",
    "overrides": "/app/branding-overrides.css",
    "pages": {
      "showPagesNavBar": false
    },
    "error": {
      "icon": "/app/error-icon.png"
    }
  }
}

Testing

Linting

This project uses (husky)[https://github.com/typicode/husky] to run a command from (lint-staged)[https://github.com/okonet/lint-staged] to run es-lint --fix and prettier --write over the staged files in a pre-commit hook. If issues arrise during a commit it might be because either one or both of these commands has failed. Check the output in the terminal for what failures have occurred.

CI

Related Documentation:

  • Development Browser Extensions

Note: You may need to investigate other ways of accessing the host machine network, .

Refer to the LDAP service in pass-docker for of test users. Each has a password of moo.

The configuration for the docker environment occurs in the pass-docker . A list of environment variables related to pass-ui, and other services, can be found there or in other .

The base theme styles can be found in branding.css. There are default fallback styles which can be overridden to customize the appearance of the UI. It is recommended to override these styles through a branding-overrides.css file. An example of these overrides to the base styles can be found .

To run the Ember.js unit/integration/acceptance tests in this repository you can run one of the scripts in the or simply run the Ember development server via ember s and visit http://localhost:8080/app/tests.

This project uses es-lint, ember-template-lint and prettier to enforce style decisions and code formatting. Consider installing .

There are also scripts defined in the that can manually lint check the project.

Testing and Linting utilizes the in Github when a pull request is opened and when there is a push to the main branch. More information regarding CI/CD can be found at the following link:

Ember.js
Elide-based API
pass-core
JSON:API spec
Git
Docker
Docker Compose
pass-docker
instructions
instructions
see
a list
.env
override .env files
here
package.json
an integration tool
package.json
ci.yml workflow
PASS Continuous Integration and Continuous Delivery
ember.js
ember-cli
ember inspector for chrome
ember inspector for firefox
PASS Continuous Integration and Continuous Delivery