Skip to content

Commit eeaa585

Browse files
author
thomas loubrieu
committed
2 parents ceb9626 + 38933c2 commit eeaa585

33 files changed

Lines changed: 1742 additions & 456 deletions

.github/workflows/automated-testing.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,10 @@ jobs:
1414
steps:
1515
-
1616
name: Checkout Repository
17-
uses: actions/checkout@v4
17+
uses: actions/checkout@v5
1818
-
1919
name: ☕️ Set up OpenJDK
20-
uses: actions/setup-java@v4
20+
uses: actions/setup-java@v5
2121
with:
2222
distribution: 'adopt'
2323
java-version: '11'

.github/workflows/branch-cicd.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,16 +33,16 @@ jobs:
3333
steps:
3434
-
3535
name: 💳 Checkout
36-
uses: actions/checkout@v4
36+
uses: actions/checkout@v5
3737
with:
3838
lfs: true
3939
fetch-depth: 0
4040
token: ${{secrets.ADMIN_GITHUB_TOKEN || github.token}}
4141
-
4242
name: Set up Python 3
43-
uses: actions/setup-python@v5
43+
uses: actions/setup-python@v6
4444
with:
45-
python-version: '3.9'
45+
python-version: '3.13'
4646
-
4747
name: 💵 Python Cache
4848
uses: actions/cache@v4

.github/workflows/codeql-analysis.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ jobs:
2323

2424
steps:
2525
- name: Checkout repository
26-
uses: actions/checkout@v4
26+
uses: actions/checkout@v5
2727
with:
2828
# We must fetch at least the immediate parents so that if this is
2929
# a pull request then we can checkout the head.
@@ -73,7 +73,7 @@ jobs:
7373
7474
7575
- name: Upload CodeQL Artifacts
76-
uses: actions/upload-artifact@v4
76+
uses: actions/upload-artifact@v5
7777
with:
7878
name: codeql-artifacts
7979
path: ${{ env.RESULTS_DIR }}
@@ -85,7 +85,7 @@ jobs:
8585
steps:
8686
-
8787
name: 💳 Checkout
88-
uses: actions/checkout@v4
88+
uses: actions/checkout@v5
8989
with:
9090
lfs: true
9191
fetch-depth: 0
@@ -100,7 +100,7 @@ jobs:
100100

101101
-
102102
name: Upload SLOC
103-
uses: actions/upload-artifact@v4
103+
uses: actions/upload-artifact@v5
104104
with:
105105
name: sloc-count
106106
path: ${{ github.workspace }}/cloc.md
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
name: Issue Project Automation
2+
3+
on:
4+
issues:
5+
types: [opened, labeled, unlabeled]
6+
7+
jobs:
8+
# When an issue is opened, add it to default project(s)
9+
add-new-issue-to-project:
10+
if: github.event.action == 'opened'
11+
uses: NASA-PDS/.github/.github/workflows/add-issue-to-project.yml@main
12+
with:
13+
issue_number: ${{ github.event.issue.number }}
14+
repository: ${{ github.repository }}
15+
# Update project_numbers below based on your needs
16+
# Single project: project_numbers: "6"
17+
# Multiple projects: project_numbers: "6,22"
18+
project_numbers: "6"
19+
secrets:
20+
# IMPORTANT: GITHUB_TOKEN does not have permission for org projects
21+
# You must create a PAT with 'project' scope and add it as ORG_PROJECT_PAT
22+
# See workflow-templates/README.md for setup instructions
23+
gh_token: ${{ secrets.ORG_PROJECT_PAT }}
24+
25+
# When a label is added or removed, handle build labels and sprint-backlog automation
26+
handle-label:
27+
if: github.event.action == 'labeled' || github.event.action == 'unlabeled'
28+
uses: NASA-PDS/.github/.github/workflows/label-to-project.yml@main
29+
with:
30+
issue_number: ${{ github.event.issue.number }}
31+
repository: ${{ github.repository }}
32+
label_name: ${{ github.event.label.name }}
33+
action: ${{ github.event.action }}
34+
secrets:
35+
gh_token: ${{ secrets.ORG_PROJECT_PAT }}

.github/workflows/stable-cicd.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ jobs:
4848
steps:
4949
-
5050
name: 💳 Checkout
51-
uses: actions/checkout@v4
51+
uses: actions/checkout@v5
5252
with:
5353
lfs: true
5454
token: ${{secrets.ADMIN_GITHUB_TOKEN}}

.github/workflows/unstable-cicd.yaml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ jobs:
4949
steps:
5050
-
5151
name: 💳 Checkout
52-
uses: actions/checkout@v4
52+
uses: actions/checkout@v5
5353
with:
5454
lfs: true
5555
fetch-depth: 0
@@ -76,6 +76,11 @@ jobs:
7676
ossrh_password: ${{secrets.OSSRH_PASSWORD}}
7777
CODE_SIGNING_KEY: ${{secrets.CODE_SIGNING_KEY}}
7878
ADMIN_GITHUB_TOKEN: ${{secrets.ADMIN_GITHUB_TOKEN}}
79+
-
80+
name: 🛏️ Upload Coverage
81+
uses: SonarSource/sonarqube-scan-action@v6
82+
env:
83+
SONAR_TOKEN: ${{secrets.SONAR_TOKEN}}
7984

8085
...
8186

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ typescript
7878
.gwt/
7979
target/
8080
build/
81+
*.vscode/
8182

8283
# macOS specific stuff
8384
.DS_Store
@@ -87,9 +88,12 @@ build/
8788
test-data/
8889
.venv
8990
*.egg-info
91+
.coverage
92+
coverage.xml
9093

9194
# Python virtual environment
9295
venv/
96+
.tox/
9397

9498
# Certificate files
9599
*.pem

CHANGELOG.md

Lines changed: 37 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,51 @@
11
# Changelog
22

3-
## [«unknown»](https://github.com/NASA-PDS/registry/tree/«unknown») (2025-02-13)
3+
## [«unknown»](https://github.com/NASA-PDS/registry/tree/«unknown») (2025-11-06)
44

5-
[Full Changelog](https://github.com/NASA-PDS/registry/compare/v1.3.1...«unknown»)
5+
[Full Changelog](https://github.com/NASA-PDS/registry/compare/v1.4.0...«unknown»)
66

77
**Requirements:**
88

9+
- As a user, I want to receive an alert when my registry credentials are readable by someone else than myself [\#424](https://github.com/NASA-PDS/registry/issues/424)
10+
- As a node operator, I want the the registry schema to update autonomously / dynamically when new data is ingested. [\#113](https://github.com/NASA-PDS/registry/issues/113)
11+
12+
**Defects:**
13+
14+
- Some of product urn:nasa:pds:lro\_diviner\_derived2::1.0's fields are not indexed [\#422](https://github.com/NASA-PDS/registry/issues/422) [[s.high](https://github.com/NASA-PDS/registry/labels/s.high)]
15+
- Error `FIPS mode: only SunJSSE TrustManagers may be used` [\#440](https://github.com/NASA-PDS/registry/issues/440) [[s.high](https://github.com/NASA-PDS/registry/labels/s.high)]
16+
- Registry is not accepting date time with leap second, e.g. `2015-06-30T23:59:60.862Z` [\#404](https://github.com/NASA-PDS/registry/issues/404) [[s.high](https://github.com/NASA-PDS/registry/labels/s.high)]
17+
- members of GEO bundle/collection collection not found [\#403](https://github.com/NASA-PDS/registry/issues/403) [[s.high](https://github.com/NASA-PDS/registry/labels/s.high)]
18+
- CSV response not returning the values associated with `fields` argument [\#380](https://github.com/NASA-PDS/registry/issues/380) [[s.medium](https://github.com/NASA-PDS/registry/labels/s.medium)]
19+
- product has date for sweeper index but is listed as not indexed [\#375](https://github.com/NASA-PDS/registry/issues/375) [[s.medium](https://github.com/NASA-PDS/registry/labels/s.medium)]
20+
21+
**Other closed issues:**
22+
23+
- Troubleshoot SBN 403 Error [\#414](https://github.com/NASA-PDS/registry/issues/414)
24+
- Add the --legacy-sync command option to the EN sweeper in production [\#390](https://github.com/NASA-PDS/registry/issues/390)
25+
26+
## [v1.4.0](https://github.com/NASA-PDS/registry/tree/v1.4.0) (2025-07-16)
27+
28+
[Full Changelog](https://github.com/NASA-PDS/registry/compare/v1.3.1...v1.4.0)
29+
30+
**Requirements:**
31+
32+
- As a node user, I want to have multiple cognito groups and still have the main cognito node group to be effective [\#396](https://github.com/NASA-PDS/registry/issues/396)
33+
- As a user, I want to have read-only access to all registry indexes [\#350](https://github.com/NASA-PDS/registry/issues/350)
934
- As a data manager, I want to query OpenSearch Serverless from the command-line [\#273](https://github.com/NASA-PDS/registry/issues/273) [[s.critical](https://github.com/NASA-PDS/registry/labels/s.critical)]
1035

1136
**Improvements:**
1237

38+
- Document the refresh rate of OpenSearch [\#361](https://github.com/NASA-PDS/registry/issues/361)
39+
- Fix GEO node products which ops:Harvest\_Info/ops:node\_name: geo [\#360](https://github.com/NASA-PDS/registry/issues/360)
1340
- Recreate PDS EN Registry from scratch and load only necessary data [\#352](https://github.com/NASA-PDS/registry/issues/352)
1441
- Migrate registry-harvest-service documentation [\#78](https://github.com/NASA-PDS/registry/issues/78)
1542

1643
**Defects:**
1744

45+
- Registry return authorization error for ATM node [\#369](https://github.com/NASA-PDS/registry/issues/369) [[s.critical](https://github.com/NASA-PDS/registry/labels/s.critical)]
46+
- Update terraform to use port 443 not port 80 [\#365](https://github.com/NASA-PDS/registry/issues/365) [[s.critical](https://github.com/NASA-PDS/registry/labels/s.critical)]
1847
- Data products duplicated across en-registry and other node registries [\#351](https://github.com/NASA-PDS/registry/issues/351) [[s.high](https://github.com/NASA-PDS/registry/labels/s.high)]
48+
- Getting "blocked by: maximum OCU capacity reached" errors when harvesting [\#340](https://github.com/NASA-PDS/registry/issues/340) [[s.critical](https://github.com/NASA-PDS/registry/labels/s.critical)]
1949
- SBN user no longer able to access test registry [\#336](https://github.com/NASA-PDS/registry/issues/336) [[s.critical](https://github.com/NASA-PDS/registry/labels/s.critical)]
2050
- GEO index does not work, appears to be corrupted [\#331](https://github.com/NASA-PDS/registry/issues/331) [[s.critical](https://github.com/NASA-PDS/registry/labels/s.critical)]
2151
- AOSS 500/502 responses repeatedly observed under heavy load [\#329](https://github.com/NASA-PDS/registry/issues/329) [[s.high](https://github.com/NASA-PDS/registry/labels/s.high)]
@@ -25,7 +55,12 @@
2555

2656
**Other closed issues:**
2757

58+
- Investigate the opensearch serverless scale out/down parameters [\#397](https://github.com/NASA-PDS/registry/issues/397)
59+
- Clean test suite to un-skip test skipped after multitenant migration [\#378](https://github.com/NASA-PDS/registry/issues/378)
60+
- Respond to Registry SIA review from SAs [\#364](https://github.com/NASA-PDS/registry/issues/364)
61+
- Complete security vulnerability assessment for registry [\#356](https://github.com/NASA-PDS/registry/issues/356)
2862
- Update Registry configuration to support issues with IMG user\(s\) [\#337](https://github.com/NASA-PDS/registry/issues/337) [[s.critical](https://github.com/NASA-PDS/registry/labels/s.critical)]
63+
- Document in the wiki how the authorization on opensearch are managed [\#334](https://github.com/NASA-PDS/registry/issues/334)
2964
- Reindex MCP Prod ATM registry index with corrected mappings [\#339](https://github.com/NASA-PDS/registry/issues/339)
3065
- Investigate what the number of property per discipline node was at migration time [\#332](https://github.com/NASA-PDS/registry/issues/332)
3166
- Onboard Irma from ATM node [\#325](https://github.com/NASA-PDS/registry/issues/325)
@@ -211,7 +246,6 @@
211246

212247
**Requirements:**
213248

214-
- As a node operator, I want the the registry schema to update autonomously when new data is ingested. [\#113](https://github.com/NASA-PDS/registry/issues/113)
215249
- As a developer, I want to include supplemental file data sizes in the registry [\#112](https://github.com/NASA-PDS/registry/issues/112)
216250
- As a node operator, I want to ingest metadata regarding secondary collections that belong to a bundle. [\#109](https://github.com/NASA-PDS/registry/issues/109)
217251
- As a node operator, I want to ingest metadata regarding secondary products that belong to a collection. [\#108](https://github.com/NASA-PDS/registry/issues/108)

README.md

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ This repository specifically contains these PDS registry application resources:
1818

1919
- the source for the user/administrator documentation, see `docs` folder
2020
- docker compose script to start/test the full application with its required components, see https://github.com/NASA-PDS/registry/blob/main/docker/README.md for details. This also includes integration tests (in `docker/postman`). The integration test datasets are maintained in NASA-PDS/registry-ref-data repository.
21+
- **For developers:** See [Integration Testing Guide](https://nasa-pds.github.io/registry/developer/integration-testing.html) for instructions on adding and running integration tests.
2122

2223

2324
## Code of Conduct
@@ -59,6 +60,48 @@ To develop this project, use your favorite text editor, or an integrated develop
5960
For information on how to contribute to NASA-PDS codebases please take a look at our [Contributing guidelines](https://github.com/NASA-PDS/.github/blob/main/CONTRIBUTING.md).
6061

6162

63+
### Installation
64+
65+
Install in editable mode and with extra developer dependencies into your virtual environment of choice:
66+
67+
pip install --editable '.[dev]'
68+
69+
Make a baseline for any secrets (email addresses, passwords, API keys, etc.) in the repository:
70+
71+
detect-secrets scan . \
72+
--all-files \
73+
--disable-plugin AbsolutePathDetectorExperimental \
74+
--exclude-files '\.secrets..*' \
75+
--exclude-files '\.git.*' \
76+
--exclude-files '\.mypy_cache' \
77+
--exclude-files '\.pytest_cache' \
78+
--exclude-files '\.tox' \
79+
--exclude-files '\.venv' \
80+
--exclude-files 'venv' \
81+
--exclude-files 'dist' \
82+
--exclude-files 'build' \
83+
--exclude-files '.*\.egg-info' > .secrets.baseline
84+
85+
Review the secrets to determine which should be allowed and which are false positives:
86+
87+
detect-secrets audit .secrets.baseline
88+
89+
Please remove any secrets that should not be seen by the public. You can then add the baseline file to the commit:
90+
91+
git add .secrets.baseline
92+
93+
Then, configure the `pre-commit` hooks:
94+
95+
pre-commit install
96+
pre-commit install -t pre-push
97+
pre-commit install -t prepare-commit-msg
98+
pre-commit install -t commit-msg
99+
100+
These hooks then will check for any future commits that might contain secrets. They also check code formatting, PEP8 compliance, type hints, etc.
101+
102+
👉 **Note:** A one time setup is required both to support `detect-secrets` and in your global Git configuration. See [the wiki entry on Secrets](https://github.com/NASA-PDS/nasa-pds.github.io/wiki/Git-and-Github-Guide#detect-secrets) to learn how.
103+
104+
62105
### Documentation
63106

64107
The project uses [Sphinx](https://www.sphinx-doc.org/en/master/) to build its documentation. PDS' documentation template is already configured as part of the default build. You can build your projects docs with:

diagrams/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@ This is an attempt to use [Diagram as Code](https://diagrams.mingrammer.com/) to
1010

1111
- Brew (for MacOS/Linux users)
1212
- Chocolatey (for Windows users)
13-
- Python 3.9.0 or higher
13+
- Python 3.13.0 or higher
1414

15-
> At the time of writing this document, Python 3.9 is the required version for everyone on PDS. Please confirm with project leads to ensure you're using the latest Python version.
15+
> At the time of writing this document, Python 3.13 is the latest stable version and is recommended for PDS development. Please confirm with project leads to ensure you're using the latest Python version.
1616
1717
## Providers
1818

0 commit comments

Comments
 (0)