[Archivesspace_Users_Group] Yet more tools: Ingest and analysis (of ingest) scripts now on Github

2016-08-19 Thread Mayo, Dave
Hello all,

I just wanted to make known that, in addition to the EADChecker and our 
preprocessor, we have produced a set of ruby scripts for doing bulk ingest that 
might be of general interest, made them available via Github.

https://github.com/harvard-library/aspace-utils

There are basically two scripts - an ingest script, which will do a bulk ingest 
of all XML finding aids in a directory, and an analysis script which will run 
over said finding aids and produce a summary of error causes.

The ingest script's primary advantage over the built-in bulk importer is that 
it doesn't fail the whole import on the first failed file, just the individual 
file.

Right now, the scripts have one Harvard-ism: they assume that finding aids are 
named with a leading 3-character code, which is associated with a repository ID 
in the ingest script's configuration file.  This can probably be amended in a 
more general manner pretty easily - if you want to use/try the scripts, but 
don't know Ruby terribly well, please email me and I'll help you get it set up 
(or if there's enough demand, just take the time and generalize handling of 
repositories).

Comments welcome, please contact me with any questions, code or doc 
contributions, etc.

For reference, here's a list of our other ASpace-related EAD tools, which I'm 
ALSO very happy to help with/answer questions about.

EADChecker - Web service to check EAD files against Harvard's schematron (or 
your own, if you want to download the code and run your own instance)
Live site, globally accessible: http://eadchecker.lib.harvard.edu
Code: https://github.com/harvard-library/archivesspace-checker
Developer Docs: http://harvard-library.github.io/archivesspace-checker/

ASpace Preprocessor - Application to check finding aids in bulk and apply 
automated fixes to them
Code: https://github.com/harvard-library/archivesspace-preprocessor
AND: https://github.com/harvard-library/aspace-processor-fixes

Thanks very much for your time, I hope this is useful to someone out there!

- Dave Mayo
___
Archivesspace_Users_Group mailing list
Archivesspace_Users_Group@lyralists.lyrasis.org
http://lyralists.lyrasis.org/mailman/listinfo/archivesspace_users_group


Re: [Archivesspace_Users_Group] Need help Interpreting an EAD ingest error message

2016-11-23 Thread Mayo, Dave
A127141=CwMFAg=imBPVzF25OnBgGmVOlcsiEgHoG1i6YHLR0Sj_gZ4adc=F0JE8U9-xhxe_nE7d7aEUi-uqfKqvYJ222bS0oz9mko=Ixe_5Yc2nOXAgiy9e9VqMN0YpY3OWVzfpfmRqOpBzyY=rH3syGgSsjBBuKU9kPCoDFEIhnKxTlIWMU1uovMI2qE=>"
xlink:label="resource-2" 
xlink:type="locator">

Click here for larger view.




April 27,
1990 
UAV 605.295.8 Box 8 






From:archivesspace_users_group-boun...@lyralists.lyrasis.org<mailto:archivesspace_users_group-boun...@lyralists.lyrasis.org>
 [mailto:archivesspace_users_group-boun...@lyralists.lyrasis.org] On Behalf Of 
Custer, Mark
Sent: Tuesday, November 22, 2016 12:56 PM
To: Archivesspace Users Group 
<archivesspace_users_group@lyralists.lyrasis.org<mailto:archivesspace_users_group@lyralists.lyrasis.org>>
Subject: Re: [Archivesspace_Users_Group] Need help Interpreting an EAD ingest 
error message

Kate, Dave:

Can you attach the EAD file?  I wonder if this is being caused by an empty 
container element in the source file, or something else related to a container 
attribute?

Mark



From:archivesspace_users_group-boun...@lyralists.lyrasis.org<mailto:archivesspace_users_group-boun...@lyralists.lyrasis.org>
 [mailto:archivesspace_users_group-boun...@lyralists.lyrasis.org] On Behalf Of 
Mayo, Dave
Sent: Tuesday, 22 November, 2016 12:52 PM
To: Archivesspace Users Group
Subject: Re: [Archivesspace_Users_Group] Need help Interpreting an EAD ingest 
error message

Hi all,

I have a partial answer to the original question (what is this meant to tell 
me).

Short version: It's not meant to tell you anything, because it's an uncaught 
Ruby error in the ead_converter, so, a bug in ASpace, not an error message 
produced by ASpace intentionally.

Longer version: In ead_converter.rb, code calls .container on a hash.  I think 
this may be a case of "someone wrote `inst.container' when they meant 
`inst['container']',  but I'm not sure, and we have exactly one finding aid 
that hits it, so I can't prioritize it now in good conscience since our 
production ingest is nigh.  I filed an issue on the ASpace github, 
https://github.com/archivesspace/archivesspace/issues/562<https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_archivesspace_archivesspace_issues_562=CwMFAw=-dg2m7zWuuDZ0MUcV7Sdqw=s7ciGQfUJeaV_ryx908hbeXDoU9aqDwDN0Z0VbfsJ3Y=ERzAvzSXe42UmonJgojyvD1484RlNyn-QSATOuzZvXo=oO93J6Ka9dFf7QayarOong95aFQ4LXdEzAQQlYWekmM=>,
 so if anyone DOES have the time and inclination, I'd start there (the github 
issue links directly to the code causing the error).

- Dave Mayo

From: , "Kate A." 
<kate_bow...@harvard.edu<mailto:kate_bow...@harvard.edu>>
Reply-To: Archivesspace Users Group 
<archivesspace_users_group@lyralists.lyrasis.org<mailto:archivesspace_users_group@lyralists.lyrasis.org>>
Date: Tuesday, November 22, 2016 at 12:43 PM
To: Archivesspace Users Group 
<archivesspace_users_group@lyralists.lyrasis.org<mailto:archivesspace_users_group@lyralists.lyrasis.org>>
Subject: Re: [Archivesspace_Users_Group] Need help Interpreting an EAD ingest 
error message

I don’t even know what your answer means!

Kate

From:archivesspace_users_group-boun...@lyralists.lyrasis.org<mailto:archivesspace_users_group-boun...@lyralists.lyrasis.org>
 [mailto:archivesspace_users_group-boun...@lyralists.lyrasis.org] On Behalf Of 
Brian Thomas
Sent: Tuesday, November 22, 2016 12:36 PM
To: Archivesspace Users Group 
<archivesspace_users_group@lyralists.lyrasis.org<mailto:archivesspace_users_group@lyralists.lyrasis.org>>
Subject: Re: [Archivesspace_Users_Group] Need help Interpreting an EAD ingest 
error message

Off-hand, do you have a mismatch for punctuation? ` v. ‘

From:archivesspace_users_group-boun...@lyralists.lyrasis.org<mailto:archivesspace_users_group-boun...@lyralists.lyrasis.org>
 [mailto:archivesspace_users_group-boun...@lyralists.lyrasis.org] On Behalf Of 
Bowers, Kate A.
Sent: Tuesday, November 22, 2016 11:33 AM
To: Archivesspace Users Group
Subject: [Archivesspace_Users_Group] Need help Interpreting an EAD ingest error 
message

Does anyone have any idea what this is meant to tell me?

Thanks!

Error: #NoMethodError: undefined method `container' for 
#Hash:0x4d0ab22a

Kate


Kate Bowers
Collections Services Archivist for Metadata, Systems, and Standards
Harvard University Archives
kate_bow...@harvard.edu<mailto:megan_sniffin-marin...@harvard.edu>
voice: (617) 998-5238
fax: (617) 495-8011
web: 
http://nrs.harvard.edu/urn-3:hul.eresource:archiv

Re: [Archivesspace_Users_Group] Need help Interpreting an EAD ingest error message

2016-11-22 Thread Mayo, Dave
Hi all,

I have a partial answer to the original question (what is this meant to tell 
me).

Short version: It's not meant to tell you anything, because it's an uncaught 
Ruby error in the ead_converter, so, a bug in ASpace, not an error message 
produced by ASpace intentionally.

Longer version: In ead_converter.rb, code calls .container on a hash.  I think 
this may be a case of "someone wrote `inst.container' when they meant 
`inst['container']',  but I'm not sure, and we have exactly one finding aid 
that hits it, so I can't prioritize it now in good conscience since our 
production ingest is nigh.  I filed an issue on the ASpace github, 
https://github.com/archivesspace/archivesspace/issues/562, so if anyone DOES 
have the time and inclination, I'd start there (the github issue links directly 
to the code causing the error).

- Dave Mayo

From: , "Kate A." 
>
Reply-To: Archivesspace Users Group 
>
Date: Tuesday, November 22, 2016 at 12:43 PM
To: Archivesspace Users Group 
>
Subject: Re: [Archivesspace_Users_Group] Need help Interpreting an EAD ingest 
error message

I don't even know what your answer means!

Kate

From: 
archivesspace_users_group-boun...@lyralists.lyrasis.org
 [mailto:archivesspace_users_group-boun...@lyralists.lyrasis.org] On Behalf Of 
Brian Thomas
Sent: Tuesday, November 22, 2016 12:36 PM
To: Archivesspace Users Group 
>
Subject: Re: [Archivesspace_Users_Group] Need help Interpreting an EAD ingest 
error message

Off-hand, do you have a mismatch for punctuation? ` v. '

From:archivesspace_users_group-boun...@lyralists.lyrasis.org
 [mailto:archivesspace_users_group-boun...@lyralists.lyrasis.org] On Behalf Of 
Bowers, Kate A.
Sent: Tuesday, November 22, 2016 11:33 AM
To: Archivesspace Users Group
Subject: [Archivesspace_Users_Group] Need help Interpreting an EAD ingest error 
message

Does anyone have any idea what this is meant to tell me?

Thanks!

Error: #NoMethodError: undefined method `container' for 
#Hash:0x4d0ab22a

Kate


Kate Bowers
Collections Services Archivist for Metadata, Systems, and Standards
Harvard University Archives
kate_bow...@harvard.edu
voice: (617) 998-5238
fax: (617) 495-8011
web: http://nrs.harvard.edu/urn-3:hul.eresource:archives
Twitter: @k8_bowers




___
Archivesspace_Users_Group mailing list
Archivesspace_Users_Group@lyralists.lyrasis.org
http://lyralists.lyrasis.org/mailman/listinfo/archivesspace_users_group


Re: [Archivesspace_Users_Group] Python ArchivesSpace scripting library

2017-08-03 Thread Mayo, Dave
One thing I think might be useful, especially in planning stages, is collecting 
the “prior art” in one place to look at – because there are a lot of scripts 
people have built around the API, and they probably capture at least a fair bit 
of “what people want to do most with the API.”

So, whenever the github is set up, we should do this.

- Dave

From:  on behalf of 
"rsdo...@caltech.edu" 
Reply-To: "rsdo...@caltech.edu" , Archivesspace Users 
Group 
Date: Thursday, August 3, 2017 at 9:21 AM
To: Archivesspace Users Group 
Subject: Re: [Archivesspace_Users_Group] Python ArchivesSpace scripting library

Hello Patrick,

I have written some tools in go and mocked up functionaity in Python a few 
years ago I'd be interested in the project.

Robert Doiel
Caltech Library
rsdo...@caltech.edu

On Aug 3, 2017 6:10 AM, "Galligan, Patrick" 
> wrote:
Hi all,

For a while now the RAC has been bouncing around the idea of developing an AS 
Python library that would hold a lot of the functions we find ourselves working 
with a lot when scripting against the AS API. I know Greg Wiedeman at U Albany 
has done some work to this end, but I wanted to send a blast out to the list to 
see who else might be interested. We’d love to make this as collaborative and 
exhaustive as possible so that we can cover the most bases.

I’m thinking of setting up a Github project that we can collaboratively work 
in. Anyone have better ideas?

Let me know.

Thanks,
Patrick Galligan
Rockefeller Archive Center

___
Archivesspace_Users_Group mailing list
Archivesspace_Users_Group@lyralists.lyrasis.org
http://lyralists.lyrasis.org/mailman/listinfo/archivesspace_users_group

___
Archivesspace_Users_Group mailing list
Archivesspace_Users_Group@lyralists.lyrasis.org
http://lyralists.lyrasis.org/mailman/listinfo/archivesspace_users_group


Re: [Archivesspace_Users_Group] Python ArchivesSpace scripting library

2017-08-03 Thread Mayo, Dave
Hello,

I’m definitely interested in contributing to this, and have some experience 
with writing client-ish things for ASpace in Ruby that might be relevant.

+1 for Github

- Dave Mayo
  Senior Digital Library Software Engineer
  Harvard University > HUIT > LTS > OSC Dev Team
From:  on behalf of 
"Galligan, Patrick" 
Reply-To: Archivesspace Users Group 

Date: Thursday, August 3, 2017 at 9:08 AM
To: Archivesspace Users Group 
Subject: [Archivesspace_Users_Group] Python ArchivesSpace scripting library

Hi all,

For a while now the RAC has been bouncing around the idea of developing an AS 
Python library that would hold a lot of the functions we find ourselves working 
with a lot when scripting against the AS API. I know Greg Wiedeman at U Albany 
has done some work to this end, but I wanted to send a blast out to the list to 
see who else might be interested. We’d love to make this as collaborative and 
exhaustive as possible so that we can cover the most bases.

I’m thinking of setting up a Github project that we can collaboratively work 
in. Anyone have better ideas?

Let me know.

Thanks,
Patrick Galligan
Rockefeller Archive Center
___
Archivesspace_Users_Group mailing list
Archivesspace_Users_Group@lyralists.lyrasis.org
http://lyralists.lyrasis.org/mailman/listinfo/archivesspace_users_group


Re: [Archivesspace_Users_Group] RFC: EAD import/export: mapping multiple unitid's and external-id's

2017-04-26 Thread Mayo, Dave
We did that as a preprocessing step, but one use of multiple unittitles would 
be works with primary titles in multiple languages, right? In which case 
dropping attributes matters. And what makes a good delimiter depends on the 
corpus - we used double-dagger, but other places might have EADs that include 
that character.

So, anyway, my vote is that that can be a good local decision, but not a good 
"bake into the application" decision.

From: archivesspace_users_group-boun...@lyralists.lyrasis.org 
<archivesspace_users_group-boun...@lyralists.lyrasis.org> on behalf of 
Majewski, Steven Dennis (sdm7g) <sd...@eservices.virginia.edu>
Sent: Wednesday, April 26, 2017 11:15:36 AM
To: Archivesspace Users Group
Subject: Re: [Archivesspace_Users_Group] RFC: EAD import/export: mapping 
multiple unitid's and external-id's


Would it make more sense to concatenate multiple unittitles ?
I don’t think I’ve actually run into one in the wild.

— Steve M.


On Apr 24, 2017, at 3:55 PM, Mayo, Dave 
<dave_m...@harvard.edu<mailto:dave_m...@harvard.edu>> wrote:

+1, and also this is true of unittitles as well; unfortunately, there’s no 
proper representation of multiple titles as of yet, but at the very least, 
take-first would be better than take-last there as well.

- Dave Mayo
  Digital Library Software Engineer
  Harvard University > HUIT > LTS > OSC Development Group
From: 
<archivesspace_users_group-boun...@lyralists.lyrasis.org<mailto:archivesspace_users_group-boun...@lyralists.lyrasis.org>>
 on behalf of "Majewski, Steven Dennis (sdm7g)" 
<sd...@eservices.virginia.edu<mailto:sd...@eservices.virginia.edu>>
Reply-To: Archivesspace Users Group 
<archivesspace_users_group@lyralists.lyrasis.org<mailto:archivesspace_users_group@lyralists.lyrasis.org>>
Date: Monday, April 24, 2017 at 2:24 PM
To: Archivesspace Users Group 
<archivesspace_users_group@lyralists.lyrasis.org<mailto:archivesspace_users_group@lyralists.lyrasis.org>>
Subject: [Archivesspace_Users_Group] RFC: EAD import/export: mapping multiple 
unitid's and external-id's


Request for comments:

I’m testing a patch relating to these JIRA tickets:

[AS-99] As an archivist, I would like to associate multiple identifiers with 
resources/objects and export it in EAD - 
JIRA<https://urldefense.proofpoint.com/v2/url?u=https-3A__archivesspace.atlassian.net_browse_AS-2D99=CwMGaQ=WO-RGvefibhHBZq3fL85hQ=_Mv1dY22K7jvT5MD7xjbvGVzRDOUMhx4WYcnPSIzYnE=8XUp_NUPFJOTUgM3ImU47HAhgcOO_Iwy8wN26MqnDjM=gjONTAA8AswO9yztiJjm6IRWzU5pxNkp0g4kVIoNCHc=>

[AR-1542] As an archivist, I would like to associate multiple identifiers with 
resources/objects and export it in EAD - 
JIRA<https://urldefense.proofpoint.com/v2/url?u=https-3A__archivesspace.atlassian.net_browse_AR-2D1542=CwMGaQ=WO-RGvefibhHBZq3fL85hQ=_Mv1dY22K7jvT5MD7xjbvGVzRDOUMhx4WYcnPSIzYnE=8XUp_NUPFJOTUgM3ImU47HAhgcOO_Iwy8wN26MqnDjM=vUoM7wtXs0KcpYMtywcL5IcCxB_tbkNVoeDJ6t37xyQ=>

[AR-1268] Need ability to parse the unitid for multiple values on EAD import - 
JIRA<https://urldefense.proofpoint.com/v2/url?u=https-3A__archivesspace.atlassian.net_browse_AR-2D1268=CwMGaQ=WO-RGvefibhHBZq3fL85hQ=_Mv1dY22K7jvT5MD7xjbvGVzRDOUMhx4WYcnPSIzYnE=8XUp_NUPFJOTUgM3ImU47HAhgcOO_Iwy8wN26MqnDjM=L2gb5t2_G6FkvaJtk553R1A1_Jume2sd4c9AnahwRJg=>


 I’ve noticed that when there are multiple ’s in EAD, the last one 
overwrites previous ones so the last value is the one imported. In our cases, 
if there are multiple ’s, the first one is always the primary one. 
Other identifiers may into other systems may be added after the primary one. I 
would expect this to be the natural order — does this conflict with anyone 
else’s experience ?   ( Does anyone *want* the last value to override initial 
value? )

I propose changing this to make the first unitid the primary one on import.


The other changes import additional ’s as external_ids IF they have a 
@type attribute. @type will be mapped to external_id.source. On export, 
external_ids are exported as unitid with @type=external_id.source.

’s following the initial primary without a @type attribute are dropped.

( This could be changed, as I don’t believe external_id has any *required* 
attributes: In our use cases, it didn’t seem to  make much sense to keep an 
external id without an indicator of what system it’s an id into. )


I also note that AppConfig[:show_external_ids] is false by default. Is there a 
reason for this ?
I believe that initially the external ids were mostly used for mapping 
conversions from Archon and AT.
We have a strong need to link ArchivesSpace resources to resources in other 
systems. I would guess that this is a pretty widely shared requirement. ( Was 
hiding them a way of keeping users from editing them because Archon/AT 
migration depended on them ? )

Chasing this setting currently only makes existing external ids viewable and 
ed

Re: [Archivesspace_Users_Group] ampersand issue with PDF button in 2.1.2 public interface

2017-09-22 Thread Mayo, Dave
Hi Benn,

This is a recurring issue I hit over both Harvard and Smith’s collections – 
it’s a consequence of ASpace not really having a distinction between mixed 
content and plaintext content.

Unfortunately, there isn’t really a good solution.  The best solution as far as 
I’ve been able to figure is to use HTML/XML entity for ampersand () 
wherever it appears in a context that’s treated by the interface/etc as markup; 
title fields _definitely_ fall under that category.  There’s unfortunately no 
reliable guide to what fields are “mixed content” and what fields are 
“plaintext content” because, well, the underlying system doesn’t track that 
distinction – it’s up to how the fields are eventually displayed/used to build 
exports/etc.

As to _how_ to fix it – well, it depends somewhat on whether you can be 
ABSOLUTELY SURE you don’t have any HTML/XML entities in your title fields.  If 
you are ABSOLUTELY SURE of this, you should be able to make the change via API 
or on the SQL level, but if you DO have entities, it gets a lot harder, to the 
point where manual review is probably appropriate.

- Dave Mayo
ASpace Core Committer’s Group Member
From:  on behalf of 
Benn Joseph 
Reply-To: Archivesspace Users Group 

Date: Thursday, September 21, 2017 at 4:21 PM
To: Archivesspace Users Group 
Subject: [Archivesspace_Users_Group] ampersand issue with PDF button in 2.1.2 
public interface


Hi all,

We've encountered an issue with the v2.1.2 Print-to-PDF button in the public 
interface--apparently for any resource record with an ampersand that is 
followed immediately by another character that is not a space (e.g. "b" or 
"AT"), the ampersand is misinterpreted and causes the Print-to-PDF button to 
fail with an error. For me, that error is just "something went wrong", but the 
log shows this (when it gets tripped up on "b"):



RuntimeError (Failed to clean XML: The reference to entity "w" must end with 
the ';' delimiter.):



So we're guessing ArchivesSpace is thinking "" should be "", and so forth 
for any other string of text with an ampersand. I checked this by going into a 
record that wouldn’t print and changing the lone suspect ampersand (“AT” to 
“AT and T”) and the PDF generated just fine.



This doesn't impact being able to just view resource records in the public 
interface, it's just the PDF function that isn't working. It's a problem, 
though, because we want to be able to use that PDF functionality but we also 
have a lot of ampersands in our resource records! Has anyone else experienced 
this issue or possibly come up with a fix?



Thanks,

--Benn

Benn Joseph
Head of Archival Processing
Northwestern University Libraries
Northwestern University
www.library.northwestern.edu
benn.jos...@northwestern.edu
847.467.6581

___
Archivesspace_Users_Group mailing list
Archivesspace_Users_Group@lyralists.lyrasis.org
http://lyralists.lyrasis.org/mailman/listinfo/archivesspace_users_group


Re: [Archivesspace_Users_Group] EAD Importer and DAOs

2018-05-25 Thread Mayo, Dave
IIRC, also, a lot of the smaller DB-level defaults (and some of the larger 
ones) are the result of various defaults or arbitrary guesses - before just 
saying that it's part of the data model and we should just live with it, one 
should always positively verify that it's legitimately part of the data model.  

In this case, I can actually negatively verify this: in the commit where the 
file_version:caption field is added, the DB migration doesn't specify a length 
(and so gets the default of 255), but the schema, which is specified, reads:

> "caption" => {"type" => "string", "maxLength" => 16384},

So it's definitely a bug - I'll file a ticket, and I'm planning to make a pull 
request to fix this, though it won't really be a solution to your problem until 
it gets accepted and you update.  

If you have DB access, I think you'd be fine to just go directly in and run:

ALTER TABLE `file_version` MODIFY caption VARCHAR(16384);

Since you're expanding it, you won't risk truncating data.

- Dave Mayo
ASpace Core Committer's Group

On 5/25/18, 9:34 AM, "archivesspace_users_group-boun...@lyralists.lyrasis.org 
on behalf of Brian Harrington" 
 wrote:

Hi Tim,

I agree it seems a bit backwards to change the data model to suit the 
importer, which is one of the reasons I decided to pose the question to the 
list.  There could be valid reasons (display issues?) for limiting the length 
of the caption, but these things are often assigned somewhat arbitrarily, so I 
thought I would ask.  If there are reasons for keeping  for keeping the caption 
at 255, then I think it makes sense to truncate it in the importer, rather than 
just having things die on a database error.

I currently use a modified version of Mark Custer’s schematron 

 to check EADs prior to import, and can certainly add code to check  
@titles.  The problem with doing that is the double use of @title for both 
digital_object:title and file_version:caption.  Since ASpace supports long 
titles, and the archivist presumably assigned a long title for a reason, I 
would hate to shorten it before import just to make sure that it fits when 
re-used as a caption.

Thanks,

Brian

> On May 24, 2018, at 5:25 PM, Timothy Dilauro  wrote:
> 
> Hi Brian,
> 
> I don't think it's a good idea to change the data model just to avoid 
imports failing, though there may be other rationales that result in such a 
change.
> 
> In the mean time, it might be useful to write some XSLT or some other 
custom code to perform sanity checks relative to ASpace restrictions ahead of 
EAD import attempts. In that manner, those non-conformant captions (and 
anything else you check on) could be tweaked before import.
> 
> Cheers,
> ~Tim
> 
>> On May 23, 2018, at 2:39 PM, Brian Harrington 
 wrote:
>> 
>> 
>> Currently when importing an EAD, s are used to create digital 
objects.  As part of this process, the @title attribute is used for both the 
digital object title, and the caption under file versions.  I've recently run 
into a fun issue with s with @titles longer than 255 characters.  These 
titles are OK for digital_object:title, which is VARCHAR(8704) but too long for 
file_version:caption, which is VARCHAR(255).  So the import fails.
>> 
>> Should this be considered a bug?  If it is, and if one were 
theoretically considering a PR, would it make more sense to harmonize the 
length of the title and caption, or truncate the caption to 255 characters?  My 
inclination is just to increase the maximum length of captions, and rely on 
people to show restraint, but I know that other people might have different 
opinions.
>> 
>> Thanks,
>> 
>> Brian
>> 
>> --
>> Brian Harrington
>> Migration Specialist
>> LYRASIS
>> brian.harring...@lyrasis.org
>> skype: abbistani
>> 
>> 
>> ___
>> Archivesspace_Users_Group mailing list
>> Archivesspace_Users_Group@lyralists.lyrasis.org
>> http://lyralists.lyrasis.org/mailman/listinfo/archivesspace_users_group
>> 
> 
> ___
> Archivesspace_Users_Group mailing list
> Archivesspace_Users_Group@lyralists.lyrasis.org
> http://lyralists.lyrasis.org/mailman/listinfo/archivesspace_users_group

___
Archivesspace_Users_Group mailing list
Archivesspace_Users_Group@lyralists.lyrasis.org
http://lyralists.lyrasis.org/mailman/listinfo/archivesspace_users_group


___
Archivesspace_Users_Group mailing list

Re: [Archivesspace_Users_Group] ArchivesSpace spreadsheet import plugin

2018-01-19 Thread Mayo, Dave
Hi Jessika,

The file you’d want to edit is the Gemfile file in the top directory of the 
plugin – contents look like this: 
https://github.com/harvard-library/aspace-import-excel/blob/master/Gemfile

On line 6, you’d remove the comma and everything after.

- Dave

From:  on behalf of 
"Drmacich, Jessika" 
Reply-To: Archivesspace Users Group 

Date: Friday, January 19, 2018 at 9:37 AM
To: Archivesspace Users Group 
Subject: Re: [Archivesspace_Users_Group] ArchivesSpace spreadsheet import plugin

Dear all,

Thanks everyone (especially Steve) for the suggestions about editing the gem 
file to remove the version requirement for pry but, pardon my Ruby ignorance, 
can someone explain exactly which file to edit and what I need to change 
exactly? I've looked around in 
archivesspace/plugins/aspace-import-excel/gems/gems/pry-0.11.3-java but i'm not 
sure what to edit there (or is it somewhere else?

As always, thank you!

My best,

Jessika

Jessika Drmacich
Records Manager & Digital Resources Archivist
Williams College Libraries
Special Collections
413-597-4725

On Tue, Jan 16, 2018 at 4:00 PM, Drmacich, Jessika 
> wrote:
Dear all,

Has anyone experienced losing functionality with ArchivesSpace spreadsheet 
import 
plugin
 with the most current update?  Simply, has anyone installed it and has it 
running on the latest ArchivesSpace CentOS 7?

My very best,

Jessika

Jessika Drmacich
Records Manager & Digital Resources Archivist
Williams College Libraries
Special Collections
413-597-4725

___
Archivesspace_Users_Group mailing list
Archivesspace_Users_Group@lyralists.lyrasis.org
http://lyralists.lyrasis.org/mailman/listinfo/archivesspace_users_group


Re: [Archivesspace_Users_Group] Questions about MariaDB

2018-02-11 Thread Mayo, Dave
Full disclosure, I work as a developer rather than on the sysadmin/devops side.

I've been using MariaDB as a drop in replacement for MySQL server for local 
development instances for years, and it's been completely fine - I have had 
zero issues with it, and specifically zero issues resulting from differences 
between MariaDB and MySQL in particular.

- Dave Mayo
   Senior Digital Library Software Engineer
   Harvard University > HUIT > LTS

From: archivesspace_users_group-boun...@lyralists.lyrasis.org 
 on behalf of 
Crawford, David E 
Sent: Friday, February 9, 2018 4:50:36 PM
To: archivesspace_users_group@lyralists.lyrasis.org
Subject: [Archivesspace_Users_Group] Questions about MariaDB

We have been using MySQL for our ArchivesSpace for several years, but our 
institution wants to shift us to MariaDB.  The university no longer supports 
MySQL - not just for us, but campus wide.

Will ArchivesSpace work with MariaDB?  If so, are there any problems or issues 
I should anticipate with the transfer from MySQL?  And are there any problems 
or issues I should anticipate running ArchivesSpace in the future?

I should add that this is not a hostile takeover (i.e., I am not being forced 
to make a change).  The IT folks are being very helpful, so any information 
that helps them to help our archives will be appreciated.


Thanks,
Dave


David E. Crawford

University Archivist

Reinert-Alumni Library

Creighton University

2500 California Plaza

Omaha, NE  68178

davidecrawf...@creighton.edu

(402) 280-2746 (voice)

(402) 280-2435 (fax)
___
Archivesspace_Users_Group mailing list
Archivesspace_Users_Group@lyralists.lyrasis.org
http://lyralists.lyrasis.org/mailman/listinfo/archivesspace_users_group


Re: [Archivesspace_Users_Group] Duplicate Commas Following Description

2018-08-10 Thread Mayo, Dave
Hi,

That’s definitely possible.  There are definitely multiple ways to do that, 
with different risks and benefits.

The ones I can think of offhand are:

1. Do that in the MySQL database, then clear out and rebuild ArchivesSpace’s 
Solr indexes.  This would probably be overall fastest, but would mean some 
downtime, and Solr index rebuilds can take a fair amount of time if your 
collection is large.
2. Do it via a scripting language and the ArchivesSpace API.  In this case, 
you’d basically write a loop over all your records, download the object, alter 
the description, and save the object.

If you wouldn’t mind talking a little about what your available resources, 
access (can you directly access MySQL? Can you run Python scripts against the 
backend? What version of Python can you use?  That sort of thing), and 
available expertise, I might be able to provide more help/advice?

--
Dave Mayo
ASpace Core Committers Group

From:  on behalf of 
Danielle Butler 
Reply-To: Archivesspace Users Group 

Date: Friday, August 10, 2018 at 12:21 PM
To: Archivesspace Users Group 
Subject: [Archivesspace_Users_Group] Duplicate Commas Following Description

In Archivists’ Toolkit before migrating to ASpace, we manually added commas to 
the end of each description element, so that there would be commas between the 
description and date elements in our XSL style sheet. When we migrated to 
ASpace all of the commas are duplicated in display, because ASpace 
automatically inserts a comma (so nice!).

To have cleaner data going forward I would like to remove that comma and just 
add something to the style sheet to insert the comma at the end of each 
description element (which is what we likely should have been doing all along 
anyway). I have never run a script on a dataset, but I imagine that it should 
be fairly uncomplicated to remove the last character from a particular table 
using some sort of a script. We are running 2.3.2 on a Windows Server using a 
MySQL database.

Does anyone have any experience doing such a thing and could perhaps provide 
some guidance?

Thank you,

Danielle Butler, CA | Archivist
Butler Center for Arkansas Studies | Central Arkansas Library System
www.butlercenter.org
100 Rock Street
Little Rock, AR 72201
501-320-5724

___
Archivesspace_Users_Group mailing list
Archivesspace_Users_Group@lyralists.lyrasis.org
http://lyralists.lyrasis.org/mailman/listinfo/archivesspace_users_group


Re: [Archivesspace_Users_Group] FW: [Archivesspace_member_reps] Migrating Data from Eloquent Systems to ArchivesSpace

2018-03-15 Thread Mayo, Dave
Hi Cheryl,

Oof, that’s rough.  I have a few questions, if you don’t mind.

1. Can you provide more detail on why EAD export is impossible?  I only ask 
because they claim EAD export on their website pretty prominently, and it would 
be, I think, much easier than doing a migration from proprietary text format.
2. Are you comfortable with programming in a scripting language (Python, Ruby, 
Perl, etc.) or do you have access to someone who is?
3. What does the ASCII format actually look like?  An example record would be 
really helpful in giving advice.

Assuming that EAD is entirely out of reach, I think this would take either, as 
you mentioned, manual transfer, or someone writing a script to take the ascii 
output, turn it into ASpace JSONModel objects, and import it via the API.  The 
hardest part is probably the conversion step – there’s a fair amount of code 
out there for doing imports of JSONModel objects (or you can just strip the EAD 
-> JSONModel part out of EAD import scripts), but I don’t know that there’s a 
way around significant programming effort.  Even EAD migrations have in my 
experience involved a fair amount of programming, though size and scope of 
collection matters a lot for how important that is.

- Dave Mayo
ASpace Core Committers Group

From:  on behalf of 
Christine Di Bella 
Reply-To: Archivesspace Users Group 

Date: Thursday, March 15, 2018 at 8:59 AM
To: Archivesspace Users Group 
Subject: [Archivesspace_Users_Group] FW: [Archivesspace_member_reps] Migrating 
Data from Eloquent Systems to ArchivesSpace

Hi all,

I’m forwarding this for Cheryl from the Member Representatives list in case 
anyone here has made a move from Eloquent and has suggestions or advice. The 
program team will also reach out with some ideas.

Christine

Christine Di Bella
ArchivesSpace Program Manager
christine.dibe...@lyrasis.org
800.999.8558 x2905
678-235-2905
cdibella13 (Skype)

[ASpaceOrgHomeMedium]



From: archivesspace_member_reps-boun...@lyralists.lyrasis.org 
 On Behalf Of Cheryl 
Ziegler
Sent: Wednesday, March 14, 2018 8:58 PM
To: archivesspace_member_r...@lyralists.lyrasis.org
Subject: [Archivesspace_member_reps] Migrating Data from Eloquent Systems to 
ArchivesSpace

Hello all,

I am under significant time constraints to move my data from Eloquent Systems 
to ArchivesSpace as my contract with Eloquent is over effective April 30. I was 
led to believe that my data could be exported in EAD format. Unfortunately, 
that is not true. I can only export my data into ASCII delimited text format.

I am flying blind here and I know there is not an easy "fix." If I need to 
manually input my records, then I need to start doing that right away. If there 
is a way to convert ASCII into a workable migration format, then I need advise 
on how to accomplish that conversion.

Some background: earlier in the year, my IT Director told me he had figured out 
how to do this migration. He has resigned taking that information with him 
although I am not sure that he actually had figured it out.

I am willing to do the work. I just need a process.

Thank you,
Cheryl

Cheryl L. Ziegler, MLIS
Director of Library & Archives
Union League Club of Chicago
65 W. Jackson Blvd.
Chicago, IL  60604

P: 312.435.4818
www.ulcc.org

[http://eline.ulcc.org/images/ULC_logo_platinum_2014_email.jpg]
Find out how the Union League Club of Chicago can help enrich your life and 
improve the world by contacting members...@ulcc.org 
or 312.435.4825.
___
Archivesspace_Users_Group mailing list
Archivesspace_Users_Group@lyralists.lyrasis.org
http://lyralists.lyrasis.org/mailman/listinfo/archivesspace_users_group


Re: [Archivesspace_Users_Group] Errors editing older resource records v.2.3.1

2018-04-18 Thread Mayo, Dave
It looks like xmx gets set to 24g by default if no env var exists when it 
starts up…

From:  on behalf of 
"Holland, Andrew S" 
Reply-To: Archivesspace Users Group 

Date: Wednesday, April 18, 2018 at 2:36 PM
To: Archivesspace Users Group 
Subject: Re: [Archivesspace_Users_Group] Errors editing older resource records 
v.2.3.1

For what it's worth, I'm seeing something similar when attempting to delete 
some locations:

Unable to delete locations:
/locations/12 - Record deletion failed: 
Java::ComMysqlJdbcExceptionsJdbc4::MySQLIntegrityConstraintViolationException: 
Cannot delete or update a parent row: a foreign key constraint fails 
(`as_2x`.`top_container_housed_at_rlshp`, CONSTRAINT 
`top_container_housed_at_rlshp_ibfk_2` FOREIGN KEY (`location_id`) REFERENCES 
`location` (`id`))

and:

translation missing: 
en.validation_errors.record_deletion_failed__java__commysqljdbcexceptionsjdbc4__mysqlintegrityconstraintviolationexception__cannot_delete_or_update_a_parent_row__a_foreign_key_constraint_fails_(`as_2x`.`top_container_housed_at_rlshp`__constraint_`top_container_housed_at_rlshp_ibfk_2`_foreign_key_(`location_id`)_references_`location`_(`id`))

Andrew Holland
University of Iowa Libraries

From: archivesspace_users_group-boun...@lyralists.lyrasis.org 
 On Behalf Of 
Christine Di Bella
Sent: Wednesday, April 18, 2018 12:49 PM
To: Archivesspace Users Group 
Subject: Re: [Archivesspace_Users_Group] Errors editing older resource records 
v.2.3.1

Hi Sarah,

This sounds somewhat similar to the issue Ashley Knox reported yesterday and 
that our tech support people are helping with right now. I’m going to put a 
ticket in for you as well. (You’ll see another message about that directly to 
you in a minute.) It would be great if you would report the resolution back to 
the list once it gets solved.

Christine

Christine Di Bella
ArchivesSpace Program Manager
christine.dibe...@lyrasis.org
800.999.8558 x2905
678-235-2905
cdibella13 (Skype)

[ASpaceOrgHomeMedium]


From: 
archivesspace_users_group-boun...@lyralists.lyrasis.org
 
>
 On Behalf Of Pinard, Sarah
Sent: Wednesday, April 18, 2018 11:34 AM
To: 
archivesspace_users_group@lyralists.lyrasis.org
Subject: [Archivesspace_Users_Group] Errors editing older resource records 
v.2.3.1

Hello,

Since updating to ArchivesSpace version 2.3.1 we’ve experienced errors when 
editing resource records and accessions created prior to the upgrade. These 
errors occur when editing existing data (notes, identifiers, instances, etc.). 
We do not experience these errors when we add new archival objects and their 
associated instances, notes, etc. to the same resource records.  Another error 
we’ve run into is when we try to delete a resource record that was created 
prior to the upgrade.

We’d like to know if anyone else has seen these, if they have been reported, 
and if there’s a fix?

Please see screenshots of the errors below.

When editing existing data in resource record or accession records:

[cid:image001.jpg@01D3D708.575254C0]


When trying to delete a resource record:

Resource could not be deleted:

Record deletion failed: 
Java::ComMysqlJdbcExceptionsJdbc4::MySQLIntegrityConstraintViolationException: 
Cannot delete or update a parent row: a foreign key constraint fails 
(`archivesspace`.`container`, CONSTRAINT `container_ibfk_5` FOREIGN KEY 
(`instance_id`) REFERENCES `instance` (`id`))

Sarah Pinard, CA
Processing Archivist
University Archives
University at Buffalo
420 Capen Hall
Buffalo, NY 14260-1674
(716) 645-1362
http://library.buffalo.edu/archives/

___
Archivesspace_Users_Group mailing list
Archivesspace_Users_Group@lyralists.lyrasis.org
http://lyralists.lyrasis.org/mailman/listinfo/archivesspace_users_group


Re: [Archivesspace_Users_Group] Import Data Errors

2019-01-29 Thread Mayo, Dave
What Kate said, and also: for anything that we figured out during our 
migration, you can check individual EAD files with somewhat better error 
reporting by putting them through https://eadchecker.lib.harvard.edu/

--
Dave Mayo (he/him)
Senior Digital Library Software Engineer
Harvard University > HUIT > LTS

From:  on behalf of 
"Bowers, Kate A." 
Reply-To: Archivesspace Users Group 

Date: Tuesday, January 29, 2019 at 2:21 PM
To: Archivesspace Users Group 
Subject: Re: [Archivesspace_Users_Group] Import Data Errors

EAD has fewer contraints than ArchivesSpace.  Those error messages are not 
terribly helpful. At the very end of this article (before the end notes) is a 
list of the constraints in AS that will throw an error if your EAD does not 
comply:
https://journal.code4lib.org/articles/12239

I think the messages are coming from what we have as number 26 on the list 
“Absence of both unittitle and unitdate at a subordinate level causes import to 
fail”. Our solution was to grab data via a script from the parent . You 
may have few enough to do this by hand.  So, for example, we had s that 
contained only  or only  or only . These were all valid EAD 
but not acceptable to ArchivesSpace.

Below is a bit more digestible (but still Harvard-centric and definitely a 
working document) list of these issues and the practice that is needed going 
forward to ensure AS will ingest EAD.  Your error messages are coming from the 
3rd thing listed under .

Element category

Practice going forward

Reason

Reason category

Schema

Use the canonical EAD schema, not the Harvard modified schema

AS expects data that conforms to the canonical schema.

Schema



Do not use frontmatter

This will be added by EAD export from AS

Former practice no longer needed



 Always include

 Required for saving in AS, will ingest, but annoying to users who edit 
resources.





Do not use descgrp

This will not load to AS

Practice not supported by AS EAD ingest



Do not embed  within 

Roundtripped EAD from AS will be invalid

Practice not supported by AS EAD export



Always include an @level attribute value on all s. If using 
@level="otherlevel" always include an @otherlevel value.

 without a @level will ingest as "otherlevel" but lack @otherlevel value

New attribute data required



All components should have ; in cases where formerly archivsts might 
have used only , the parent 's unittitle is often a good choice

The component-centered display in ArchivesSpace makes any component lacking a 
the context provided by  text vague and cryptic, hampering 
recognition and interpretation of the component.

New content strongly recommended



All components must have either a  or a 

EAD lacking this data will not load to AS

New content required



 should stand alone, not be embedded within 

Will load twice into AS

Practice not supported by AS EAD ingest



 must include type and label attributes, cannot describe multiple 
containers in one container element, and should not include type of container 
as part of content.

AS accommodates container numbers and types, but does not accommodate note-like 
container information. In addition, AS creates "top container" records based on 
EAD ingest. These are linked records. Placing a range of boxes, for example, in 
a single container element creates incorrect data about containers.

Data model in AS is different from EAD



Do not encode  in 

Finding aid will load, but data will be lost. Use  or other 
appropriate element

Practice not supported by AS EAD ingest



@role ???

 Disappears on ingest





 statement should include ingest information

Include ingest to AS in your creation statement, e.g. "Created in Oxygen on 
2016-11-18; ingested to AS on 2016-12-12"

New content required



One Digital Object per Archival Object

Automated linking to objects in the DRS is based on the ref_id of the Archival 
Object, which is used as an owner supplied name in DRS.

New limit



Supply a title for digital archival objects; use  of parent 

xlink@title attribute is required by AS ingest

New attribute data required



???

 Disappears on ingest?





To achieve thumbnails,  must be coded thus: 

 ?





Collection-level  is required

EAD lacking this data will not load to AS

New content required



Do not encode mixed content within 

Finding aid will ingest, but content will be lost. Specifically, if a 
 has some child elements, any text that is not inside a child element 
will be left behind during ingest. An entirely plain-text  is OK.

New limit



 must begin with a number

EAD with non-numerical extent will not load to AS

New limit



 should be used more sparingly, consider using only if @href values 
link Harvard-managed links

Link rot (has nothing to do with AS), except that during migration, links 
became noticeable and rot was there

New recommendation



Do not encode nested indexes

Import may succeed, but data will be lacking from AS

Practice not supported by AS 

Re: [Archivesspace_Users_Group] Mariadb errors from reports: "portion"

2019-07-29 Thread Mayo, Dave
Weird – I just verified that this happens this on my local instance, but 
haven’t been able to find the thing causing this issue.

Looking in the code, it looks like there might be an in-process or forthcoming 
syntax for doing date ranges with this as a keyword? 
https://github.com/MariaDB/server/search?q=%22portion+of%22_q=%22portion+of%22

--
Dave Mayo (he/him)
Senior Digital Library Software Engineer
Harvard University > HUIT > LTS

From:  on behalf of 
"Majewski, Steven Dennis (sdm7g)" 
Reply-To: Archivesspace Users Group 

Date: Friday, July 26, 2019 at 5:00 PM
To: Archivesspace Users Group 
Subject: [Archivesspace_Users_Group] Mariadb errors from reports: "portion"


Anyone else using MariaDB ?

We’re running mysql on our production servers, but I’m running a current 
version of Maria-DB on my development laptop.

While investigating the unescaped ampersand in reports issue, I discovered I’m 
getting errors running some reports.
Resource List Report says:

Generating report Java::ComMysqlJdbcExceptionsJdbc4::MySQLSyntaxErrorException:
You have an error in your SQL syntax; check the manual that corresponds to your 
MariaDB server version for the right syntax to use near 'portion, number as 
extent_number, extent_type_id as extent_type, contai' at line 2


And by trying that select statement in the command line, it appears that 
“portion” must now be a keyword in MariaDB.

This generates an error:
MariaDB [archivesspace]> select portion_id as portion from extent;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that 
corresponds to your MariaDB server version for the right syntax to use near 
'portion from extent' at line 1



But this works:
MariaDB [archivesspace]> select portion_id as `portion` from extent;
+-+
| portion |
+-+
| 924 |
| 924 |
| 924 |
| 924 |
| 924 |
| 924 |




https://github.com/archivesspace/archivesspace/blob/master/reports/custom/extent_subreport.rb#L17


“Portion” no listed here:
https://mariadb.com/kb/en/library/reserved-words/

But this list in source code is canonical source:
https://github.com/MariaDB/server/blob/10.5/sql/lex.h#L474






___
Archivesspace_Users_Group mailing list
Archivesspace_Users_Group@lyralists.lyrasis.org
http://lyralists.lyrasis.org/mailman/listinfo/archivesspace_users_group


Re: [Archivesspace_Users_Group] importing EAD files

2019-11-22 Thread Mayo, Dave
Also, the EADChecker web service mentioned in the same article is still around 
– it’s not exhaustive, but it should find _most_ potential errors that will 
cause ingest to fail, and output them in a slightly easier to manage format 
than the ASpace job reports.

https://eadchecker.lib.harvard.edu/

--
Dave Mayo (he/him)
Senior Digital Library Software Engineer
Harvard University > HUIT > LTS

From:  on behalf of 
"Bowers, Kate A." 
Reply-To: Archivesspace Users Group 

Date: Friday, November 22, 2019 at 1:28 PM
To: Archivesspace Users Group 
Subject: Re: [Archivesspace_Users_Group] importing EAD files

At the end of our article “The Devil’s Shoehorn” 
https://journal.code4lib.org/articles/12239
 there is an appendix of problems. Many of these are valid EAD that don’t 
import.  It is listed by EAD element name. Things may have changed but this at 
least is a starting-point checklist.

Kate

From: archivesspace_users_group-boun...@lyralists.lyrasis.org 
 On Behalf Of Sharp, 
Jennifer
Sent: Friday, November 22, 2019 12:24 PM
To: 'Archivesspace Users Group' 

Subject: Re: [Archivesspace_Users_Group] importing EAD files

Thank you so much, Mark! This is immensely helpful. I know the standards have 
changed since our process was hacked together seven or eight years ago, so I’m 
not at all surprised I will have to make some updates. I appreciate the links – 
I will definitely take some time to read through the info.

Jennifer

---
Jennifer Sharp, MSI
Archivist, Hartford History Center
Hartford Public Library
jsh...@hplct.org
o: 860.695.6332
c: 860.929.6915

From: 
archivesspace_users_group-boun...@lyralists.lyrasis.org
 [mailto:archivesspace_users_group-boun...@lyralists.lyrasis.org] On Behalf Of 
Custer, Mark
Sent: Friday, November 22, 2019 11:44 AM
To: Archivesspace Users Group 
mailto:archivesspace_users_group@lyralists.lyrasis.org>>
Subject: Re: [Archivesspace_Users_Group] importing EAD files

Jennifer,

Thanks, this helps a lot!

It looks like there are couple of required elements missing from this file for 
ArchivesSpace to be able to import it.  Though your file is valid EAD, 
ArchivesSpace requires all resources to have things like a title, date, extent, 
as well as a distinct unitid element (which this file is missing).  So, you’d 
need to add a unitid element, like so:

1861-1946
Distinct Call Number

20 linear feet
 



Additionally, all of the lower-level components must have, at the very least, a 
title OR a date.

In this case, it looks like all of your series have “unitid” elements instead 
of “unittitle” elements.  But if you change this for all of your series:


  
  Volumes
  
…

To:


  
  Volumes
  
…

Then you should be good to go with that particular file (see the attached file 
as an example).

If you have access to an XML Editor like oXygen, check out 
https://campuspress.yale.edu/yalearchivesspace/2015/07/22/validation-scenarios/.
  Regardless, though, my guess is that if you address that “archdesc/unitid” 
issue and the series-level did/unitid --> did/unittitle issue, that should help 
with the majority of your files.  There are also other possibilities, like 
updating the EAD so that you get normalized dates in addition to textual date 
expressions, but that requires quite a bit more work.

I hope that helps,

Mark





From: 
archivesspace_users_group-boun...@lyralists.lyrasis.org
 [mailto:archivesspace_users_group-boun...@lyralists.lyrasis.org] On Behalf Of 
Sharp, Jennifer
Sent: Friday, 22 November, 2019 10:30 AM
To: Archivesspace Users Group 
mailto:archivesspace_users_group@lyralists.lyrasis.org>>
Subject: Re: [Archivesspace_Users_Group] importing EAD files

I have attached one of the files I used earlier this week. The job completed, 
but when I tried it this morning – both locally and on test.archivesspace.org – 
it failed.

This, from Tuesday, can’t be too promising:
[cid:image001.jpg@01D5A138.A1124FB0]

These are today’s errors:
[cid:image002.jpg@01D5A138.A1124FB0]

Thanks,
Jennifer

---
Jennifer Sharp, MSI
Archivist, Hartford History Center
Hartford Public Library

Re: [Archivesspace_Users_Group] Database query to recreate inventory hierarchy?

2019-09-20 Thread Mayo, Dave
It’s possible, but I think to do it in one query requires recursive common 
table expressions – what version of MySQL/MariaDB are you on?

I wrote a thing that’s almost this except I was getting container info attached 
to the AOs rather than info from the AOs themselves, I can probably find and 
repurpose it, but it won’t run on MySQL prior to 8.0.

--
Dave Mayo (he/him)
Senior Digital Library Software Engineer
Harvard University > HUIT > LTS

From:  on behalf of 
Olivia S Solis 
Reply-To: Archivesspace Users Group 

Date: Friday, September 20, 2019 at 9:48 AM
To: Archivesspace Users Group 
Subject: [Archivesspace_Users_Group] Database query to recreate inventory 
hierarchy?

Hi all,

I have been trying to figure out a database query that will list all the 
archival objects in a resource record's display_strings and their associated 
ids in the order that they appear in the resource record. This has proven more 
challenging than I thought. I can't find the magical query that will leverage 
root_record_id (i.e. the resource record), parent_id, and position.

If anyone else has figured this out, please let me know!

FYI, this is our use case, though I see many other uses for this query. We 
publish our EAD to TARO, a consortia of Texas archives. TARO's style is to only 
display the first container in a series of s with the same container and 
omit containers until there is a new container. A lot of our early EAD 
therefore has the first box in a series of s with the same box. It looked 
fine in TARO! Not so much in ASpace. See screenshots below for an example:

TARO:
[https://lh4.googleusercontent.com/5P7wiGVFjswktn_sCsZ6TLIBzFP5jt29GKSGis3r52QMUUhNHlu0VKoNWOUwAerE-D4Qx4x5kY3tSG7zkENI4qIG3bdsrWzITbKCwBB4qBvmisiumoNv4nCe1IWO9uMkRq_3P7U]


vs. EAD:
[https://lh3.googleusercontent.com/jqzk-JPuL819OETK2UZAJY_8ZFu9M56yeqYyydUOf7dF_YZJ90OHwdEjT6YU5637g6kEtAyIiv1zJpRpnh8mLRDkd8PjJKUr81iTwb08RfuagB3YqL0mFwfEQVUfCgtfIb2or8M]
This problem affects thousands of archival objects, so manually fixing this in 
the GUI would be extremely burdensome for us. I'd like to retrieve archival 
objects in the order they appear in a resource record. In this particular case, 
I'd also join the boxes and their IDs so that I could either use fill down in 
OpenRefine or copy the box and paste is down in a spreadsheet. Then I'd use the 
API to add the missing container instances. But the essential problem I am 
having is that I just can't figure out the database query to retrieve the AOs 
in order.


Hopefully, this is clear. If anyone can help, let me know please!

Thanks!
Olivia

--
Olivia Solis, MSIS
Metadata Coordinator
Dolph Briscoe Center for American History
The University of Texas at Austin
2300 Red River St. Stop D1100
Austin TX, 78712-1426
(512) 232-8013
___
Archivesspace_Users_Group mailing list
Archivesspace_Users_Group@lyralists.lyrasis.org
http://lyralists.lyrasis.org/mailman/listinfo/archivesspace_users_group


Re: [Archivesspace_Users_Group] Database query to recreate inventory hierarchy?

2019-09-20 Thread Mayo, Dave
This is limited to _published_ AOs, so if you want to get all of them, you’d 
probably need to use something like 
https://archivesspace.github.io/archivesspace/api/#get-a-resource-tree and then 
walk down the tree and get uris/ids manually.

--
Dave Mayo (he/him)
Senior Digital Library Software Engineer
Harvard University > HUIT > LTS

From:  on behalf of 
"Mayo, Dave" 
Reply-To: Archivesspace Users Group 

Date: Friday, September 20, 2019 at 10:13 AM
To: Archivesspace Users Group 
Subject: Re: [Archivesspace_Users_Group] Database query to recreate inventory 
hierarchy?

No joy then, I’m sorry to say.  Honestly, since the API is going to be in the 
mix to use eventually, I’d suggest looking at this endpoint:

https://archivesspace.github.io/archivesspace/api/#get-the-list-of-uris-of-this-published-resource-and-all-published-archival-objects-contained-within-ordered-by-tree-order-i-e-if-you-fully-expanded-the-record-tree-and-read-from-top-to-bottom<https://urldefense.proofpoint.com/v2/url?u=https-3A__archivesspace.github.io_archivesspace_api_-23get-2Dthe-2Dlist-2Dof-2Duris-2Dof-2Dthis-2Dpublished-2Dresource-2Dand-2Dall-2Dpublished-2Darchival-2Dobjects-2Dcontained-2Dwithin-2Dordered-2Dby-2Dtree-2Dorder-2Di-2De-2Dif-2Dyou-2Dfully-2Dexpanded-2Dthe-2Drecord-2Dtree-2Dand-2Dread-2Dfrom-2Dtop-2Dto-2Dbottom=DwMGaQ=WO-RGvefibhHBZq3fL85hQ=_Mv1dY22K7jvT5MD7xjbvGVzRDOUMhx4WYcnPSIzYnE=2fMESNfVzsOLpA4jhFdQmTe1ChlVGDyaYYraUA2CpB0=RXCUneIYE1hDsWDlAZ08krr_Xa8JXXiagrBveWRqSDc=>

The API is probably the easiest way to get this information, though if you’re 
fetching this info for _all_ records it’s definitely gonna be slower.

--
Dave Mayo (he/him)
Senior Digital Library Software Engineer
Harvard University > HUIT > LTS

From:  on behalf of 
Olivia S Solis 
Reply-To: Archivesspace Users Group 

Date: Friday, September 20, 2019 at 10:05 AM
To: Archivesspace Users Group 
Subject: Re: [Archivesspace_Users_Group] Database query to recreate inventory 
hierarchy?

5.5.60
___
Archivesspace_Users_Group mailing list
Archivesspace_Users_Group@lyralists.lyrasis.org
http://lyralists.lyrasis.org/mailman/listinfo/archivesspace_users_group


Re: [Archivesspace_Users_Group] Database query to recreate inventory hierarchy?

2019-09-20 Thread Mayo, Dave
No joy then, I’m sorry to say.  Honestly, since the API is going to be in the 
mix to use eventually, I’d suggest looking at this endpoint:

https://archivesspace.github.io/archivesspace/api/#get-the-list-of-uris-of-this-published-resource-and-all-published-archival-objects-contained-within-ordered-by-tree-order-i-e-if-you-fully-expanded-the-record-tree-and-read-from-top-to-bottom

The API is probably the easiest way to get this information, though if you’re 
fetching this info for _all_ records it’s definitely gonna be slower.

--
Dave Mayo (he/him)
Senior Digital Library Software Engineer
Harvard University > HUIT > LTS

From:  on behalf of 
Olivia S Solis 
Reply-To: Archivesspace Users Group 

Date: Friday, September 20, 2019 at 10:05 AM
To: Archivesspace Users Group 
Subject: Re: [Archivesspace_Users_Group] Database query to recreate inventory 
hierarchy?

5.5.60
___
Archivesspace_Users_Group mailing list
Archivesspace_Users_Group@lyralists.lyrasis.org
http://lyralists.lyrasis.org/mailman/listinfo/archivesspace_users_group


Re: [Archivesspace_Users_Group] Oddities when updating Agents via the API

2019-10-13 Thread Mayo, Dave
There are a lot of sub-records in ASpace that are essentially treated as 
ephemeral but which have full concrete tables backing them; they’re not 
addressable in the system, their representations in the JSONModel are as 
primitive values (strings, array of strings, etc) rather than objects, etc.  
Instances are kind of this way – you can’t grab an instance, only the things 
attached to it, but it has a database ID, etc.

You _might_ be able to insert refs to the subrecords that aren’t changing, 
rather than the values/records themselves?  That _might_ keep the values the 
same, but I’m not sure it’ll be legal everywhere.  You could also try 
explicitly setting created_by and created_at; I am at a conf but could poke at 
this later (maybe tonight or tomorrow) if you’ll remind me.

--
Dave Mayo (he/him)
Senior Digital Library Software Engineer
Harvard University > HUIT > LTS

From:  on behalf of 
Rachel Donahue 
Reply-To: Archivesspace Users Group 

Date: Friday, October 11, 2019 at 11:52 AM
To: "archivesspace_users_group@lyralists.lyrasis.org" 

Subject: [Archivesspace_Users_Group] Oddities when updating Agents via the API

Hi all,

I'm running some bulk updates to Agents (in this case people) via the API and 
noticed some rather odd changes to sub-records when I check the JSON after 
successfully running the update.

1. Every sub-record (e.g. names, telephones) has replaced "created_by" with the 
user authenticated by the API and create_time with the time of the API call. 
The Agent itself retains its created_by and time, thankfully, but all the bits 
and pieces lose it.
2. Possibly related to this, a new telephone number is created even though 
nothing about the phone number has changed. (e.g. what was /telephone/99 is now 
/telephone/204)
3. The lock_version for the sub-records isn't changing from 0.

The only thing changing in these updates is the name source and we're using 
ArchivesSpace 2.6.0. I have been reposting the entire object in the update--is 
it possible to post *only* the changing fields and perhaps avoid the problem?

While this isn't a make-or-break problem, I'd really like to retain the 
created_by information for names, as it is often *not* the same as the person 
who created the initial record. I'm also not sure if this is a bug or something 
I'm doing wrong. Any insights would be much appreciated!

Best,
Rachel

--

Please note that I currently do not have access to ARS email. If you need to 
contact me, use my LAC address: 
rachel.dona...@lac-group.com

The information contained in this e-mail message is confidential. If you are 
not the intended recipient, any dissemination or copying is strictly 
prohibited. If you think that you have received this e-mail message in error, 
please contact the sender.
___
Archivesspace_Users_Group mailing list
Archivesspace_Users_Group@lyralists.lyrasis.org
http://lyralists.lyrasis.org/mailman/listinfo/archivesspace_users_group


[Archivesspace_Users_Group] Release 3.0.3 and 3.0.4 of aspace-import-excel plugin

2020-01-31 Thread Mayo, Dave
This message may be of interest to those who use, or are considering, the
aspace-import-excel plugin
(https://github.com/harvard-library/aspace-import-excel [github.com]), or
the Tufts Extended Version plugin
(https://github.com/tufts-digital-collections-archives/aspace-import-excel
.

Harvard Library is pleased to announce that the Pull Request for the Tufts
Extended Version of the plugin has been integrated, and is available as a
release at
https://github.com/harvard-library/aspace-import-excel/releases/tag/v3.0.3
. This release supports an extended spreadsheet template to take advantage
of enhancements that support:
   * Individually setting the publish/unpublish flags for Notes.
   * Ability to add Agents as Source and Subject, not just Creator.
   * Expanded the number of Agents for each type, including directions for
adding even more agents.
   * Support for more than one Extent, with the ability to add more
extents.

IF you are using ArchivesSpace v2.7 -- or planning to soon -- we recommend
that you instead download and install v3.0.4 at
https://github.com/harvard-library/aspace-import-excel/releases/tag/v3.0.4.
This version supports the new Language block introduced by ArchivesSpace.
Full User documentation for the import of Archival Objects in this version
is at
https://github.com/harvard-library/aspace-import-excel/blob/v3.0.4/user_documentation/archival_objects_instructions.md
.

Note that both versions are backward compatible in that you may continue
to use the spreadsheet templates you are currently using, although it is
recommended that, when you upgrade to ArchivesSpace v2.7, you use the new
spreadsheet template that allows you to specify the language (controlled
value list), language script (ditto), and the language of materials note.

--
Dave Mayo (responsible party for plugin at Harvard) https://github.com/pobocks/
Bobbi Fox, maintainer https://github.com/bobbi-SMR/



___
Archivesspace_Users_Group mailing list
Archivesspace_Users_Group@lyralists.lyrasis.org
http://lyralists.lyrasis.org/mailman/listinfo/archivesspace_users_group


Re: [Archivesspace_Users_Group] question about customizing search features in the ArchivesSpace PUI

2020-01-09 Thread Mayo, Dave
This is super useful!

One caveat re bq being space separated, that’s only true IF you have q.op unset 
or set explicitly to “OR” – if you change q.op, it affects bq identically to q, 
so the boost queries will become ANDed as well, and since nothing can have 
multiple primary types, the bq will do nothing.

--
Dave Mayo (he/him)
Senior Digital Library Software Engineer
Harvard University > HUIT > LTS

From:  on behalf of 
Andrew Morrison 
Reply-To: Archivesspace Users Group 

Date: Thursday, January 9, 2020 at 5:21 AM
To: Archivesspace Users Group 
Subject: Re: [Archivesspace_Users_Group] question about customizing search 
features in the ArchivesSpace PUI

Some additional notes on relevance-rank boosting:


  *   When experimenting with different boost values, you have to restart after 
each change to config.rb (just the backend in a developer system, but in a 
system running a pre-built release you have to restart the whole thing, which 
gets tiresome).
  *   If you know how to access the Solr web interface (how depends on your 
setup) then it is quicker to play around with different boosts using that, 
before copying them into the ArchivesSpace config for final testing. To 
approximately simulate a simple keyword search in the public user interface, 
for example searching all records for the keyword "cheese", set q to 
fullrecord:cheese, set fq to types:pui, set fl to primary_type,title, select 
edismax, then enter your boosts in the bf field.
  *   bq can be space-separated instead of using OR.
  *   If you literally want any search query to return all archival objects 
first, even ones that only match the keyword once deep inside a note, before 
any collections even ones which contain the keyword dozens of times, and then 
all other record types last, even if their title is a precise match, then boost 
factors like 50 and 100 are appropriate. For a more subtle bias towards certain 
record types, without them totally dominating, start low and work upwards (the 
smallest boost you can apply is 1.1).

Andrew.


On Wed, 2020-01-08 at 15:39 +, Mayo, Dave wrote:
Hi Henry!

So, good news! As long as you’re on a reasonably current version of ASpace, you 
can change order by primary type purely via configuration.

The way you’d do it is by setting the bq param in AppConfig[:solr_params] – 
here’s what we’ve got in production right now (we’re setting q.op also, because 
we wanted the default search operator to be AND:

AppConfig[:solr_params] = { "q.op" => "AND", "bq" => proc { 
"primary_type:resource^100 OR primary_type:accession^100 OR 
primary_type:subject^50 OR primary_type:agent_person^50 OR 
primary_type:agent_corporate_entity^30 OR primary_type:agent_family^30" }}

To set it how you’d like it, you could take our BQ and adjust the values so 
that AOs > collections > etc., e.g.:

AppConfig[:solr_params] = {“bq” => proc { “primary_type:archival_object^100 OR 
primary_type:resource^50” }

This is assuming you don’t care about sort order for other types, but fill in 
however many you want and adjust boost increments (the number after ^) to suit.

For more info on how bq works, consult the docs for Solr’s dismax parser: 
https://lucene.apache.org/solr/guide/6_6/the-dismax-query-parser.html<https://urldefense.proofpoint.com/v2/url?u=https-3A__lucene.apache.org_solr_guide_6-5F6_the-2Ddismax-2Dquery-2Dparser.html=DwMGaQ=WO-RGvefibhHBZq3fL85hQ=_Mv1dY22K7jvT5MD7xjbvGVzRDOUMhx4WYcnPSIzYnE=4qxuV7g4RP-HIbimkIt2sAOG2pUqvutYsjt5uuWjYik=GHSTumGgJkdaEBsAJFe-dMlXts0xBKmeqbuFbjaA7QE=>

Note that in Solr it’s normal to pass multiple bq parameters if you want to 
boost multiple things, but prior to  2.6.0, solr_params didn’t support it, so 
one “bq” with a query using OR is a workaround.

If you’re on 2.6.0 or higher, you can do:

AppConfig[:solr_params] = {“bq” => [ ‘primary_type:archival_object^100’, 
‘primary_type:resource^50’]}

which is technically “cleaner” by solr standards, but is equivalent in function 
as far as I can tell.

--
Dave Mayo (he/him)
Senior Digital Library Software Engineer
Harvard University > HUIT > LTS

From:  on behalf of 
"Steele, Henry" 
Reply-To: Archivesspace Users Group 

Date: Tuesday, January 7, 2020 at 5:08 PM
To: Archivesspace Users Group 
Subject: [Archivesspace_Users_Group] question about customizing search features 
in the ArchivesSpace PUI

Good afternoon,

I work at Tufts University in cooperation with the Digital Collections & 
Archives.   I am working on various changes to the public user interface.  Many 
of you helped with questions before, which were a great help!

There’s a change we want to make to search results.   I suspect it may involve 
getting into controllers and the functioning of ASpace, but I wanted to check, 
and ask if anyone has a plugin that does this sort of thing.

We want to change the sort options for search results so that archival objects 
appear

Re: [Archivesspace_Users_Group] question about customizing search features in the ArchivesSpace PUI

2020-01-08 Thread Mayo, Dave
Hi Henry!

So, good news! As long as you’re on a reasonably current version of ASpace, you 
can change order by primary type purely via configuration.

The way you’d do it is by setting the bq param in AppConfig[:solr_params] – 
here’s what we’ve got in production right now (we’re setting q.op also, because 
we wanted the default search operator to be AND:

AppConfig[:solr_params] = { "q.op" => "AND", "bq" => proc { 
"primary_type:resource^100 OR primary_type:accession^100 OR 
primary_type:subject^50 OR primary_type:agent_person^50 OR 
primary_type:agent_corporate_entity^30 OR primary_type:agent_family^30" }}

To set it how you’d like it, you could take our BQ and adjust the values so 
that AOs > collections > etc., e.g.:

AppConfig[:solr_params] = {“bq” => proc { “primary_type:archival_object^100 OR 
primary_type:resource^50” }

This is assuming you don’t care about sort order for other types, but fill in 
however many you want and adjust boost increments (the number after ^) to suit.

For more info on how bq works, consult the docs for Solr’s dismax parser: 
https://lucene.apache.org/solr/guide/6_6/the-dismax-query-parser.html

Note that in Solr it’s normal to pass multiple bq parameters if you want to 
boost multiple things, but prior to  2.6.0, solr_params didn’t support it, so 
one “bq” with a query using OR is a workaround.

If you’re on 2.6.0 or higher, you can do:

AppConfig[:solr_params] = {“bq” => [ ‘primary_type:archival_object^100’, 
‘primary_type:resource^50’]}

which is technically “cleaner” by solr standards, but is equivalent in function 
as far as I can tell.

--
Dave Mayo (he/him)
Senior Digital Library Software Engineer
Harvard University > HUIT > LTS

From:  on behalf of 
"Steele, Henry" 
Reply-To: Archivesspace Users Group 

Date: Tuesday, January 7, 2020 at 5:08 PM
To: Archivesspace Users Group 
Subject: [Archivesspace_Users_Group] question about customizing search features 
in the ArchivesSpace PUI

Good afternoon,

I work at Tufts University in cooperation with the Digital Collections & 
Archives.   I am working on various changes to the public user interface.  Many 
of you helped with questions before, which were a great help!

There’s a change we want to make to search results.   I suspect it may involve 
getting into controllers and the functioning of ASpace, but I wanted to check, 
and ask if anyone has a plugin that does this sort of thing.

We want to change the sort options for search results so that archival objects 
appear at the top, then collections, then everything else.  So by 
json_modeltype, with two of the highest precedence.

I thought of doing this in jquery, but this wouldn’t work because that would 
only sort the results on the page.

This may require development, but I wondered if someone had a direction to 
point me in, or if they had a plugin that could be modified.

Thanks

Henry Steele
Systems Librarian
Tufts University Library Technology Services
(617)627-5239

___
Archivesspace_Users_Group mailing list
Archivesspace_Users_Group@lyralists.lyrasis.org
http://lyralists.lyrasis.org/mailman/listinfo/archivesspace_users_group


Re: [Archivesspace_Users_Group] Search Across Repositories and Get EAD XML - ArchivesSpace API

2020-03-10 Thread Mayo, Dave
So, (and sorry I didn't catch this before, I was focused on the narrower 
issues), I think your problem there is actually that you're using the wrong 
endpoint.  When the docs say "Search across repositories," they don't mean 
"Search for arbitrary records across all repositories," they mean "Search 
across all records of TYPE "repository" - so you're getting back nothing 
because there are no resources that are also repositories (

The actual "search for arbitrary things everywhere" URL is just "/search" - I 
think if you use that, you ought to get some results.

--
Dave Mayo (he/him)
Senior Digital Library Software Engineer
Harvard University > HUIT > LTS

On 3/10/20, 8:29 AM, "archivesspace_users_group-boun...@lyralists.lyrasis.org 
on behalf of Corey Schmidt" 
 wrote:

This is all great! I've adjusted my search query to use parameters you 
recommended and I'm getting a response back. Though my searches are not 
generating any results. I've tried searching for collection titles and random 
words, but nothing comes back in the results value. Would you have any 
recommendations?

client.get('search/repositories', params={"q": "Freeman collection", 
"page": 1, "type": ['resource']})

I've also adjusted my EAD xml endpoint call and saving the file as you 
recommended and it's working like a charm. It's interesting to note that in 
previous exports, the barcodes to containers were being attached to the "label" 
attribute for the container tag (label="Mixed Materials [5168852364844]"). Yet, 
these exports are generating the "physloc" element with the barcode as the 
value. This works for us, I just thought it was odd.

-Original Message-
From: archivesspace_users_group-boun...@lyralists.lyrasis.org 
 On Behalf Of Mayo, 
Dave
Sent: Monday, March 9, 2020 12:46 PM
To: Archivesspace Users Group 

Subject: Re: [Archivesspace_Users_Group] Search Across Repositories and Get 
EAD XML - ArchivesSpace API

[EXTERNAL SENDER - PROCEED CAUTIOUSLY]


Oh, I missed the second part:

So, that endpoint returns the XML directly as the body of the response in 
memory.  The JSONDecodeError you’re getting is due to trying to decode this 
body as JSON, when what you actually have is XML!

If you want to save it to the filesystem, you just need to write it out:

response = 
client.get('repositories/5/resource_descriptions/5734.xml?include_unpublished=false_daos=true_cs=true_pdf=false=false')
with open('myfile.xml', 'wb') as f:
file.write(response.content)

Keep in mind also the parameter-passing stuff from my other email, so the 
request there can be written as:

client.get('repositories/5/resource_descriptions/5734.xml', 
params={'include_unpublished': False, 'include_daos': True, 'numbered_cs': 
True, 'print_pdf': False, 'ead3': False})

Hope this helps!
--
Dave Mayo (he/him)
Senior Digital Library Software Engineer Harvard University > HUIT > LTS

From:  on behalf 
of Corey Schmidt 
Reply-To: Archivesspace Users Group 

Date: Monday, March 9, 2020 at 10:39 AM
To: "archivesspace_users_group@lyralists.lyrasis.org" 

Subject: [Archivesspace_Users_Group] Search Across Repositories and Get EAD 
XML - ArchivesSpace API

Dear ArchivesSpace Members,

Hello, my name is Corey Schmidt and I’m working as the ArchivesSpace 
Project Manager at the University of Georgia. I hope you all are doing well and 
having a good start to your week.

I have two questions about how to utilize the ArchivesSpace API. First, I 
want to use the 
https://urldefense.proofpoint.com/v2/url?u=https-3A__archivesspace.github.io_archivesspace_api_-23search-2Dacross-2Drepositories=DwMFAg=WO-RGvefibhHBZq3fL85hQ=_Mv1dY22K7jvT5MD7xjbvGVzRDOUMhx4WYcnPSIzYnE=B2y_0wn1HLyXldJyck05IgPrsrOCn8LyjRI8q5uSbtc=_eqqK2s6KdcWsYV9Ke0loG2mitQ-I_nV-F9VeT24-l0=
 API endpoint searching with the resource identifier and take the results to 
get the URI for that resource. How do I structure my call to the API using the 
ASnake client (in python)? I have tried the following code with response 400 
returned:

 client.get('search/repositories?type="resource"=ms954_ids=true')
 client.get('/search/repositories?q=ms954="resource"_ids=true')

Second, I want to download an EAD xml file directly from the API using this 
endpoint: 
https://urldefense.proofpoint.com/v2/url?u=https-3A__archivesspace.github.io_archivesspace_api_-23get-2Dan-2Dead-2Drepresentation-2Dof-2Da-2Dresource=DwMFAg=WO-RGvefibhHBZq3fL85hQ=_Mv1dY22K7jvT5MD7xjbvGVzRDOUMhx4WYcnPSIzYnE=B2y_0wn1HLyXldJyck05IgPrsrOCn8LyjRI8q5uSbtc=xwd2j6qv-zYs8pDbLpLM23dcSeDYcPUkZSAuio8FEVQ=
 XML. How do I specify where the EAD xml file saves to? I’m not e

Re: [Archivesspace_Users_Group] Search Across Repositories and Get EAD XML - ArchivesSpace API

2020-03-09 Thread Mayo, Dave
Hi Corey,

Splitting this into two sections – the first is a description of what’s 
happening and should immediately fix your current issue, the second is some 
advice going forward re: using ASnake.

You appear to have found a bug in the ASpace API! From what I can tell, all_ids 
is not actually correctly supported in ‘search/repositories’ – you’ll need to 
use paged access until this is fixed.  I'm going to file a ticket

There’s also a minor issue with your query – the type parameter actually takes 
an ARRAY of strings, not a single string – in terms of how this shows up in the 
URL, the request should look like:

search/repositories?type[]="resource"=ms945=1

And then you could change page to 2 to get the next page of results, etc.

BUT, section two: advice on how to do this easily! There’s two main things:

1. Pass parameters in as an argument to the function, rather than putting them 
in the URL

  client.get('search/repositories', params={"q": "ms945", "page": 1, "type[]": 
'resource', 'page': 1})

ASnake is based on requests, so you can find specific documentation of how 
params works in the requests documentation.

Additionally, ASpace is set up to automatically handle array parameters, so you 
can actually do this (difference is to the type parameter):

client.get('search/repositories', params={"q": "ms945", "page": 1, "type": 
['resource'], 'page': 1})

2. ASnake's client also has a function specifically to handle paged routes 
called get_paged - so if you can do this:

for resource_json in client.get_paged('search/repositories', params={"q": 
"ms945", "type": ['resource']}):
# do something with resource JSON

Let me know if you need more help, here are some pointers to relevant docs:

https://github.com/archivesspace-labs/archivessnake#low-level-api
https://requests.readthedocs.io/en/master/user/quickstart/#passing-parameters-in-urls

--
Dave Mayo (he/him)
Senior Digital Library Software Engineer
Harvard University > HUIT > LTS

From:  on behalf of 
Corey Schmidt 
Reply-To: Archivesspace Users Group 

Date: Monday, March 9, 2020 at 10:39 AM
To: "archivesspace_users_group@lyralists.lyrasis.org" 

Subject: [Archivesspace_Users_Group] Search Across Repositories and Get EAD XML 
- ArchivesSpace API

Dear ArchivesSpace Members,

Hello, my name is Corey Schmidt and I’m working as the ArchivesSpace Project 
Manager at the University of Georgia. I hope you all are doing well and having 
a good start to your week.

I have two questions about how to utilize the ArchivesSpace API. First, I want 
to use the 
https://urldefense.proofpoint.com/v2/url?u=https-3A__archivesspace.github.io_archivesspace_api_-23search-2Dacross-2Drepositories=DwMFAg=WO-RGvefibhHBZq3fL85hQ=_Mv1dY22K7jvT5MD7xjbvGVzRDOUMhx4WYcnPSIzYnE=B2y_0wn1HLyXldJyck05IgPrsrOCn8LyjRI8q5uSbtc=_eqqK2s6KdcWsYV9Ke0loG2mitQ-I_nV-F9VeT24-l0=
 API endpoint searching with the resource identifier and take the results to 
get the URI for that resource. How do I structure my call to the API using the 
ASnake client (in python)? I have tried the following code with response 400 
returned:

 client.get('search/repositories?type="resource"=ms954_ids=true')
 client.get('/search/repositories?q=ms954="resource"_ids=true')

Second, I want to download an EAD xml file directly from the API using this 
endpoint: 
https://urldefense.proofpoint.com/v2/url?u=https-3A__archivesspace.github.io_archivesspace_api_-23get-2Dan-2Dead-2Drepresentation-2Dof-2Da-2Dresource=DwMFAg=WO-RGvefibhHBZq3fL85hQ=_Mv1dY22K7jvT5MD7xjbvGVzRDOUMhx4WYcnPSIzYnE=B2y_0wn1HLyXldJyck05IgPrsrOCn8LyjRI8q5uSbtc=xwd2j6qv-zYs8pDbLpLM23dcSeDYcPUkZSAuio8FEVQ=
 XML. How do I specify where the EAD xml file saves to? I’m not even sure if it 
is saving anywhere on my computer. However, my requests are successful, 
generating a 200 response. I tried turning the response into json (using 
ASnake’s .json()) and writing it, but I keep getting a JSONDecodeError. This is 
my request:

 request_ead = 
client.get('repositories/5/resource_descriptions/5734.xml?include_unpublished=false_daos=true_cs=true_pdf=false=false')

Any help would be greatly appreciated!

Sincerely,

Corey
 
Corey Schmidt
ArchivesSpace Project Manager | University of Georgia Libraries
Email: mailto:corey.schm...@uga.edu
Phone: +1-706-542-8151
 

___
Archivesspace_Users_Group mailing list
Archivesspace_Users_Group@lyralists.lyrasis.org
http://lyralists.lyrasis.org/mailman/listinfo/archivesspace_users_group


Re: [Archivesspace_Users_Group] Search Across Repositories and Get EAD XML - ArchivesSpace API

2020-03-09 Thread Mayo, Dave
Oh, I missed the second part:

So, that endpoint returns the XML directly as the body of the response in 
memory.  The JSONDecodeError you’re getting is due to trying to decode this 
body as JSON, when what you actually have is XML!

If you want to save it to the filesystem, you just need to write it out:

response = 
client.get('repositories/5/resource_descriptions/5734.xml?include_unpublished=false_daos=true_cs=true_pdf=false=false')
with open('myfile.xml', 'wb') as f:
file.write(response.content)

Keep in mind also the parameter-passing stuff from my other email, so the 
request there can be written as:

client.get('repositories/5/resource_descriptions/5734.xml', 
params={'include_unpublished': False, 'include_daos': True, 'numbered_cs': 
True, 'print_pdf': False, 'ead3': False})

Hope this helps!
--
Dave Mayo (he/him)
Senior Digital Library Software Engineer
Harvard University > HUIT > LTS

From:  on behalf of 
Corey Schmidt 
Reply-To: Archivesspace Users Group 

Date: Monday, March 9, 2020 at 10:39 AM
To: "archivesspace_users_group@lyralists.lyrasis.org" 

Subject: [Archivesspace_Users_Group] Search Across Repositories and Get EAD XML 
- ArchivesSpace API

Dear ArchivesSpace Members,

Hello, my name is Corey Schmidt and I’m working as the ArchivesSpace Project 
Manager at the University of Georgia. I hope you all are doing well and having 
a good start to your week.

I have two questions about how to utilize the ArchivesSpace API. First, I want 
to use the 
https://urldefense.proofpoint.com/v2/url?u=https-3A__archivesspace.github.io_archivesspace_api_-23search-2Dacross-2Drepositories=DwMFAg=WO-RGvefibhHBZq3fL85hQ=_Mv1dY22K7jvT5MD7xjbvGVzRDOUMhx4WYcnPSIzYnE=B2y_0wn1HLyXldJyck05IgPrsrOCn8LyjRI8q5uSbtc=_eqqK2s6KdcWsYV9Ke0loG2mitQ-I_nV-F9VeT24-l0=
 API endpoint searching with the resource identifier and take the results to 
get the URI for that resource. How do I structure my call to the API using the 
ASnake client (in python)? I have tried the following code with response 400 
returned:

 client.get('search/repositories?type="resource"=ms954_ids=true')
 client.get('/search/repositories?q=ms954="resource"_ids=true')

Second, I want to download an EAD xml file directly from the API using this 
endpoint: 
https://urldefense.proofpoint.com/v2/url?u=https-3A__archivesspace.github.io_archivesspace_api_-23get-2Dan-2Dead-2Drepresentation-2Dof-2Da-2Dresource=DwMFAg=WO-RGvefibhHBZq3fL85hQ=_Mv1dY22K7jvT5MD7xjbvGVzRDOUMhx4WYcnPSIzYnE=B2y_0wn1HLyXldJyck05IgPrsrOCn8LyjRI8q5uSbtc=xwd2j6qv-zYs8pDbLpLM23dcSeDYcPUkZSAuio8FEVQ=
 XML. How do I specify where the EAD xml file saves to? I’m not even sure if it 
is saving anywhere on my computer. However, my requests are successful, 
generating a 200 response. I tried turning the response into json (using 
ASnake’s .json()) and writing it, but I keep getting a JSONDecodeError. This is 
my request:

 request_ead = 
client.get('repositories/5/resource_descriptions/5734.xml?include_unpublished=false_daos=true_cs=true_pdf=false=false')

Any help would be greatly appreciated!

Sincerely,

Corey
 
Corey Schmidt
ArchivesSpace Project Manager | University of Georgia Libraries
Email: mailto:corey.schm...@uga.edu
Phone: +1-706-542-8151
 

___
Archivesspace_Users_Group mailing list
Archivesspace_Users_Group@lyralists.lyrasis.org
http://lyralists.lyrasis.org/mailman/listinfo/archivesspace_users_group


Re: [Archivesspace_Users_Group] Error updating resource records through API

2020-04-17 Thread Mayo, Dave
So, ArchivesSpace keeps track of whether it’s safe to modify an object via a 
field called “lock_version”. Any change to an object will increment this value, 
and this is probably what’s catching you up – something is altering the value 
between when you download the resource and when you update it.

There’s two things you can do.

- you can change the script you you fetch the JSON right before modifying and 
uploading it.
- you can delete lock_version from the object

The second carries risks, because if it’s failing because something else has 
modified the object in question, those changes can be lost.

--
Dave Mayo (he/him)
Senior Digital Library Software Engineer
Harvard University > HUIT > LTS

From:  on behalf of 
"Huebschen, Alan M" 
Reply-To: Archivesspace Users Group 

Date: Friday, April 17, 2020 at 10:26 AM
To: Archivesspace Users Group 
Subject: [Archivesspace_Users_Group] Error updating resource records through API

Hi all,

I’ve been attempting to update existing resource records through the API, the 
records already exist and I’m trying to upload modified versions of the JSON 
but I’m getting an error in response.

'error': 'The record you tried to update has been modified since you fetched 
it.'

At first I thought this meant either user_mtime, system_mtime, or create_time 
were preventing uploading an older version of the file but the error persists 
after replacing all time stamps with the current date and time.

Does anyone know what this error means?

Using ASnake:

resources = glob.glob('./resources/modified/' + '*.json')

for file in resources:
resources_id = file.rstrip('.json')
resources_id = re.findall('\d+', resources_id)
resource = json.load(open(file))
response = client.post('repositories/2/resources/' + resources_id[0], 
json=resource).json()

if response.get('error') != None:
print("*")
print(resources_id[0])
print(response['error'])
print(file)
print("*")

-Alan
___
Archivesspace_Users_Group mailing list
Archivesspace_Users_Group@lyralists.lyrasis.org
http://lyralists.lyrasis.org/mailman/listinfo/archivesspace_users_group


Re: [Archivesspace_Users_Group] EAD Import Error

2020-03-16 Thread Mayo, Dave
So, this isn’t actually an error about a character entity – those character 
entities are the result of a Ruby error being double-escaped in HTML.

The error actually being emitted is:

"#:0x2346a459>\nDid you mean?  instance_of?>"

Where that’s coming from, I’m not sure, unfortunately – is that the full error 
message?

--
Dave Mayo (he/him)
Senior Digital Library Software Engineer
Harvard University > HUIT > LTS

From:  on behalf of 
Corinne Chatnik 
Reply-To: Archivesspace Users Group 

Date: Monday, March 16, 2020 at 1:58 PM
To: "archivesspace_users_group@lyralists.lyrasis.org" 

Subject: [Archivesspace_Users_Group] EAD Import Error

Hi,

When I try to run the background job of Import Data, EAD I get the following 
error:
==
13036.xml
==


!!
IMPORT ERROR
!!


Error: #NoMethodError: undefined method `instances for 
##Class:0x3471635c:0x2346a459
Did you mean?  instance_of?
!!

I have replaced any stylized characters and looked for rogue symbols and empty 
tags. I tried reformatting the dates to -MM-DD.
I’ve also run it through Harvard Archivesspace_checker and it passes.

Attached is the ead file.

If anyone can let me know what the error message means that would be fantastic.

Thanks!

Corinne Chatnik
Digital Strategies
New York State Archives
archives.nysed.gov
corinne.chat...@nysed.gov
518-473-4153




Confidentiality Notice

This email including all attachments is confidential and intended solely for 
the use of the individual or entity to which it is addressed. This 
communication may contain information that is protected from disclosure under 
State and/or Federal law. Please notify the sender immediately if you have 
received this communication in error and delete this email from your system. If 
you are not the intended recipient you are notified that disclosing, copying, 
distributing or taking any action in reliance on the contents of this 
information is strictly prohibited.

___
Archivesspace_Users_Group mailing list
Archivesspace_Users_Group@lyralists.lyrasis.org
http://lyralists.lyrasis.org/mailman/listinfo/archivesspace_users_group


Re: [Archivesspace_Users_Group] EAD Import Error

2020-03-16 Thread Mayo, Dave
So, looking at the EAD converter code, there’s two places where .instances is 
called: handling  elements and handling digital objects.  Based on 
how the code is written, I think it’s _much_ more likely that this is a 
container – from what I can see, any case where a container is nested in a way 
where its context_object isn’t an AO or resource (or other thing that can have 
instances).  My first suspect is maybe the container in the ’s DID? 
I’m not _positive_ and I don’t have time right now to do more digging, but it’s 
the one I immediately see that is different than any others.

--
Dave Mayo (he/him)
Senior Digital Library Software Engineer
Harvard University > HUIT > LTS

From:  on behalf of 
Corinne Chatnik 
Reply-To: Archivesspace Users Group 

Date: Monday, March 16, 2020 at 2:20 PM
To: Archivesspace Users Group 
Subject: Re: [Archivesspace_Users_Group] EAD Import Error

Thanks for responding!

Yes that’s the complete error message.

From: archivesspace_users_group-boun...@lyralists.lyrasis.org 
 On Behalf Of Mayo, 
Dave
Sent: Monday, March 16, 2020 2:18 PM
To: Archivesspace Users Group 
Subject: Re: [Archivesspace_Users_Group] EAD Import Error

So, this isn’t actually an error about a character entity – those character 
entities are the result of a Ruby error being double-escaped in HTML.

The error actually being emitted is:

"#:0x2346a459>\nDid you mean?  instance_of?>"

Where that’s coming from, I’m not sure, unfortunately – is that the full error 
message?

--
Dave Mayo (he/him)
Senior Digital Library Software Engineer
Harvard University > HUIT > LTS

From: 
mailto:archivesspace_users_group-boun...@lyralists.lyrasis.org>>
 on behalf of Corinne Chatnik 
mailto:corinne.chat...@nysed.gov>>
Reply-To: Archivesspace Users Group 
mailto:archivesspace_users_group@lyralists.lyrasis.org>>
Date: Monday, March 16, 2020 at 1:58 PM
To: 
"archivesspace_users_group@lyralists.lyrasis.org<mailto:archivesspace_users_group@lyralists.lyrasis.org>"
 
mailto:archivesspace_users_group@lyralists.lyrasis.org>>
Subject: [Archivesspace_Users_Group] EAD Import Error

Hi,

When I try to run the background job of Import Data, EAD I get the following 
error:
==
13036.xml
==


!!
IMPORT ERROR
!!


Error: #NoMethodError: undefined method `instances for 
##Class:0x3471635c:0x2346a459
Did you mean?  instance_of?
!!

I have replaced any stylized characters and looked for rogue symbols and empty 
tags. I tried reformatting the dates to -MM-DD.
I’ve also run it through Harvard Archivesspace_checker and it passes.

Attached is the ead file.

If anyone can let me know what the error message means that would be fantastic.

Thanks!

Corinne Chatnik
Digital Strategies
New York State Archives
archives.nysed.gov
corinne.chat...@nysed.gov<mailto:corinne.chat...@nysed.gov>
518-473-4153




Confidentiality Notice

This email including all attachments is confidential and intended solely for 
the use of the individual or entity to which it is addressed. This 
communication may contain information that is protected from disclosure under 
State and/or Federal law. Please notify the sender immediately if you have 
received this communication in error and delete this email from your system. If 
you are not the intended recipient you are notified that disclosing, copying, 
distributing or taking any action in reliance on the contents of this 
information is strictly prohibited.

___
Archivesspace_Users_Group mailing list
Archivesspace_Users_Group@lyralists.lyrasis.org
http://lyralists.lyrasis.org/mailman/listinfo/archivesspace_users_group


Re: [Archivesspace_Users_Group] EAD Import Error

2020-03-16 Thread Mayo, Dave
You’re very welcome! I’ll add that to the checker as soon as I get a minute!

--
Dave Mayo (he/him)
Senior Digital Library Software Engineer
Harvard University > HUIT > LTS

From:  on behalf of 
Corinne Chatnik 
Reply-To: Archivesspace Users Group 

Date: Monday, March 16, 2020 at 2:36 PM
To: Archivesspace Users Group 
Subject: Re: [Archivesspace_Users_Group] EAD Import Error

That solved it thank you so much!

From: archivesspace_users_group-boun...@lyralists.lyrasis.org 
 On Behalf Of Mayo, 
Dave
Sent: Monday, March 16, 2020 2:31 PM
To: Archivesspace Users Group 
Subject: Re: [Archivesspace_Users_Group] EAD Import Error

So, looking at the EAD converter code, there’s two places where .instances is 
called: handling  elements and handling digital objects.  Based on 
how the code is written, I think it’s _much_ more likely that this is a 
container – from what I can see, any case where a container is nested in a way 
where its context_object isn’t an AO or resource (or other thing that can have 
instances).  My first suspect is maybe the container in the ’s DID? 
I’m not _positive_ and I don’t have time right now to do more digging, but it’s 
the one I immediately see that is different than any others.

--
Dave Mayo (he/him)
Senior Digital Library Software Engineer
Harvard University > HUIT > LTS

From: 
mailto:archivesspace_users_group-boun...@lyralists.lyrasis.org>>
 on behalf of Corinne Chatnik 
mailto:corinne.chat...@nysed.gov>>
Reply-To: Archivesspace Users Group 
mailto:archivesspace_users_group@lyralists.lyrasis.org>>
Date: Monday, March 16, 2020 at 2:20 PM
To: Archivesspace Users Group 
mailto:archivesspace_users_group@lyralists.lyrasis.org>>
Subject: Re: [Archivesspace_Users_Group] EAD Import Error

Thanks for responding!

Yes that’s the complete error message.

From: 
archivesspace_users_group-boun...@lyralists.lyrasis.org<mailto:archivesspace_users_group-boun...@lyralists.lyrasis.org>
 
mailto:archivesspace_users_group-boun...@lyralists.lyrasis.org>>
 On Behalf Of Mayo, Dave
Sent: Monday, March 16, 2020 2:18 PM
To: Archivesspace Users Group 
mailto:archivesspace_users_group@lyralists.lyrasis.org>>
Subject: Re: [Archivesspace_Users_Group] EAD Import Error

So, this isn’t actually an error about a character entity – those character 
entities are the result of a Ruby error being double-escaped in HTML.

The error actually being emitted is:

"#:0x2346a459>\nDid you mean?  instance_of?>"

Where that’s coming from, I’m not sure, unfortunately – is that the full error 
message?

--
Dave Mayo (he/him)
Senior Digital Library Software Engineer
Harvard University > HUIT > LTS

From: 
mailto:archivesspace_users_group-boun...@lyralists.lyrasis.org>>
 on behalf of Corinne Chatnik 
mailto:corinne.chat...@nysed.gov>>
Reply-To: Archivesspace Users Group 
mailto:archivesspace_users_group@lyralists.lyrasis.org>>
Date: Monday, March 16, 2020 at 1:58 PM
To: 
"archivesspace_users_group@lyralists.lyrasis.org<mailto:archivesspace_users_group@lyralists.lyrasis.org>"
 
mailto:archivesspace_users_group@lyralists.lyrasis.org>>
Subject: [Archivesspace_Users_Group] EAD Import Error

Hi,

When I try to run the background job of Import Data, EAD I get the following 
error:
==
13036.xml
==


!!
IMPORT ERROR
!!


Error: #NoMethodError: undefined method `instances for 
##Class:0x3471635c:0x2346a459
Did you mean?  instance_of?
!!

I have replaced any stylized characters and looked for rogue symbols and empty 
tags. I tried reformatting the dates to -MM-DD.
I’ve also run it through Harvard Archivesspace_checker and it passes.

Attached is the ead file.

If anyone can let me know what the error message means that would be fantastic.

Thanks!

Corinne Chatnik
Digital Strategies
New York State Archives
archives.nysed.gov
corinne.chat...@nysed.gov<mailto:corinne.chat...@nysed.gov>
518-473-4153




Confidentiality Notice

This email including all attachments is confidential and intended solely for 
the use of the individual or entity to which it is addressed. This 
communication may contain information that is protected from disclosure under 
State and/or Federal law. Please notify the sender immediately if you have 
received this communication in error and delete this email from your system. If 
you are not the intended recipient you are notified that disclosing, copying, 
distributing or taking any action in reliance on the contents of this 
information is strictly prohibited.

___
Archivesspace_Users_Group mailing list
Archivesspace_Users_Group@lyralists.lyrasis.org
http://lyralists.lyrasis.org/mailman/listinfo/archivesspace_users_group


Re: [Archivesspace_Users_Group] EAD via API - character problem

2020-03-27 Thread Mayo, Dave
Can you be more precise about what “directly from the archivesspace” means?  
What page (URL) and control on the page you’re using to generate this?  I want 
to make sure it’s the same code path in both cases.

Also, when you say “locally,” do you just mean the script is running locally 
against the same ASpace instance, or is it a different ASpace instance from the 
one where you’re getting correct results?
--
Dave Mayo (he/him)
Senior Digital Library Software Engineer
Harvard University > HUIT > LTS

From:  on behalf of 
"Kennedy, Nancy" 
Reply-To: Archivesspace Users Group 

Date: Friday, March 27, 2020 at 1:41 PM
To: "Archivesspace Users Group 
(archivesspace_users_group@lyralists.lyrasis.org)" 

Subject: [Archivesspace_Users_Group] EAD via API - character problem

Hi all –
Today I noticed that if I export an EAD with “Yin-Hsü” directly from the 
archivesspace, my EAD results carry through with the correct encoding.

But, when I export locally via the API, I end up with “Yin-Hs端”.   I’m using 
python 3.7.4, via local windows machine.  I’ve tried both archivessnake and 
just using requests, but I still end up with 端.

Suggestions?  Here’s what I’m doing via asnake:

export_options = 
'?include_daos=true&?include_unpublished=false&?numbered_cs=false'
for i in resource_ids:
ead = client.get(repo['uri']
 +'/resource_descriptions/'+str(i)+'.xml'
 + export_options).text

Nancy Kennedy
Smithsonian Institution
kenne...@si.edu

___
Archivesspace_Users_Group mailing list
Archivesspace_Users_Group@lyralists.lyrasis.org
http://lyralists.lyrasis.org/mailman/listinfo/archivesspace_users_group


Re: [Archivesspace_Users_Group] Question Regarding the REST API batch_imports Operation

2020-05-07 Thread Mayo, Dave
I did a lot of this back in the day, but it’s been a while – IIRC

You post an array of objects matching the JSONModel schema in ArchivesSpace.  
If you’re referencing existing objects in the system, you use the existing URI 
in refs, if you’re creating an object, you give it an arbitrary URI which will 
be replaced on ingest, and succeeding objects later in the array can reference 
that URI.

For example, in this case, 
https://github.com/smith-special-collections/aspace-utils/blob/smith/resource_parser.rb#L389,
 I give resource objects a URI that looks like 
"/repositories/import/resources/import_309r8sfoijw3409ruf0u40fg8" (using a UUID 
generator built into Ruby) so objects later in the import can refer to the 
resource.

Does that make sense?

--
Dave Mayo (he/him)
Senior Digital Library Software Engineer
Harvard University > HUIT > LTS

From:  on behalf of 
James R Griffin III 
Reply-To: Archivesspace Users Group 

Date: Thursday, May 7, 2020 at 10:44 AM
To: Archivesspace Users Group 
Subject: Re: [Archivesspace_Users_Group] Question Regarding the REST API 
batch_imports Operation

I am terribly sorry, I have now found that the payload is a JSON serialization 
of an array of  resource objects: 
https://github.com/archivesspace/archivesspace/blob/master/backend/spec/controller_batch_import_spec.rb#L41

Would one then model the payload as one of these arrays of JSON objects, each 
with a URI internal to the EAD file?

From: James R Griffin III
Sent: Thursday, May 7, 2020 10:30 AM
To: Archivesspace Users Group 
Subject: Question Regarding the REST API batch_imports Operation

Hello Everyone,

I have recently been reviewing the documentation for the REST API, and was 
looking to explore the possible usage of 
https://archivesspace.github.io/archivesspace/api/#import-a-batch-of-records

Please forgive for my ignorance, but does the body of the POST request contain 
a payload of EAD XML? Would this be a string of concatenated EAD documents?

Additionally, my understanding is that the response from this request contains 
an identifier for the created object. As the job for importing the records 
would be asynchronous, should one poll for the status of this new object by 
repeatedly transmitting a GET request against 
https://archivesspace.github.io/archivesspace/api/#find-resources-by-their-identifiers
 until it has been fully imported?

Thank you for your patience and assistance.

Sincerely,
James


--

my.pronoun.is/he

James R. Griffin III

Digital Infrastructure Developer

Princeton University 
Library

Princeton, NJ 08544

___
Archivesspace_Users_Group mailing list
Archivesspace_Users_Group@lyralists.lyrasis.org
http://lyralists.lyrasis.org/mailman/listinfo/archivesspace_users_group


Re: [Archivesspace_Users_Group] Custom reports with string params?

2020-10-02 Thread Mayo, Dave
Hi,

We have a plugin we wrote with some custom SQL reports – this one uses a string 
parameter for an EADID or list of EADIDs - 
https://github.com/harvard-library/harvard_aspace_reports/blob/master/backend/model/resource_top_containers.rb

This is currently installed in production and working; it should be fine to 
install it and test locally or on a QA system, if you want to try it out in a 
live system.

--
Dave Mayo (he/him)
Senior Digital Library Software Engineer
Harvard University > HUIT > LTS

From:  on behalf of 
Karen Miller 
Reply-To: Archivesspace Users Group 

Date: Friday, October 2, 2020 at 9:42 AM
To: Archivesspace Users Group 
Subject: Re: [Archivesspace_Users_Group] Custom reports with string params?

Hi Nick,

I have an SQL query that I’ve embedded into an Excel spreadsheet (as a .odc 
file) which prompts the user for a value. The value I’m prompting for is 
numeric, but the code could be adjusted to take a string. I don’t think this is 
what you want, but if it is, please let me know and I’ll forward the code.

Karen

From: archivesspace_users_group-boun...@lyralists.lyrasis.org 
 On Behalf Of Nick 
Butler
Sent: Friday, October 02, 2020 6:14 AM
To: Archivesspace Users Group 
Subject: [Archivesspace_Users_Group] Custom reports with string params?

Hi all,

We've been asked to create a custom report that allows the user running it to 
input a string which is then used to search across various fields. I've checked 
through the pre-existing reports, and through several reports created by other 
institutions, but I haven't found an example of a report accepting a string 
parameter (only booleans and dates). I see from e.g. 
https://github.com/archivesspace/archivesspace/blob/75000415aa5ee60411c6caf012042af4fc157d00/frontend/app/views/jobs/_form.html.erb#L121
 that it should be possible to use a custom partial for different data types 
but nothing I've tried has worked so far. Is anyone doing anything like this, 
and might they have an example of it working?

Many thanks!
Nick
___
Archivesspace_Users_Group mailing list
Archivesspace_Users_Group@lyralists.lyrasis.org
http://lyralists.lyrasis.org/mailman/listinfo/archivesspace_users_group


Re: [Archivesspace_Users_Group] Custom reports with string params?

2020-10-05 Thread Mayo, Dave
Hmmm. I will double check, but this is running in production over here right 
now, so I’m wondering if the reporting functionality has changed since I looked 
at it.  What version of ASpace are you targeting?

--
Dave Mayo (he/him)
Senior Digital Library Software Engineer
Harvard University > HUIT > LTS

From:  on behalf of 
Nick Butler 
Reply-To: Archivesspace Users Group 

Date: Monday, October 5, 2020 at 5:02 AM
To: Archivesspace Users Group 
Subject: Re: [Archivesspace_Users_Group] Custom reports with string params?

Hi Dave,

Thank you for this link, it's really helpful. I've installed your reports 
plugin on a dev system and am now hitting the same problem I'm having with my 
report - how to get the text box to show up on the report screen (i.e. what to 
put in the jobs/report_partials/_string partial). I tried just using the 
following line:

<% form.textfield name, nil, :class => 'text-field form-control' %>

But this leads to the attached being displayed instead of a text box! Might you 
be able to advise on how you were able to configure String parameter entry? 
It's not part of this plugin as far as I can see.

Many thanks,
Nick


From: archivesspace_users_group-boun...@lyralists.lyrasis.org 
 on behalf of Mayo, 
Dave 
Sent: 02 October 2020 17:07
To: Archivesspace Users Group 
Subject: Re: [Archivesspace_Users_Group] Custom reports with string params?


Hi,

We have a plugin we wrote with some custom SQL reports – this one uses a string 
parameter for an EADID or list of EADIDs - 
https://github.com/harvard-library/harvard_aspace_reports/blob/master/backend/model/resource_top_containers.rb<https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_harvard-2Dlibrary_harvard-5Faspace-5Freports_blob_master_backend_model_resource-5Ftop-5Fcontainers.rb=DwMF-g=WO-RGvefibhHBZq3fL85hQ=_Mv1dY22K7jvT5MD7xjbvGVzRDOUMhx4WYcnPSIzYnE=vxglUw8t_VtzdmI4EgmrlZKgEhbH4HWb62nSSw8qxSg=_4X19v5v8vsd2PaH5kstXhBz--LcfhRVWxmxhDgeTxk=>

This is currently installed in production and working; it should be fine to 
install it and test locally or on a QA system, if you want to try it out in a 
live system.



--

Dave Mayo (he/him)

Senior Digital Library Software Engineer
Harvard University > HUIT > LTS



From:  on behalf of 
Karen Miller 
Reply-To: Archivesspace Users Group 

Date: Friday, October 2, 2020 at 9:42 AM
To: Archivesspace Users Group 
Subject: Re: [Archivesspace_Users_Group] Custom reports with string params?



Hi Nick,



I have an SQL query that I’ve embedded into an Excel spreadsheet (as a .odc 
file) which prompts the user for a value. The value I’m prompting for is 
numeric, but the code could be adjusted to take a string. I don’t think this is 
what you want, but if it is, please let me know and I’ll forward the code.



Karen



From: archivesspace_users_group-boun...@lyralists.lyrasis.org 
 On Behalf Of Nick 
Butler
Sent: Friday, October 02, 2020 6:14 AM
To: Archivesspace Users Group 
Subject: [Archivesspace_Users_Group] Custom reports with string params?



Hi all,



We've been asked to create a custom report that allows the user running it to 
input a string which is then used to search across various fields. I've checked 
through the pre-existing reports, and through several reports created by other 
institutions, but I haven't found an example of a report accepting a string 
parameter (only booleans and dates). I see from e.g. 
https://github.com/archivesspace/archivesspace/blob/75000415aa5ee60411c6caf012042af4fc157d00/frontend/app/views/jobs/_form.html.erb#L121<https://urldefense.com/v3/__https:/github.com/archivesspace/archivesspace/blob/75000415aa5ee60411c6caf012042af4fc157d00/frontend/app/views/jobs/_form.html.erb*L121__;Iw!!Dq0X2DkFhyF93HkjWTBQKhk!GX75QheNm0-XxIApINdOyeac54bS2ZjNyPlm_nxqTYFfTBABH9vDI0OxgolnoLIKYgcArjCl$>
 that it should be possible to use a custom partial for different data types 
but nothing I've tried has worked so far. Is anyone doing anything like this, 
and might they have an example of it working?



Many thanks!

Nick
___
Archivesspace_Users_Group mailing list
Archivesspace_Users_Group@lyralists.lyrasis.org
http://lyralists.lyrasis.org/mailman/listinfo/archivesspace_users_group


Re: [Archivesspace_Users_Group] API

2020-08-06 Thread Mayo, Dave
It is not – the API is fundamentally required for the application to function 
at all, so it’s more or less always going to be running if any component is 
running.

On a separate note, many installations don’t necessarily _expose_ it; the API 
by default is run so that it’s only accessible to other things on the same 
computer (technically speaking, served on a port that’s not exposed externally)

--
Dave Mayo (he/him)
Senior Digital Library Software Engineer
Harvard University > HUIT > LTS

From:  on behalf of 
"Wisner, Melanie" 
Reply-To: Archivesspace Users Group 

Date: Thursday, August 6, 2020 at 2:17 PM
To: Archivesspace Users Group 
Subject: [Archivesspace_Users_Group] API

Do you all know if the API is governed by an on/off switch in ASpace, like the 
PUI (and by default set one way or the other), or has to be created?
Thanks!
Melanie


Melanie Wisner (she / her / hers)

Accessioning Archivist
Houghton Library
Harvard University

617-384-7373 | mmwis...@fas.harvard.edu

Building an Accessible Future | Houghton Library 
Renovation


___
Archivesspace_Users_Group mailing list
Archivesspace_Users_Group@lyralists.lyrasis.org
http://lyralists.lyrasis.org/mailman/listinfo/archivesspace_users_group


Re: [Archivesspace_Users_Group] Top container ranges

2020-06-18 Thread Mayo, Dave
The two options I see here are essentially:

1. Change the EAD
2. Change the containers after they’re ingested.

Of the two, changing the EAD seems _easier_ to me; if you wouldn’t mind going 
more into why that’s not a viable solution for you, it might help us provide 
better advice?

Either way, at 7000 finding aids, the solution would basically need to be 
automated – if your box ranges are very regular (i.e. only single number or 
range, no “3,4,7-10” or similar), it wouldn’t be too difficult – split the 
range on ‘-‘, generate list of numbers, replace container with multiple 
containers.

--
Dave Mayo (he/him)
Senior Digital Library Software Engineer
Harvard University > HUIT > LTS

From:  on behalf of 
"Lucas, Dawne Howard" 
Reply-To: Archivesspace Users Group 

Date: Thursday, June 18, 2020 at 8:13 AM
To: Archivesspace Users Group 
Subject: [Archivesspace_Users_Group] Top container ranges


Hi all,



We are formulating a plan to import our 7000+ EAD finding aids into 
ArchivesSpace and are wondering how other institutions have handled top 
container ranges.



For example, we have finding aids coded like this:



3-4Photographs



This imports into ASpace just fine (yay!), but of course also creates a top 
container for Box 3-4 instead of Box 3 and Box 4 (boo!). We assume this will be 
an issue later when we integrate with Aeon.



The most obvious solution to this problem appears to be to change the encoding 
to:



3Photographs



4 
Photographs



For several reasons, this is not a viable solution for us. Have other 
institutions figured out a way to deal with this issue that does not include 
editing the EAD in individual finding aids?

Thanks for your help,

Dawne

--
Dawne Howard Lucas (she/her/hers)
Technical Services Archivist

Wilson Special Collections Library
200 South Road, CB #3926
Chapel Hill, NC 27515
The University of North Carolina at Chapel Hill
P  919-966-1776   E  dawne_lu...@unc.edu

[cid:image001.png@01D5F200.0D957C80]


___
Archivesspace_Users_Group mailing list
Archivesspace_Users_Group@lyralists.lyrasis.org
http://lyralists.lyrasis.org/mailman/listinfo/archivesspace_users_group


Re: [Archivesspace_Users_Group] Top container ranges

2020-06-18 Thread Mayo, Dave
So, with the caveat that we put a lot of resources (a bunch of archivists’ 
time, a full year of a full time developer (me!)), we had very solid results; I 
think remediating issues prior to import is almost always worth the expense of 
significant effort, particularly over a large corpus.

My main advice would be to be very, very careful about changes – version your 
EADs, compare before and after scripts run, and in general be very systematic 
about how you find, report, and correct changes.

I don’t know if you’ve seen it, but Kate Bowers and I did a write-up of what we 
did during our migration – it has links to a number of open source tools I 
wrote for doing this kind of work.  They’re a bit involved to get running, but 
they definitely work at basically any scale out there, and I’m happy to help 
people get started with them.  https://journal.code4lib.org/articles/12239

--
Dave Mayo (he/him)
Senior Digital Library Software Engineer
Harvard University > HUIT > LTS

From:  on behalf of 
"Lucas, Dawne Howard" 
Reply-To: Archivesspace Users Group 

Date: Thursday, June 18, 2020 at 9:12 AM
To: Archivesspace Users Group 
Subject: Re: [Archivesspace_Users_Group] Top container ranges

Thanks, Dave.  I guess I should have specified that changing the EAD isn’t a 
viable solution for us unless it’s automated. We do not plan to edit individual 
finding aids manually except in cases where the ranges aren’t regular.

If you’ve done this at Harvard, have there been any drawbacks? Anything we 
should be looking to avoid?

Thanks again,

Dawne


From: Mayo, Dave<mailto:dave_m...@harvard.edu>
Sent: Thursday, June 18, 2020 9:04 AM
To: Archivesspace Users 
Group<mailto:archivesspace_users_group@lyralists.lyrasis.org>
Subject: Re: [Archivesspace_Users_Group] Top container ranges

The two options I see here are essentially:

1. Change the EAD
2. Change the containers after they’re ingested.

Of the two, changing the EAD seems _easier_ to me; if you wouldn’t mind going 
more into why that’s not a viable solution for you, it might help us provide 
better advice?

Either way, at 7000 finding aids, the solution would basically need to be 
automated – if your box ranges are very regular (i.e. only single number or 
range, no “3,4,7-10” or similar), it wouldn’t be too difficult – split the 
range on ‘-‘, generate list of numbers, replace container with multiple 
containers.
--
Dave Mayo (he/him)
Senior Digital Library Software Engineer
Harvard University > HUIT > LTS

From:  on behalf of 
"Lucas, Dawne Howard" 
Reply-To: Archivesspace Users Group 

Date: Thursday, June 18, 2020 at 8:13 AM
To: Archivesspace Users Group 
Subject: [Archivesspace_Users_Group] Top container ranges


Hi all,



We are formulating a plan to import our 7000+ EAD finding aids into 
ArchivesSpace and are wondering how other institutions have handled top 
container ranges.



For example, we have finding aids coded like this:



3-4Photographs



This imports into ASpace just fine (yay!), but of course also creates a top 
container for Box 3-4 instead of Box 3 and Box 4 (boo!). We assume this will be 
an issue later when we integrate with Aeon.



The most obvious solution to this problem appears to be to change the encoding 
to:



3Photographs



4 
Photographs



For several reasons, this is not a viable solution for us. Have other 
institutions figured out a way to deal with this issue that does not include 
editing the EAD in individual finding aids?

Thanks for your help,

Dawne

--
Dawne Howard Lucas (she/her/hers)
Technical Services Archivist

Wilson Special Collections Library
200 South Road, CB #3926
Chapel Hill, NC 27515
The University of North Carolina at Chapel Hill
P  919-966-1776   E  dawne_lu...@unc.edu<mailto:dawne_lu...@unc.edu>

[cid:image001.png@01D5F200.0D957C80]<https://urldefense.proofpoint.com/v2/url?u=https-3A__library.unc.edu_wilson_=DwMFAg=WO-RGvefibhHBZq3fL85hQ=_Mv1dY22K7jvT5MD7xjbvGVzRDOUMhx4WYcnPSIzYnE=tkJE1JdGvSoNb5i6NSRbF3z1n28dGeVJ4ogcFmpTpQo=e9r4LIAN87oWg7LLTrzui9bCYcCMX-8twYfh3y0I8tY=>



___
Archivesspace_Users_Group mailing list
Archivesspace_Users_Group@lyralists.lyrasis.org
http://lyralists.lyrasis.org/mailman/listinfo/archivesspace_users_group


Re: [Archivesspace_Users_Group] Top container ranges

2020-06-18 Thread Mayo, Dave
Also, specifically:


  1.  Using an XML database like eXist-db or BaseX with XPath/XQuery was 
invaluable when doing analysis of issues and of the impact of changes
  2.  One of the tools I wrote, the EAD Checker, is available online: 
https://eadchecker.lib.harvard.edu – it doesn’t catch this specific issue, but 
it does catch a bunch of issues, some of which cause corrupted data rather than 
failure to import.

--
Dave Mayo (he/him)
Senior Digital Library Software Engineer
Harvard University > HUIT > LTS

From:  on behalf of 
"Mayo, Dave" 
Reply-To: Archivesspace Users Group 

Date: Thursday, June 18, 2020 at 9:23 AM
To: Archivesspace Users Group 
Subject: Re: [Archivesspace_Users_Group] Top container ranges

So, with the caveat that we put a lot of resources (a bunch of archivists’ 
time, a full year of a full time developer (me!)), we had very solid results; I 
think remediating issues prior to import is almost always worth the expense of 
significant effort, particularly over a large corpus.

My main advice would be to be very, very careful about changes – version your 
EADs, compare before and after scripts run, and in general be very systematic 
about how you find, report, and correct changes.

I don’t know if you’ve seen it, but Kate Bowers and I did a write-up of what we 
did during our migration – it has links to a number of open source tools I 
wrote for doing this kind of work.  They’re a bit involved to get running, but 
they definitely work at basically any scale out there, and I’m happy to help 
people get started with them.  
https://journal.code4lib.org/articles/12239<https://urldefense.proofpoint.com/v2/url?u=https-3A__journal.code4lib.org_articles_12239=DwMGaQ=WO-RGvefibhHBZq3fL85hQ=_Mv1dY22K7jvT5MD7xjbvGVzRDOUMhx4WYcnPSIzYnE=MDvEtnIJJpOOfJzfDMsXF5u8QJ22oJqGB1UWDHD9Gmc=0ky2pQ2HoOxy34kpHGjThpBcFVj1ERUBf7LwbRZMMP4=>

--
Dave Mayo (he/him)
Senior Digital Library Software Engineer
Harvard University > HUIT > LTS

From:  on behalf of 
"Lucas, Dawne Howard" 
Reply-To: Archivesspace Users Group 

Date: Thursday, June 18, 2020 at 9:12 AM
To: Archivesspace Users Group 
Subject: Re: [Archivesspace_Users_Group] Top container ranges

Thanks, Dave.  I guess I should have specified that changing the EAD isn’t a 
viable solution for us unless it’s automated. We do not plan to edit individual 
finding aids manually except in cases where the ranges aren’t regular.

If you’ve done this at Harvard, have there been any drawbacks? Anything we 
should be looking to avoid?

Thanks again,

Dawne


From: Mayo, Dave<mailto:dave_m...@harvard.edu>
Sent: Thursday, June 18, 2020 9:04 AM
To: Archivesspace Users 
Group<mailto:archivesspace_users_group@lyralists.lyrasis.org>
Subject: Re: [Archivesspace_Users_Group] Top container ranges

The two options I see here are essentially:

1. Change the EAD
2. Change the containers after they’re ingested.

Of the two, changing the EAD seems _easier_ to me; if you wouldn’t mind going 
more into why that’s not a viable solution for you, it might help us provide 
better advice?

Either way, at 7000 finding aids, the solution would basically need to be 
automated – if your box ranges are very regular (i.e. only single number or 
range, no “3,4,7-10” or similar), it wouldn’t be too difficult – split the 
range on ‘-‘, generate list of numbers, replace container with multiple 
containers.
--
Dave Mayo (he/him)
Senior Digital Library Software Engineer
Harvard University > HUIT > LTS

From:  on behalf of 
"Lucas, Dawne Howard" 
Reply-To: Archivesspace Users Group 

Date: Thursday, June 18, 2020 at 8:13 AM
To: Archivesspace Users Group 
Subject: [Archivesspace_Users_Group] Top container ranges


Hi all,



We are formulating a plan to import our 7000+ EAD finding aids into 
ArchivesSpace and are wondering how other institutions have handled top 
container ranges.



For example, we have finding aids coded like this:



3-4Photographs



This imports into ASpace just fine (yay!), but of course also creates a top 
container for Box 3-4 instead of Box 3 and Box 4 (boo!). We assume this will be 
an issue later when we integrate with Aeon.



The most obvious solution to this problem appears to be to change the encoding 
to:



3Photographs



4 
Photographs



For several reasons, this is not a viable solution for us. Have other 
institutions figured out a way to deal with this issue that does not include 
editing the EAD in individual finding aids?

Thanks for your help,

Dawne

--
Dawne Howard Lucas (she/her/hers)
Technical Services Archivist

Wilson Special Collections Library
200 South Road, CB #3926
Chapel Hill, NC 27515
The University of North Carolina at Chapel Hill
P  919-966-1776   E  dawne_lu...@unc.edu<mailto:dawne_lu...@unc.edu>

[cid:image001.png@01D5F200.0D957C80]<https://urldefense.proofpoint.com/v2/url?u=https-3A__library.unc.edu_wilson_=DwMFAg=WO-RGvefibhHBZq3fL85hQ=_Mv1dY22K7jv

Re: [Archivesspace_Users_Group] Separating Solr index to separate server?

2021-02-04 Thread Mayo, Dave
We definitely do, and it's definitely been useful performance-wise. We also are 
able to use a newer Solr revision this way.  Additionally, Solr needs a lot of 
empty disk to be performant, and it's easier to manage that when it's running 
on its own server.

Get Outlook for Android


From: archivesspace_users_group-boun...@lyralists.lyrasis.org 
 on behalf of 
Galligan, Patrick 
Sent: Thursday, February 4, 2021 10:49:45 AM
To: Archivesspace Users Group 
Subject: [Archivesspace_Users_Group] Separating Solr index to separate server?


Hey all,



We’re considering separating our Solr Index to a separate server for space and 
performance issues. Does anyone run AS and the index on separate servers, and 
if so, have you seen substantial AS performance increases from doing so? We’ve 
found that sometimes our installation slows down after running for a couple of 
months on the same server as the index.



Patrick Galligan

Digital Archivist

Rockefeller Archive Center
___
Archivesspace_Users_Group mailing list
Archivesspace_Users_Group@lyralists.lyrasis.org
http://lyralists.lyrasis.org/mailman/listinfo/archivesspace_users_group


Re: [Archivesspace_Users_Group] PUI indexing issues

2021-03-18 Thread Mayo, Dave
This is a little bit of a shot in the dark, but have you looked at disk space 
on whatever host Solr is resident on? (the ASpace server if you’re not running 
an external one)?

A thing we’ve hit a couple times is that Solr, at least in some configurations, 
needs substantial headroom on disk to perform well – I think it’s related to 
how it builds and maintains the index?  So it might be worth looking to see if 
Solr is filling up the disk enough that it can’t efficiently handle itself.

--
Dave Mayo (he/him)
Senior Digital Library Software Engineer
Harvard University > HUIT > LTS

From:  on behalf of 
Tom Hanstra 
Reply-To: Archivesspace Users Group 

Date: Wednesday, March 17, 2021 at 11:43 AM
To: Archivesspace Users Group 
Subject: Re: [Archivesspace_Users_Group] PUI indexing issues



- What really bothers me is the slowdown. That indicates to me that some 
resource is being lost along the way. Anyone have thoughts on what that might 
be?


Just to follow up on my earlier post, I did get even lower numbers from Blake 
to try based upon what he used for our hosted account. But I'm seeing the same 
pattern in terms of slowdowns regarding the number of records that get 
processed/hour. Is this typical?  Is it just hitting records that have more 
work to be done? Or do I still have a resource issue.

I note that the number of docs in Solr has not changed at all throughout the 
last couple of attempts, which again leads me to believe it has already handled 
these records (at least once) before and thus there is no more indexing to 
really be done with the records which it is running through the PUI indexer 
again. Which leads back to the "why does PUI indexing restart each time from 0" 
question. How does one add an enhancement request to have this reviewed and 
(perhaps) changed?

Thanks,
Tom

--
Tom Hanstra
Sr. Systems Administrator
hans...@nd.edu

[https://docs.google.com/uc?export=download=1GFX1KaaMTtQ2Kg2u8bMXt1YwBp96bvf0=0B7APN9POn6xAQ244WWFYMFU3aVJwZ0lxbmVHK3FxNXlCd0RRPQ]
___
Archivesspace_Users_Group mailing list
Archivesspace_Users_Group@lyralists.lyrasis.org
http://lyralists.lyrasis.org/mailman/listinfo/archivesspace_users_group


Re: [Archivesspace_Users_Group] Missing Japanese charactires in a PUI generated PDF

2022-09-14 Thread Mayo, Dave
Hi!

This is something we’ve recently had to deal with – I’m not 100% sure from what 
you’ve posted that it’s the same issue we had, but there are a few issues with 
the PUI’s current PDF generation support that make font handling challenging.

So, first of all – if you’re setting up a fallback hierarchy and the font with 
Japanese characters isn’t in the first position, the PDF generation library 
isn’t seeing it at all.  The flying saucer ipdf library doesn’t support font 
fallback, which is a real problem if you need to support multiple languages.

So, first thing I’d try is making sure that the text in question is _solely_ 
the font supporting Japanese.  If the Japanese characters render, that’ll at 
least verify that that’s the reason.

Our solution, which I’m hoping to work up and submit as a pull request, was to 
replace the existing library with https://github.com/danfickle/openhtmltopdf - 
a project based on flying saucer but with several enhancements.  Implementing 
it is somewhat complex:

1. Openhtmltopdf and _all dependencies thereof_ need to be provided by putting 
them in the archivesspace/lib directory (the directory the MySQL connector goes 
in during install)

Currently we’re doing this in our dockerfile via:

wget -P /archivesspace/lib 
https://repo1.maven.org/maven2/com/google/zxing/core/3.5.0/core-3.5.0.jar && \

wget -P /archivesspace/lib 
https://repo1.maven.org/maven2/junit/junit/4.13.2/junit-4.13.2.jar && \

wget -P /archivesspace/lib 
https://repo1.maven.org/maven2/com/openhtmltopdf/openhtmltopdf-core/1.0.10/openhtmltopdf-core-1.0.10.jar
 && \

wget -P /archivesspace/lib 
https://repo1.maven.org/maven2/com/openhtmltopdf/openhtmltopdf-pdfbox/1.0.10/openhtmltopdf-pdfbox-1.0.10.jar
 && \

wget -P /archivesspace/lib 
https://repo1.maven.org/maven2/de/rototor/pdfbox/graphics2d/0.34/graphics2d-0.34.jar
 && \

wget -P /archivesspace/lib 
https://repo1.maven.org/maven2/org/apache/pdfbox/pdfbox/2.0.26/pdfbox-2.0.26.jar
 && \

wget -P /archivesspace/lib 
https://repo1.maven.org/maven2/org/apache/pdfbox/xmpbox/2.0.26/xmpbox-2.0.26.jar
 && \

wget -P /archivesspace/lib 
https://repo1.maven.org/maven2/org/apache/pdfbox/fontbox/2.0.26/fontbox-2.0.26.jar
 && \

wget -P /archivesspace/lib 
https://repo1.maven.org/maven2/org/jfree/jfreechart/1.5.3/jfreechart-1.5.3.jar 
&& \

wget -P /archivesspace/lib 
https://repo1.maven.org/maven2/org/freemarker/freemarker/2.3.27-incubating/freemarker-2.3.27-incubating.jar
 && \

wget -P /archivesspace/lib 
https://repo1.maven.org/maven2/org/apache/servicemix/bundles/org.apache.servicemix.bundles.rhino/1.7.10_1/org.apache.servicemix.bundles.rhino-1.7.10_1-sources.jar
 && \

wget -P /archivesspace/lib 
https://repo1.maven.org/maven2/org/openjdk/jmh/jmh-core/1.29/jmh-core-1.29.jar 
&& \

wget -P /archivesspace/lib 
https://repo1.maven.org/maven2/org/codelibs/jhighlight/1.1.0/jhighlight-1.1.0.jar
 && \

wget -P /archivesspace/lib 
https://repo1.maven.org/maven2/org/thymeleaf/extras/thymeleaf-extras-java8time/3.0.4.RELEASE/thymeleaf-extras-java8time-3.0.4.RELEASE.jar
 && \

wget -P /archivesspace/lib 
https://repo1.maven.org/maven2/org/thymeleaf/thymeleaf/3.1.0.M2/thymeleaf-3.1.0.M2.jar
 && \

wget -P /archivesspace/lib 
https://repo1.maven.org/maven2/org/yaml/snakeyaml/1.26/snakeyaml-1.26.jar && \

wget -P /archivesspace/lib 
https://repo1.maven.org/maven2/com/ibm/icu/icu4j/59.1/icu4j-59.1.jar && \

wget -P /archivesspace/lib 
https://repo1.maven.org/maven2/org/apache/xmlgraphics/batik-codec/1.14/batik-codec-1.14.jar
 && \

wget -P /archivesspace/lib 
https://repo1.maven.org/maven2/org/apache/xmlgraphics/batik-ext/1.14/batik-ext-1.14.jar
 && \

wget -P /archivesspace/lib 
https://repo1.maven.org/maven2/org/apache/xmlgraphics/batik-transcoder/1.14/batik-transcoder-1.14.jar
 && \

wget -P /archivesspace/lib 
https://repo1.maven.org/maven2/org/apache/xmlgraphics/xmlgraphics-commons/2.7/xmlgraphics-commons-2.7.jar
 && \

wget -P /archivesspace/lib 
https://repo1.maven.org/maven2/org/verapdf/validation-model/1.18.8/validation-model-1.18.8.jar
 && \

wget -P /archivesspace/lib 
https://repo1.maven.org/maven2/de/rototor/snuggletex/snuggletex-core/1.3.0/snuggletex-core-1.3.0.jar
 && \
wget -P /archivesspace/lib 
https://repo1.maven.org/maven2/net/sourceforge/jeuclid/jeuclid-core/3.1.9/jeuclid-core-3.1.9.jar
 && \

2. Then, the code that generates the PDFs needs to be overridden with code 
based on the new library. We do this in our PUI customization plugin here:

https://github.com/harvard-library/aspace-hvd-pui/blob/bd4b1c3cf728674cc3445dee39a16282848c2cca/public/models/hvd_pdf.rb#L152

We were already overriding PDF generation, the model in core ArchivesSpace is 
located here:

https://github.com/archivesspace/archivesspace/blob/ceeb72d1796a8b67104814065ffea23215403f78/public/app/models/finding_aid_pdf.rb#L94

I believe my co-worker Doug still couldn’t get a web font to work ever really – 
we ended up using the Kurinto fonts (and some others) provided with