You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: services/apps/packages_worker/src/maven/README.md
+14-14Lines changed: 14 additions & 14 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -127,12 +127,12 @@ The POM fetcher seeds `repos` with URL-derivable fields only. The GitHub enriche
127
127
128
128
| Value | Meaning |
129
129
|-------|---------|
130
-
|`pom_fetcher`| Critical — full POM + parent resolution succeeded |
131
-
|`pom_fetcher_direct`| Non-critical — direct POM fetch succeeded (no parent resolution) |
132
-
|`pom_fetcher_not_on_central`|`maven-metadata.xml` not found on `repo1.maven.org` — artifact is hosted on a third-party repository (e.g. WSO2 Nexus, JBoss, Atlassian). Universe data came from an aggregator (deps.dev, OSV). |
133
-
|`pom_fetcher_no_version`|`maven-metadata.xml` found but `<release>` is empty — artifact has no stable release |
134
-
|`pom_fetcher_error`|`maven-metadata.xml` has a release version but the `.pom` file for that version is a 404. Typical cause: partial deploy to Maven Central (metadata updated, artifact not uploaded) or Eclipse P2 feature artifacts that don't publish a standard POM. |
135
-
|`pom_fetcher_rate_limited`| Maven Central returned 403/429 on all retry attempts. Package will be retried on the next pass. |
130
+
|`maven`| Critical — full POM + parent resolution succeeded |
131
+
|`maven_direct`| Non-critical — direct POM fetch succeeded (no parent resolution) |
132
+
|`maven_not_on_central`|`maven-metadata.xml` not found on `repo1.maven.org` — artifact is hosted on a third-party repository (e.g. WSO2 Nexus, JBoss, Atlassian). Universe data came from an aggregator (deps.dev, OSV). |
133
+
|`maven_no_version`|`maven-metadata.xml` found but `<release>` is empty — artifact has no stable release |
134
+
|`maven_error`|`maven-metadata.xml` has a release version but the `.pom` file for that version is a 404. Typical cause: partial deploy to Maven Central (metadata updated, artifact not uploaded) or Eclipse P2 feature artifacts that don't publish a standard POM. |
135
+
|`maven_rate_limited`| Maven Central returned 403/429 on all retry attempts. Package will be retried on the next pass. |
@@ -143,19 +143,19 @@ The POM fetcher seeds `repos` with URL-derivable fields only. The GitHub enriche
143
143
144
144
WSO2 publishes some artifacts exclusively to their own Nexus at `maven.wso2.org`. A subset of their artifacts appear in `packages_universe` (sourced from deps.dev/OSV which aggregates all Maven repositories) but are **not** available on `repo1.maven.org/maven2`.
145
145
146
-
Affected pattern: `org.wso2.carbon.*` — specifically `.feature` Eclipse P2 artifacts and `.stub` artifacts. These are written with `ingestion_source = 'pom_fetcher_not_on_central'` and are not retried until the next `nonCriticalPomRefreshDays` window.
146
+
Affected pattern: `org.wso2.carbon.*` — specifically `.feature` Eclipse P2 artifacts and `.stub` artifacts. These are written with `ingestion_source = 'maven_not_on_central'` and are not retried until the next `nonCriticalPomRefreshDays` window.
147
147
148
148
### Eclipse P2 Feature Artifacts (`*.feature`)
149
149
150
-
Eclipse/OSGi feature artifacts (e.g. `org.wso2.carbon.identity.xacml.server.feature`) are packaged as `.zip` files, not `.jar`. Some publishers update `maven-metadata.xml` on Central without uploading the corresponding `.pom`. These land in `pom_fetcher_error`. No fix is possible without the publisher correcting their CI/CD pipeline.
150
+
Eclipse/OSGi feature artifacts (e.g. `org.wso2.carbon.identity.xacml.server.feature`) are packaged as `.zip` files, not `.jar`. Some publishers update `maven-metadata.xml` on Central without uploading the corresponding `.pom`. These land in `maven_error`. No fix is possible without the publisher correcting their CI/CD pipeline.
151
151
152
152
### Maven Central 403 rate limiting
153
153
154
154
Maven Central (`repo1.maven.org`) restituisce 403 come meccanismo di throttle oltre al canonico 429. Il comportamento è gestito a due livelli:
155
155
156
156
1.**Retry con backoff esponenziale** — 403 e 429 vengono ritentati fino a 3 volte (2s base, ×2 per tentativo). Gestito in `getWithRetry` (extract.ts) e `resolveVersionsList` (metadata.ts).
157
157
158
-
2.**Fallback su DB** — se tutti i retry esauriscono, il pacchetto viene scritto con `ingestion_source = 'pom_fetcher_rate_limited'` e `last_synced_at = NOW()`, evitando loop infiniti. Verrà ritentato al prossimo ciclo di refresh.
158
+
2.**Fallback su DB** — se tutti i retry esauriscono, il pacchetto viene scritto con `ingestion_source = 'maven_rate_limited'` e `last_synced_at = NOW()`, evitando loop infiniti. Verrà ritentato al prossimo ciclo di refresh.
159
159
160
160
**Causa root dei 403 persistenti:**`packages_universe` è ordinato per `rank_in_ecosystem`, quindi pacchetti dello stesso namespace (es. `com.google.apis`, `org.wso2`, `software.amazon.awssdk`) si raggruppano nel batch e colpiscono lo stesso CDN node di Maven Central in rapida successione. Il rate limit scatta sistematicamente dopo ~150–200 pacchetti processati.
161
161
@@ -167,7 +167,7 @@ Namespace noti per triggerare il rate limit a causa dell'alta densità di artefa
167
167
168
168
### Partial Maven Central Deploys
169
169
170
-
Occasionally a publisher's CI/CD updates `<release>` in `maven-metadata.xml` before the `.pom` is fully propagated to all Central mirrors. These appear as `pom_fetcher_error` on the first pass and usually resolve on the next periodic refresh.
170
+
Occasionally a publisher's CI/CD updates `<release>` in `maven-metadata.xml` before the `.pom` is fully propagated to all Central mirrors. These appear as `maven_error` on the first pass and usually resolve on the next periodic refresh.
171
171
172
172
---
173
173
@@ -221,7 +221,7 @@ The daily Temporal schedule has a **12-hour workflow timeout**. With `POM_FETCHE
221
221
222
222
## Scheduling
223
223
224
-
Runs daily at **4am UTC** via Temporal schedule `maven-pom-fetcher`.
224
+
Runs daily at **4am UTC** via Temporal schedule `maven`.
225
225
Overlap policy: `SKIP` — if a previous run is still active, the new trigger is dropped.
226
226
Catchup window: 1 hour.
227
227
Workflow timeout: 12 hours.
@@ -274,9 +274,9 @@ ORDER BY packages DESC;
274
274
```
275
275
276
276
Expected behaviour:
277
-
-`pom_fetcher` (critical, full resolution) → high repo coverage
278
-
-`pom_fetcher_direct` (non-critical, no parent resolution) → low repo coverage
279
-
-`pom_fetcher_not_on_central` / `pom_fetcher_error` → no repo (no POM data)
277
+
-`maven` (critical, full resolution) → high repo coverage
278
+
-`maven_direct` (non-critical, no parent resolution) → low repo coverage
279
+
-`maven_not_on_central` / `maven_error` → no repo (no POM data)
280
280
281
281
Repo coverage will grow naturally as the critical package set expands and as non-critical packages hit their 30-day POM refresh window.
0 commit comments