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

OAI ERROR: ="badResumptionToken" - The value of the resumptionToken argument is invalid or expired. #1

Open
Daniel-Mietchen opened this issue Feb 23, 2023 · 16 comments
Assignees

Comments

@Daniel-Mietchen
Copy link
Member

The notes below are from a conversation with BASE who are trying to harvest from our endpoint to update their representation of it.

Part 1

I have tried to refresh the ENKORE metadata and the interface crashes after 20 calls with 2000 records.

    <resumptionToken expirationDate="2023-02-23T10:20:22Z" completeListSize="7654" cursor="1900">1677061222567_oai_dc</resumptionToken>
  </ListRecords>

The crash happens deterministically at the same position. My experience says. this behaviour is related to a specific records which interferes fetching the metadata from the internal structure.

Part 2

[OAI ERROR: ="badResumptionToken" - The value of the resumptionToken argument is invalid or expired.]

The ResumptionToken looks like the other ones!

 <resumptionToken expirationDate="2023-02-23T12:56:32Z" completeListSize="7654" cursor="1900">1677070592975_oai_dc</resumptionToken>

Computation of Expiration date produces the problem? 
@Daniel-Mietchen
Copy link
Member Author

Our default validity period for a given token is 24h:

'tokenValid' => 86400, // 24 hours
.

@Daniel-Mietchen
Copy link
Member Author

Daniel-Mietchen commented Feb 24, 2023

Some more observations:

  • The badResumptionToken error is generated by
    $this->errors[] = new Exception('badResumptionToken');
    .
  • If I change the maxRecords value in Main.php (see template), then I am getting errors for resumption tokens whose cursor position points to 2000 or beyond.

@Daniel-Mietchen
Copy link
Member Author

Here is a transcript of a session with maxRecords set to 950:

First batch

Accessing the endpoint

curl -o oai-pmh-bug-1-maxrecords-950-curpos-0.html https://enkore.toolforge.org/oai_pmh/?verb=ListRecords&metadataPrefix=oai_dc

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 2599k  100 2599k    0     0   153k      0  0:00:16  0:00:16 --:--:--  492k

Getting resumption token

grep resumptionToken oai-pmh-bug-1-maxrecords-950-curpos-0.html

<resumptionToken expirationDate="2023-02-25T08:16:32Z" completeListSize="7654" cursor="0">1677226592372_oai_dc</resumptionToken>

Second batch

Accessing the endpoint using resumptionToken obtained from previous batch

curl -o oai-pmh-bug-1-maxrecords-950-curpos-950.html "https://enkore.toolforge.org/oai_pmh/?verb=ListRecords&resumptionToken=1677226592372_oai_dc"

% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 2843k  100 2843k    0     0   219k      0  0:00:12  0:00:12 --:--:--  426k

Getting resumption token

grep resumptionToken oai-pmh-bug-1-maxrecords-950-curpos-950.html

<request verb="ListRecords" resumptionToken="1677226592372_oai_dc">https://enkore.toolforge.org/oai_pmh/</request><resumptionToken expirationDate="2023-02-25T08:19:52Z" completeListSize="7654" cursor="950">1677226792441_oai_dc</resumptionToken>

Third batch

Accessing the endpoint using resumptionToken obtained from previous batch

curl -o oai-pmh-bug-1-maxrecords-950-curpos-1900.html "https://enkore.toolforge.org/oai_pmh/?verb=ListRecords&resumptionToken=1677226792441_oai_dc"

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:--  0:00:05 --:--:--     0

Here, curl became unresponsive, and I interrupted it after about a minute, with no file oai-pmh-bug-1-maxrecords-950-curpos-1900.html having been written.

@Daniel-Mietchen
Copy link
Member Author

Another way to look into this is by way of the access logs. Here are some bits from the session with the resumptionToken values given in the opening post to this ticket:

grep 1677061222567_oai_dc access.log

[22/Feb/2023:10:20:24 +0000] "GET /oai_pmh/?verb=ListRecords&resumptionToken=1677061222567_oai_dc HTTP/1.1" 500 0 "-" 
[22/Feb/2023:10:20:26 +0000] "GET /oai_pmh/?verb=ListRecords&resumptionToken=1677061222567_oai_dc HTTP/1.1" 200 646 "-" 

and

grep 1677070592975_oai_dc access.log

[22/Feb/2023:12:56:34 +0000] "GET /oai_pmh/?verb=ListRecords&resumptionToken=1677070592975_oai_dc HTTP/1.1" 500 0 "-" 
[22/Feb/2023:12:56:36 +0000] "GET /oai_pmh/?verb=ListRecords&resumptionToken=1677070592975_oai_dc HTTP/1.1" 200 646 "-" 

So the HTTP 500 response hints at the problem, and the subsequent 200 reflects that the error page has been served.

How frequent are the errors?

grep " 500 " access.log | wc -l

34

grep " 500 " access.log | grep "/Feb/2023" | wc -l

15

Most of these 15 are from investigating this ticket.
How does that compare to overall traffic?

grep " 200 " access.log | wc -l

1392

grep " 200 " access.log | grep "/Feb/2023" | wc -l

279

@Daniel-Mietchen
Copy link
Member Author

I am now testing all XML files individually to see whether they cause the problem:

ls *.xml | cut -d'.' -f1 > ~/7654-xml-as-of-202302241236.txt 
while IFS= read -r line; do
    echo "Text read from file: {$line}" 
    curl "https://enkore.toolforge.org/oai_pmh/?verb=GetRecord&metadataPrefix=oai_dc&identifier=${line}"
done < 7654-xml-as-of-202302241236.txt

Once this is done, I can check the access logs for 500s.

@Daniel-Mietchen
Copy link
Member Author

The script just finished, and it found four 500s:

[24/Feb/2023:12:39:21 +0000] "GET /oai_pmh/?verb=GetRecord&metadataPrefix=oai_dc&identifier=wikidata-Q40109690 HTTP/1.1" 500 0 "-" "curl/7.64.0"
[24/Feb/2023:12:44:39 +0000] "GET /oai_pmh/?verb=GetRecord&metadataPrefix=oai_dc&identifier=wikidata-Q52566034 HTTP/1.1" 500 0 "-" "curl/7.64.0"
[24/Feb/2023:12:55:51 +0000] "GET /oai_pmh/?verb=GetRecord&metadataPrefix=oai_dc&identifier=wikidata-Q56440532 HTTP/1.1" 500 0 "-" "curl/7.64.0"
[24/Feb/2023:13:29:36 +0000] "GET /oai_pmh/?verb=GetRecord&metadataPrefix=oai_dc&identifier=wikidata-Q97437032 HTTP/1.1" 500 0 "-" "curl/7.64.0"

At first glance, the problems seem to be related to unescaped characters like the & in "(A & B)" below for
http://www.wikidata.org/entity/Q40109690 , whose OAI-PMH entry at
https://enkore.toolforge.org/oai_pmh/?verb=GetRecord&metadataPrefix=oai_dc&identifier=wikidata-Q40109690
indeed gives a 500 also now.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<oai_dc:dc xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:sch
emaLocation="http://www.openarchives.org/OAI/2.0/oai_dc/ http://www.openarchives.org/OAI/2.0/oai_dc.xsd">
  <dc:identifier>http://www.wikidata.org/entity/Q40109690</dc:identifier>
  <dc:identifier>doi:10.1186/S12879-017-2646-8</dc:identifier>
  <dc:title>Simultaneous primary invasive cutaneous aspergillosis in two preterm twins: case report and review of the literature</dc:title>
  <dc:creator>Gallais, Floriane</dc:creator>
  <dc:creator>Denis, Julie</dc:creator>
  <dc:creator>Koobar, Olfa</dc:creator>
  <dc:creator>Dillenseger, Laurence</dc:creator>
  <dc:creator>Astruc, Dominique</dc:creator>
  <dc:creator>Herbrecht, Raoul</dc:creator>
  <dc:creator>Candolfi, Ermanno</dc:creator>
  <dc:creator>Letscher-Bru, Valérie</dc:creator>
  <dc:creator>Sabou, Marcela</dc:creator>
  <dc:type>text</dc:type>
  <dc:date>2017-08-02</dc:date>
  <dc:language>en</dc:language>
  <dc:subject>aspergillosis</dc:subject>
  <dc:subject>skin infection</dc:subject>
  <dc:subject>infection</dc:subject>
  <dc:publisher>Springer Science and Business Media LLC</dc:publisher>
  <dc:description>&lt;h4&gt;Background&lt;/h4&gt;Primary invasive cutaneous aspergillosis is a rare fungal infection that occurs mostly in immunocompromised patients. Newborns
 of very low birth weight present a high risk for this type of infection due to an immaturity of the cutaneous barrier and of the immune system.&lt;h4&gt;Case presentation&lt;
/h4&gt;We describe here a case of simultaneous invasive cutaneous aspergillosis in two preterm twins. Two male preterm bichorionic biamniotic twins (A & B) were born at a gene
ral hospital by spontaneous normal delivery at 24 weeks and 6 days of gestation. They were transferred to our hospital where they receive surfactant, antibiotics and hydrocort
isone. Six days later, twin A showed greenish lesions in the umbilical region. The spectrum of antibiotic therapy was broadened and fluconazole was added. The umbilical cathet
ers of the two twins were removed and replaced by epicutaneo-cava venous catheters and the cultures were positive for Aspergillus fumigatus. Fluconazole was replaced in both t
wins by liposomal amphotericin B and the incubators were changed. The serum galactomannan was also positive for both twins. At day 10, yellowish lesions appeared in the abdomi
nal region in twin B. He died on day 18 following complications related to his prematurity. Concerning the twin A, serum galactomannan was negative on day 30; liposomal amphot
ericin B was stopped 1 week later, with a relay by econazole (cream). His condition improved and on day 66 he was transferred for follow-up at the general hospital where he wa
s born.&lt;h4&gt;Conclusion&lt;/h4&gt;The source of contamination by A. fumigatus was not identified, but other similar cases from the literature include construction work at 
or near the hospital, oximeter sensors, latex finger stalls, non-sterile gloves, humidifying chambers of incubators, bedding and adhesive tapes. The skin fragility of preterm 
newborns is an excellent potential entry point for environmental fungal infections. These cases highlight the importance of suspecting primary cutaneous aspergillosis in extre
mely low birth weight neonates with rapidly progressive necrotic lesions.</dc:description>
</oai_dc:dc>

@Daniel-Mietchen
Copy link
Member Author

For completeness, the other three records:

Q52566034

No clear culprit, but some special characters and numerous odd line breaks.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<oai_dc:dc xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:sch
emaLocation="http://www.openarchives.org/OAI/2.0/oai_dc/ http://www.openarchives.org/OAI/2.0/oai_dc.xsd">
  <dc:identifier>http://www.wikidata.org/entity/Q52566034</dc:identifier>
  <dc:identifier>https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5923862</dc:identifier>
  <dc:identifier>doi:10.3390/IJERPH15040820</dc:identifier>
  <dc:title>Detection of the Invasive Mosquito Species Aedes (Stegomyia) albopictus (Diptera: Culicidae) in Portugal.</dc:title>
  <dc:creator>Osório, Hugo Costa</dc:creator>
  <dc:creator>Zé-Zé, Líbia</dc:creator>
  <dc:creator>Neto, Maria</dc:creator>
  <dc:creator>Silva, Sílvia</dc:creator>
  <dc:creator>Marques, Fátima</dc:creator>
  <dc:creator>Silva, Ana Sofia</dc:creator>
  <dc:creator>Alves, Maria João</dc:creator>
  <dc:type>journal article</dc:type>
  <dc:date>2018-04-21</dc:date>
  <dc:language>en</dc:language>
  <dc:rights>https://creativecommons.org/licenses/by/4.0/</dc:rights>
  <dc:subject>Portugal</dc:subject>
  <dc:subject>Zika virus</dc:subject>
  <dc:subject>Asian tiger mosquito</dc:subject>
  <dc:subject>invasive species</dc:subject>
  <dc:subject>invasive mosquito species</dc:subject>
  <dc:subject>Culicidae</dc:subject>
  <dc:publisher>MDPI AG</dc:publisher>
  <dc:description>The Asian tiger mosquito Aedes albopictus is an invasive mosquito originating from the Asia-Pacific region. This species is of major concern to public and ve
terinary health because of its vector role in the transmission of several pathogens, such as chikungunya, dengue, and Zika viruses. In Portugal, a National Vector Surveillance
 Network (REde de VIgil&acirc;ncia de VEctores&mdash;REVIVE) is responsible for the surveillance of autochthonous, but also invasive, mosquito species at points of entry, such
 as airports, ports, storage areas, and specific border regions with Spain. At these locations, networks of mosquito traps are set and maintained under surveillance throughout
 the year. In September 2017, Ae. albopictus was detected for the first time in a tyre company located in the North of Portugal. Molecular typing was performed, and a prelimin
ary phylogenetic analysis indicated a high similarity with sequences of Ae. albopictus collected in Europe. A prompt surveillance response was locally implemented to determine
 its dispersal and abundance, and adult mosquitoes were screened for the presence of arboviral RNA. A total of 103 specimens, 52 immatures and 51 adults, were collected. No pa
thogenic viruses were detected. Despite the obtained results suggest low abundance of the population locally introduced, the risk of dispersal and potential establishment of A
e. albopictus in Portugal has raised concern for autochthonous mosquito-borne disease outbreaks.</dc:description>
</oai_dc:dc>

Q56440532

Some special characters and newlines here too, but the most suspicious is the +project:ipy bit.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<oai_dc:dc xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:sch
emaLocation="http://www.openarchives.org/OAI/2.0/oai_dc/ http://www.openarchives.org/OAI/2.0/oai_dc.xsd">
  <dc:identifier>http://www.wikidata.org/entity/Q56440532</dc:identifier>
  <dc:identifier>doi:10.5194/ESSD-7-239-2015</dc:identifier>
  <dc:title>The IPY 2007–2008 data legacy &ndash; creating open data from IPY publications</dc:title>
  <dc:creator>Driemel, A.</dc:creator>
  <dc:creator>Grobe, H.</dc:creator>
  <dc:creator>Diepenbroek, M.</dc:creator>
  <dc:creator>Grüttemeier, H.</dc:creator>
  <dc:creator>Schumacher, S.</dc:creator>
  <dc:creator>Sieger, R.</dc:creator>
  <dc:type>journal article</dc:type>
  <dc:date>2015-09-08</dc:date>
  <dc:language>en</dc:language>
  <dc:rights>https://creativecommons.org/licenses/by/3.0/</dc:rights>
  <dc:subject>theme:invasion management</dc:subject>
  <dc:subject>open data</dc:subject>
  <dc:subject>invasion management</dc:subject>
  <dc:publisher>Copernicus GmbH</dc:publisher>
  <dc:description>&lt;jats:p&gt;Abstract. The International Polar Year (IPY) 2007–2008 was a synchronized effort to simultaneously collect data from polar regions. Being the f
ourth in a series of IPYs, the demand for interdisciplinarity and new data products was high. However, despite all the research done on land, people, ocean, ice and atmosphere
 and the large amount of data collected, no central archive or portal was created for IPY data. In order to improve the availability and visibility of IPY data, a concerted ef
fort between PANGAEA – Data Publisher for Earth and Environmental Science, the International Council for Science (ICSU) World Data System (WDS), and the International Council 
for Scientific and Technical Information (ICSTI) was undertaken to extract data resulting from IPY publications for long-term preservation.  Overall, 1380 IPY-related referenc
es were collected. Of these, only 450 contained accessible data. All data were extracted, quality checked, annotated with metadata and uploaded to PANGAEA. The 450 articles de
alt with a multitude of IPY topics – plankton biomass, water chemistry, ice thickness, whale sightings, Inuit health, alien species introductions by travellers or tundra bioma
ss change, to mention just a few. Both the Arctic and the Antarctic were investigated in the articles, and all realms (land, people, ocean, ice and atmosphere) and a wide rang
e of countries were covered. The data compilation can now be found with the identifier doi:10.1594/PANGAEA.150150, and individual parts can be searched using the PANGAEA searc
h engine (www.pangaea.de) and adding "+project:ipy". With this effort, we hope to improve the visibility, accessibility and long-term storage of IPY data for future research a
nd new data products.
                    &lt;/jats:p&gt;</dc:description>
</oai_dc:dc>

Q97437032

Here, the culprit is likely the & again, this time in A.R.Sherwood & J.M.Huisman.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<oai_dc:dc xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:sch
emaLocation="http://www.openarchives.org/OAI/2.0/oai_dc/ http://www.openarchives.org/OAI/2.0/oai_dc.xsd">
  <dc:identifier>http://www.wikidata.org/entity/Q97437032</dc:identifier>
  <dc:identifier>https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7340295</dc:identifier>
  <dc:identifier>doi:10.1371/JOURNAL.PONE.0234358</dc:identifier>
  <dc:title>Taxonomic determination of the cryptogenic red alga, Chondria tumulosa sp. nov., (Rhodomelaceae, Rhodophyta) from Papahānaumokuākea Marine National Monument, Hawai
'i, USA: A new species displaying invasive characteristics</dc:title>
  <dc:creator>Sherwood, Alison Ruth</dc:creator>
  <dc:creator>Huisman, John M</dc:creator>
  <dc:creator>O Paiano, Monica</dc:creator>
  <dc:creator>Williams, Taylor M</dc:creator>
  <dc:creator>Kosaki, Randall K.</dc:creator>
  <dc:creator>Smith, Celia M</dc:creator>
  <dc:creator>Giuseffi, Louise</dc:creator>
  <dc:creator>Spalding, Heather L</dc:creator>
  <dc:type>journal article</dc:type>
  <dc:date>2020-07-07</dc:date>
  <dc:language>en</dc:language>
  <dc:rights>https://creativecommons.org/publicdomain/zero/1.0/</dc:rights>
  <dc:subject>aquatic invasion</dc:subject>
  <dc:subject>species nova</dc:subject>
  <dc:subject>Rhodomelaceae</dc:subject>
  <dc:subject>Chondria tumulosa</dc:subject>
  <dc:publisher>Public Library of Science (PLoS)</dc:publisher>
  <dc:description>Survey cruises by the National Oceanic and Atmospheric Administration (NOAA) in 2016 and 2019 yielded specimens of an undetermined red alga that rapidly atta
ined alarming levels of benthic coverage at Pearl and Hermes Atoll, Papahānaumokuākea Marine National Monument, Hawai'i. By 2019 the seaweed had covered large expanses on the 
northeast side of the atoll with mat-like, extensive growth of entangled thalli. Specimens were analyzed using light microscopy and molecular analysis, and were compared to mo
rphological descriptions in the literature for closely related taxa. Light microscopy demonstrated that the specimens likely belonged to the rhodomelacean genus Chondria, yet 
comparisons to taxonomic literature revealed no morphological match. DNA sequence analyses of the mitochondrial COI barcode marker, the plastidial rbcL gene, and the nuclear S
SU gene confirmed its genus-level placement and demonstrated that this alga was unique compared to all other available sequences. Based on these data, this cryptogenic seaweed
 is here proposed as a new species: Chondria tumulosa A.R.Sherwood & J.M.Huisman sp. nov. Chondria tumulosa is distinct from all other species of Chondria based on its large, 
robust thalli, a mat-forming tendency, large axial diameter in mature branches (which decreases in diameter with subsequent orders of branching), terete axes, and bluntly roun
ded apices. Although C. tumulosa does not meet the criteria for the definition of an invasive species given that it has not been confirmed as introduced to Pearl and Hermes At
oll, this seaweed is not closely related to any known Hawaiian native species and is of particular concern given its sudden appearance and rapid increase in abundance in the P
apahānaumokuākea Marine National Monument; an uninhabited, remote, and pristine island chain to the northwest of the Main Hawaiian Islands.</dc:description>
</oai_dc:dc>

@Daniel-Mietchen
Copy link
Member Author

Since the problems seem to sit mainly in the abstracts, I will remove these for now and then test the OAI responses again.

@Daniel-Mietchen
Copy link
Member Author

Abstracts are removed. Now let's try the responses again.

3 fixed, one to go:

[24/Feb/2023:14:27:54 +0000] "GET /oai_pmh/?verb=GetRecord&metadataPrefix=oai_dc&identifier=wikidata-Q40109690 HTTP/1.1" 200 2039 "https://github.com/InvasionBiologyHypotheses/simple_oai_pmh_endpoint/issues/1" 
[24/Feb/2023:14:27:58 +0000] "GET /oai_pmh/?verb=GetRecord&metadataPrefix=oai_dc&identifier=wikidata-Q52566034 HTTP/1.1" 200 2201 "https://github.com/InvasionBiologyHypotheses/simple_oai_pmh_endpoint/issues/1" 
[24/Feb/2023:14:28:00 +0000] "GET /oai_pmh/?verb=GetRecord&metadataPrefix=oai_dc&identifier=wikidata-Q56440532 HTTP/1.1" 500 0 "https://github.com/InvasionBiologyHypotheses/simple_oai_pmh_endpoint/issues/1" 
[24/Feb/2023:14:28:02 +0000] "GET /oai_pmh/?verb=GetRecord&metadataPrefix=oai_dc&identifier=wikidata-Q97437032 HTTP/1.1" 200 2330 "https://github.com/InvasionBiologyHypotheses/simple_oai_pmh_endpoint/issues/1"

In the remaining case (Q56440532), the issue is likely the ndash in the title, so let's replace that with "-" for now.

@Daniel-Mietchen
Copy link
Member Author

OK, next try with https://enkore.toolforge.org/oai_pmh/?verb=GetRecord&metadataPrefix=oai_dc&identifier=wikidata-Q56440532 .

Tada!

[24/Feb/2023:14:34:23 +0000] "GET /oai_pmh/?verb=GetRecord&metadataPrefix=oai_dc&identifier=wikidata-Q56440532 HTTP/1.1" 200 1912 "https://github.com/InvasionBiologyHypotheses/simple_oai_pmh_endpoint/issues/1" 

Now let's add some screenshots:

image

image

image

image

@Daniel-Mietchen
Copy link
Member Author

I am now going to play with maxrecords again to see whether the batch harvesting works.

@Daniel-Mietchen
Copy link
Member Author

With a maxrecords value of 10000, it worked:

[24/Feb/2023:14:49:34 +0000] "GET /oai_pmh/?verb=ListRecords&metadataPrefix=oai_dc HTTP/1.1" 200 17895292 "-" 

That's an 18MB blob, though, so I'll set it back to 1000.

@Daniel-Mietchen
Copy link
Member Author

OK, tested it with 1000, no hickups.

image

@Daniel-Mietchen
Copy link
Member Author

The error is now occurring again:

   <resumptionToken expirationDate="2023-09-20T18:29:06Z" completeListSize="9191" cursor="3000">1695148146099_oai_dc</resumptionToken>

I am running a diagnostic script as per #1 (comment) .

@Daniel-Mietchen
Copy link
Member Author

@fernando-andutta
Copy link

fernando-andutta commented Sep 20, 2023 via email

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

2 participants