diff --git a/vault/build.gradle b/vault/build.gradle
index 7fd06925..6a637f96 100644
--- a/vault/build.gradle
+++ b/vault/build.gradle
@@ -35,7 +35,7 @@ dependencies {
compile 'org.opencadc:cadc-gms:[1.0.5,)'
compile 'org.opencadc:cadc-rest:[1.3.16,)'
compile 'org.opencadc:cadc-vos:[2.0,)'
- compile 'org.opencadc:cadc-vos-server-alt:[2.0,)'
+ compile 'org.opencadc:cadc-vos-server:[2.0.3,)'
compile 'org.opencadc:cadc-vosi:[1.3.2,)'
compile 'org.opencadc:cadc-uws:[1.0,)'
compile 'org.opencadc:cadc-uws-server:[1.2.19,)'
@@ -51,7 +51,7 @@ dependencies {
runtime 'org.opencadc:cadc-gms:[1.0.5,)'
intTestCompile 'org.opencadc:cadc-test-vosi:[1.0.11,)'
- intTestCompile 'org.opencadc:cadc-test-vos:[2.0,3.0)'
+ intTestCompile 'org.opencadc:cadc-test-vos:[2.1,)'
}
configurations {
diff --git a/vault/src/intTest/java/org/opencadc/vault/RecursiveNodeDeleteTest.java b/vault/src/intTest/java/org/opencadc/vault/RecursiveNodeDeleteTest.java
new file mode 100644
index 00000000..e66d0ed0
--- /dev/null
+++ b/vault/src/intTest/java/org/opencadc/vault/RecursiveNodeDeleteTest.java
@@ -0,0 +1,104 @@
+/*
+************************************************************************
+******************* CANADIAN ASTRONOMY DATA CENTRE *******************
+************** CENTRE CANADIEN DE DONNÉES ASTRONOMIQUES **************
+*
+* (c) 2023. (c) 2023.
+* Government of Canada Gouvernement du Canada
+* National Research Council Conseil national de recherches
+* Ottawa, Canada, K1A 0R6 Ottawa, Canada, K1A 0R6
+* All rights reserved Tous droits réservés
+*
+* NRC disclaims any warranties, Le CNRC dénie toute garantie
+* expressed, implied, or énoncée, implicite ou légale,
+* statutory, of any kind with de quelque nature que ce
+* respect to the software, soit, concernant le logiciel,
+* including without limitation y compris sans restriction
+* any warranty of merchantability toute garantie de valeur
+* or fitness for a particular marchande ou de pertinence
+* purpose. NRC shall not be pour un usage particulier.
+* liable in any event for any Le CNRC ne pourra en aucun cas
+* damages, whether direct or être tenu responsable de tout
+* indirect, special or general, dommage, direct ou indirect,
+* consequential or incidental, particulier ou général,
+* arising from the use of the accessoire ou fortuit, résultant
+* software. Neither the name de l'utilisation du logiciel. Ni
+* of the National Research le nom du Conseil National de
+* Council of Canada nor the Recherches du Canada ni les noms
+* names of its contributors may de ses participants ne peuvent
+* be used to endorse or promote être utilisés pour approuver ou
+* products derived from this promouvoir les produits dérivés
+* software without specific prior de ce logiciel sans autorisation
+* written permission. préalable et particulière
+* par écrit.
+*
+* This file is part of the Ce fichier fait partie du projet
+* OpenCADC project. OpenCADC.
+*
+* OpenCADC is free software: OpenCADC est un logiciel libre ;
+* you can redistribute it and/or vous pouvez le redistribuer ou le
+* modify it under the terms of modifier suivant les termes de
+* the GNU Affero General Public la “GNU Affero General Public
+* License as published by the License” telle que publiée
+* Free Software Foundation, par la Free Software Foundation
+* either version 3 of the : soit la version 3 de cette
+* License, or (at your option) licence, soit (à votre gré)
+* any later version. toute version ultérieure.
+*
+* OpenCADC is distributed in the OpenCADC est distribué
+* hope that it will be useful, dans l’espoir qu’il vous
+* but WITHOUT ANY WARRANTY; sera utile, mais SANS AUCUNE
+* without even the implied GARANTIE : sans même la garantie
+* warranty of MERCHANTABILITY implicite de COMMERCIALISABILITÉ
+* or FITNESS FOR A PARTICULAR ni d’ADÉQUATION À UN OBJECTIF
+* PURPOSE. See the GNU Affero PARTICULIER. Consultez la Licence
+* General Public License for Générale Publique GNU Affero
+* more details. pour plus de détails.
+*
+* You should have received Vous devriez avoir reçu une
+* a copy of the GNU Affero copie de la Licence Générale
+* General Public License along Publique GNU Affero avec
+* with OpenCADC. If not, see OpenCADC ; si ce n’est
+* . pas le cas, consultez :
+* .
+*
+************************************************************************
+*/
+
+package org.opencadc.vault;
+
+import ca.nrc.cadc.util.FileUtil;
+import ca.nrc.cadc.util.Log4jInit;
+import java.io.File;
+import java.net.URI;
+import org.apache.log4j.Level;
+import org.apache.log4j.Logger;
+import org.opencadc.gms.GroupURI;
+
+/**
+ * Test the async endpoint.
+ *
+ * @author pdowler
+ */
+public class RecursiveNodeDeleteTest extends org.opencadc.conformance.vos.RecursiveNodeDeleteTest {
+ private static final Logger log = Logger.getLogger(RecursiveNodeDeleteTest.class);
+
+ static {
+ Log4jInit.setLevel("org.opencadc.conformance.vos", Level.DEBUG);
+ Log4jInit.setLevel("org.opencadc.vospace", Level.INFO);
+ //Log4jInit.setLevel("ca.nrc.cadc.auth", Level.DEBUG);
+ }
+
+ private static File ADMIN_CERT = FileUtil.getFileFromResource("vault-test.pem", RecursiveNodeDeleteTest.class);
+
+ public RecursiveNodeDeleteTest() {
+ super(URI.create("ivo://opencadc.org/vault"), ADMIN_CERT);
+
+ File altCert = FileUtil.getFileFromResource("vault-auth-test.pem", RecursiveNodeDeleteTest.class);
+ enablePermissionTests(new GroupURI(URI.create("ivo://cadc.nrc.ca/gms?opencadc-vospace-test")), altCert);
+
+ // vault does not check the actual groups in the permission props tests, hence they can be made up.
+ enablePermissionPropsTest(new GroupURI(URI.create("ivo://myauth/gms?gr1")), new GroupURI(URI.create("ivo://myauth/gms?gr2")));
+ }
+
+}
diff --git a/vault/src/intTest/java/org/opencadc/vault/RecursiveNodePropsTest.java b/vault/src/intTest/java/org/opencadc/vault/RecursiveNodePropsTest.java
new file mode 100644
index 00000000..67e62e80
--- /dev/null
+++ b/vault/src/intTest/java/org/opencadc/vault/RecursiveNodePropsTest.java
@@ -0,0 +1,104 @@
+/*
+************************************************************************
+******************* CANADIAN ASTRONOMY DATA CENTRE *******************
+************** CENTRE CANADIEN DE DONNÉES ASTRONOMIQUES **************
+*
+* (c) 2023. (c) 2023.
+* Government of Canada Gouvernement du Canada
+* National Research Council Conseil national de recherches
+* Ottawa, Canada, K1A 0R6 Ottawa, Canada, K1A 0R6
+* All rights reserved Tous droits réservés
+*
+* NRC disclaims any warranties, Le CNRC dénie toute garantie
+* expressed, implied, or énoncée, implicite ou légale,
+* statutory, of any kind with de quelque nature que ce
+* respect to the software, soit, concernant le logiciel,
+* including without limitation y compris sans restriction
+* any warranty of merchantability toute garantie de valeur
+* or fitness for a particular marchande ou de pertinence
+* purpose. NRC shall not be pour un usage particulier.
+* liable in any event for any Le CNRC ne pourra en aucun cas
+* damages, whether direct or être tenu responsable de tout
+* indirect, special or general, dommage, direct ou indirect,
+* consequential or incidental, particulier ou général,
+* arising from the use of the accessoire ou fortuit, résultant
+* software. Neither the name de l'utilisation du logiciel. Ni
+* of the National Research le nom du Conseil National de
+* Council of Canada nor the Recherches du Canada ni les noms
+* names of its contributors may de ses participants ne peuvent
+* be used to endorse or promote être utilisés pour approuver ou
+* products derived from this promouvoir les produits dérivés
+* software without specific prior de ce logiciel sans autorisation
+* written permission. préalable et particulière
+* par écrit.
+*
+* This file is part of the Ce fichier fait partie du projet
+* OpenCADC project. OpenCADC.
+*
+* OpenCADC is free software: OpenCADC est un logiciel libre ;
+* you can redistribute it and/or vous pouvez le redistribuer ou le
+* modify it under the terms of modifier suivant les termes de
+* the GNU Affero General Public la “GNU Affero General Public
+* License as published by the License” telle que publiée
+* Free Software Foundation, par la Free Software Foundation
+* either version 3 of the : soit la version 3 de cette
+* License, or (at your option) licence, soit (à votre gré)
+* any later version. toute version ultérieure.
+*
+* OpenCADC is distributed in the OpenCADC est distribué
+* hope that it will be useful, dans l’espoir qu’il vous
+* but WITHOUT ANY WARRANTY; sera utile, mais SANS AUCUNE
+* without even the implied GARANTIE : sans même la garantie
+* warranty of MERCHANTABILITY implicite de COMMERCIALISABILITÉ
+* or FITNESS FOR A PARTICULAR ni d’ADÉQUATION À UN OBJECTIF
+* PURPOSE. See the GNU Affero PARTICULIER. Consultez la Licence
+* General Public License for Générale Publique GNU Affero
+* more details. pour plus de détails.
+*
+* You should have received Vous devriez avoir reçu une
+* a copy of the GNU Affero copie de la Licence Générale
+* General Public License along Publique GNU Affero avec
+* with OpenCADC. If not, see OpenCADC ; si ce n’est
+* . pas le cas, consultez :
+* .
+*
+************************************************************************
+*/
+
+package org.opencadc.vault;
+
+import ca.nrc.cadc.util.FileUtil;
+import ca.nrc.cadc.util.Log4jInit;
+import java.io.File;
+import java.net.URI;
+import org.apache.log4j.Level;
+import org.apache.log4j.Logger;
+import org.opencadc.gms.GroupURI;
+
+/**
+ * Test the async endpoint.
+ *
+ * @author pdowler
+ */
+public class RecursiveNodePropsTest extends org.opencadc.conformance.vos.RecursiveNodePropsTest {
+ private static final Logger log = Logger.getLogger(RecursiveNodePropsTest.class);
+
+ static {
+ Log4jInit.setLevel("org.opencadc.conformance.vos", Level.DEBUG);
+ Log4jInit.setLevel("org.opencadc.vospace", Level.INFO);
+ //Log4jInit.setLevel("ca.nrc.cadc.auth", Level.DEBUG);
+ }
+
+ private static File ADMIN_CERT = FileUtil.getFileFromResource("vault-test.pem", RecursiveNodePropsTest.class);
+
+ public RecursiveNodePropsTest() {
+ super(URI.create("ivo://opencadc.org/vault"), ADMIN_CERT);
+
+ File altCert = FileUtil.getFileFromResource("vault-auth-test.pem", RecursiveNodePropsTest.class);
+ enablePermissionTests(new GroupURI(URI.create("ivo://cadc.nrc.ca/gms?opencadc-vospace-test")), altCert);
+
+ // vault does not check the actual groups in the permission props tests, hence they can be made up.
+ enablePermissionPropsTest(new GroupURI(URI.create("ivo://myauth/gms?gr1")), new GroupURI(URI.create("ivo://myauth/gms?gr2")));
+ }
+
+}
diff --git a/vault/src/main/java/org/opencadc/vault/RecursiveDeleteNodeJobManager.java b/vault/src/main/java/org/opencadc/vault/RecursiveDeleteNodeJobManager.java
index b438dbea..87619dd2 100644
--- a/vault/src/main/java/org/opencadc/vault/RecursiveDeleteNodeJobManager.java
+++ b/vault/src/main/java/org/opencadc/vault/RecursiveDeleteNodeJobManager.java
@@ -69,13 +69,10 @@
package org.opencadc.vault;
-import ca.nrc.cadc.auth.AuthenticationUtil;
import ca.nrc.cadc.uws.server.JobExecutor;
import ca.nrc.cadc.uws.server.JobPersistence;
import ca.nrc.cadc.uws.server.JobUpdater;
-import ca.nrc.cadc.uws.server.SimpleJobManager;
import ca.nrc.cadc.uws.server.ThreadPoolExecutor;
-import ca.nrc.cadc.uws.server.impl.PostgresJobPersistence;
import org.apache.log4j.Logger;
import org.opencadc.vospace.server.async.RecursiveDeleteNodeRunner;
@@ -83,24 +80,17 @@
*
* @author pdowler, majorb, yeunga, adriand
*/
-public class RecursiveDeleteNodeJobManager extends SimpleJobManager {
+public class RecursiveDeleteNodeJobManager extends VaultJobManager {
private static final Logger log = Logger.getLogger(RecursiveDeleteNodeJobManager.class);
private static final Long MAX_EXEC_DURATION = Long.valueOf(12 * 7200L); // 24 hours?
private static final Long MAX_DESTRUCTION = Long.valueOf(7 * 24 * 3600L); // 1 week
private static final Long MAX_QUOTE = Long.valueOf(12 * 7200L); // same as exec
- protected static JobPersistence jp;
-
- static {
- log.info("Creating shared (postgres) job manager");
- jp = new PostgresJobPersistence(AuthenticationUtil.getIdentityManager());
- }
-
public RecursiveDeleteNodeJobManager() {
super();
- // jp is instantiated in parent org.opencadc.cavern.JobManager
- JobUpdater ju = jp;
+ JobPersistence jp = createJobPersistence();
+ JobUpdater ju = (JobUpdater) jp;
super.setJobPersistence(jp);
JobExecutor jobExec = new ThreadPoolExecutor(ju, RecursiveDeleteNodeRunner.class, 3);
diff --git a/vault/src/main/java/org/opencadc/vault/RecursiveNodePropsJobManager.java b/vault/src/main/java/org/opencadc/vault/RecursiveNodePropsJobManager.java
new file mode 100644
index 00000000..6117aa67
--- /dev/null
+++ b/vault/src/main/java/org/opencadc/vault/RecursiveNodePropsJobManager.java
@@ -0,0 +1,103 @@
+/*
+************************************************************************
+******************* CANADIAN ASTRONOMY DATA CENTRE *******************
+************** CENTRE CANADIEN DE DONNÉES ASTRONOMIQUES **************
+*
+* (c) 2023. (c) 2023.
+* Government of Canada Gouvernement du Canada
+* National Research Council Conseil national de recherches
+* Ottawa, Canada, K1A 0R6 Ottawa, Canada, K1A 0R6
+* All rights reserved Tous droits réservés
+*
+* NRC disclaims any warranties, Le CNRC dénie toute garantie
+* expressed, implied, or énoncée, implicite ou légale,
+* statutory, of any kind with de quelque nature que ce
+* respect to the software, soit, concernant le logiciel,
+* including without limitation y compris sans restriction
+* any warranty of merchantability toute garantie de valeur
+* or fitness for a particular marchande ou de pertinence
+* purpose. NRC shall not be pour un usage particulier.
+* liable in any event for any Le CNRC ne pourra en aucun cas
+* damages, whether direct or être tenu responsable de tout
+* indirect, special or general, dommage, direct ou indirect,
+* consequential or incidental, particulier ou général,
+* arising from the use of the accessoire ou fortuit, résultant
+* software. Neither the name de l'utilisation du logiciel. Ni
+* of the National Research le nom du Conseil National de
+* Council of Canada nor the Recherches du Canada ni les noms
+* names of its contributors may de ses participants ne peuvent
+* be used to endorse or promote être utilisés pour approuver ou
+* products derived from this promouvoir les produits dérivés
+* software without specific prior de ce logiciel sans autorisation
+* written permission. préalable et particulière
+* par écrit.
+*
+* This file is part of the Ce fichier fait partie du projet
+* OpenCADC project. OpenCADC.
+*
+* OpenCADC is free software: OpenCADC est un logiciel libre ;
+* you can redistribute it and/or vous pouvez le redistribuer ou le
+* modify it under the terms of modifier suivant les termes de
+* the GNU Affero General Public la “GNU Affero General Public
+* License as published by the License” telle que publiée
+* Free Software Foundation, par la Free Software Foundation
+* either version 3 of the : soit la version 3 de cette
+* License, or (at your option) licence, soit (à votre gré)
+* any later version. toute version ultérieure.
+*
+* OpenCADC is distributed in the OpenCADC est distribué
+* hope that it will be useful, dans l’espoir qu’il vous
+* but WITHOUT ANY WARRANTY; sera utile, mais SANS AUCUNE
+* without even the implied GARANTIE : sans même la garantie
+* warranty of MERCHANTABILITY implicite de COMMERCIALISABILITÉ
+* or FITNESS FOR A PARTICULAR ni d’ADÉQUATION À UN OBJECTIF
+* PURPOSE. See the GNU Affero PARTICULIER. Consultez la Licence
+* General Public License for Générale Publique GNU Affero
+* more details. pour plus de détails.
+*
+* You should have received Vous devriez avoir reçu une
+* a copy of the GNU Affero copie de la Licence Générale
+* General Public License along Publique GNU Affero avec
+* with OpenCADC. If not, see OpenCADC ; si ce n’est
+* . pas le cas, consultez :
+* .
+*
+* $Revision: 4 $
+*
+************************************************************************
+*/
+
+package org.opencadc.vault;
+
+import ca.nrc.cadc.uws.server.JobExecutor;
+import ca.nrc.cadc.uws.server.JobPersistence;
+import ca.nrc.cadc.uws.server.JobUpdater;
+import ca.nrc.cadc.uws.server.ThreadPoolExecutor;
+import org.apache.log4j.Logger;
+import org.opencadc.vospace.server.async.RecursiveNodePropsRunner;
+
+/**
+ *
+ * @author pdowler, majorb, yeunga, adriand
+ */
+public class RecursiveNodePropsJobManager extends VaultJobManager {
+ private static final Logger log = Logger.getLogger(RecursiveNodePropsJobManager.class);
+
+ private static final Long MAX_EXEC_DURATION = Long.valueOf(12 * 7200L); // 24 hours?
+ private static final Long MAX_DESTRUCTION = Long.valueOf(7 * 24 * 3600L); // 1 week
+ private static final Long MAX_QUOTE = Long.valueOf(12 * 7200L); // same as exec
+
+ public RecursiveNodePropsJobManager() {
+ super();
+ JobPersistence jp = createJobPersistence();
+ JobUpdater ju = (JobUpdater) jp;
+ super.setJobPersistence(jp);
+
+ JobExecutor jobExec = new ThreadPoolExecutor(ju, RecursiveNodePropsRunner.class, 3);
+ super.setJobExecutor(jobExec);
+
+ super.setMaxExecDuration(MAX_EXEC_DURATION);
+ super.setMaxDestruction(MAX_DESTRUCTION);
+ super.setMaxQuote(MAX_QUOTE);
+ }
+}
diff --git a/vault/src/main/java/org/opencadc/vault/VaultJobManager.java b/vault/src/main/java/org/opencadc/vault/VaultJobManager.java
new file mode 100644
index 00000000..7968e7f5
--- /dev/null
+++ b/vault/src/main/java/org/opencadc/vault/VaultJobManager.java
@@ -0,0 +1,97 @@
+/*
+************************************************************************
+******************* CANADIAN ASTRONOMY DATA CENTRE *******************
+************** CENTRE CANADIEN DE DONNÉES ASTRONOMIQUES **************
+*
+* (c) 2023. (c) 2023.
+* Government of Canada Gouvernement du Canada
+* National Research Council Conseil national de recherches
+* Ottawa, Canada, K1A 0R6 Ottawa, Canada, K1A 0R6
+* All rights reserved Tous droits réservés
+*
+* NRC disclaims any warranties, Le CNRC dénie toute garantie
+* expressed, implied, or énoncée, implicite ou légale,
+* statutory, of any kind with de quelque nature que ce
+* respect to the software, soit, concernant le logiciel,
+* including without limitation y compris sans restriction
+* any warranty of merchantability toute garantie de valeur
+* or fitness for a particular marchande ou de pertinence
+* purpose. NRC shall not be pour un usage particulier.
+* liable in any event for any Le CNRC ne pourra en aucun cas
+* damages, whether direct or être tenu responsable de tout
+* indirect, special or general, dommage, direct ou indirect,
+* consequential or incidental, particulier ou général,
+* arising from the use of the accessoire ou fortuit, résultant
+* software. Neither the name de l'utilisation du logiciel. Ni
+* of the National Research le nom du Conseil National de
+* Council of Canada nor the Recherches du Canada ni les noms
+* names of its contributors may de ses participants ne peuvent
+* be used to endorse or promote être utilisés pour approuver ou
+* products derived from this promouvoir les produits dérivés
+* software without specific prior de ce logiciel sans autorisation
+* written permission. préalable et particulière
+* par écrit.
+*
+* This file is part of the Ce fichier fait partie du projet
+* OpenCADC project. OpenCADC.
+*
+* OpenCADC is free software: OpenCADC est un logiciel libre ;
+* you can redistribute it and/or vous pouvez le redistribuer ou le
+* modify it under the terms of modifier suivant les termes de
+* the GNU Affero General Public la “GNU Affero General Public
+* License as published by the License” telle que publiée
+* Free Software Foundation, par la Free Software Foundation
+* either version 3 of the : soit la version 3 de cette
+* License, or (at your option) licence, soit (à votre gré)
+* any later version. toute version ultérieure.
+*
+* OpenCADC is distributed in the OpenCADC est distribué
+* hope that it will be useful, dans l’espoir qu’il vous
+* but WITHOUT ANY WARRANTY; sera utile, mais SANS AUCUNE
+* without even the implied GARANTIE : sans même la garantie
+* warranty of MERCHANTABILITY implicite de COMMERCIALISABILITÉ
+* or FITNESS FOR A PARTICULAR ni d’ADÉQUATION À UN OBJECTIF
+* PURPOSE. See the GNU Affero PARTICULIER. Consultez la Licence
+* General Public License for Générale Publique GNU Affero
+* more details. pour plus de détails.
+*
+* You should have received Vous devriez avoir reçu une
+* a copy of the GNU Affero copie de la Licence Générale
+* General Public License along Publique GNU Affero avec
+* with OpenCADC. If not, see OpenCADC ; si ce n’est
+* . pas le cas, consultez :
+* .
+*
+* $Revision: 4 $
+*
+************************************************************************
+*/
+
+package org.opencadc.vault;
+
+import ca.nrc.cadc.auth.AuthenticationUtil;
+import ca.nrc.cadc.uws.server.JobPersistence;
+import ca.nrc.cadc.uws.server.SimpleJobManager;
+import ca.nrc.cadc.uws.server.impl.PostgresJobPersistence;
+import org.apache.log4j.Logger;
+
+/**
+ *
+ * @author adriand
+ */
+public class VaultJobManager extends SimpleJobManager {
+ private static final Logger log = Logger.getLogger(VaultJobManager.class);
+
+ protected VaultJobManager() {
+ super();
+ }
+
+ protected final JobPersistence createJobPersistence() {
+ return new PostgresJobPersistence(AuthenticationUtil.getIdentityManager());
+ }
+
+ @Override
+ public void terminate() throws InterruptedException {
+ super.terminate();
+ }
+}
diff --git a/vault/src/main/webapp/WEB-INF/web.xml b/vault/src/main/webapp/WEB-INF/web.xml
index 90476792..c034a2f7 100644
--- a/vault/src/main/webapp/WEB-INF/web.xml
+++ b/vault/src/main/webapp/WEB-INF/web.xml
@@ -63,7 +63,7 @@
2
-
+
RecursiveDeleteNodeServlet
ca.nrc.cadc.uws.server.JobServlet
@@ -86,6 +86,33 @@
3
+
+
+ RecursiveNodePropsServlet
+ ca.nrc.cadc.uws.server.JobServlet
+
+ get
+ ca.nrc.cadc.uws.web.GetAction
+
+
+ post
+ ca.nrc.cadc.uws.web.PostAction
+
+
+ delete
+ ca.nrc.cadc.uws.web.DeleteAction
+
+
+ ca.nrc.cadc.uws.server.JobManager
+ org.opencadc.vault.RecursiveNodePropsJobManager
+
+
+ ca.nrc.cadc.rest.InlineContentHandler
+ org.opencadc.vospace.server.async.InlineNodeJobHandler
+
+ 3
+
+
@@ -134,7 +161,12 @@
RecursiveDeleteNodeServlet
- /recursiveDelete/*
+ /async-delete/*
+
+
+
+ RecursiveNodePropsServlet
+ /async-setprops/*
diff --git a/vault/src/main/webapp/capabilities.xml b/vault/src/main/webapp/capabilities.xml
index d24f1a22..28cfb09b 100644
--- a/vault/src/main/webapp/capabilities.xml
+++ b/vault/src/main/webapp/capabilities.xml
@@ -43,7 +43,17 @@
- https://replace.me.com/vault/recursiveDelete
+ https://replace.me.com/vault/async-delete
+
+
+
+
+
+
+
+
+
+ https://replace.me.com/vault/async-setprops