LabKey Support Forum

Showing: limited to 100 messages
Trigger process after successful specimen import
tstellin 2020-06-29 12:23

Hi,

We'd like to kick off a post-specimen import process that starts when labkey finishes a specimen import pipeline job. Does a feature like this exist in Labkey Server? I've looked through the UI and documentation, and didn't see anything, but wanted to double-check and make sure it doesn't exist.

Thanks!
-Tobin

view message
Generating a folder access report
jgane 2020-06-25 12:28

Hi,

I was wondering if there is a way to generate a list of all users that have access to a folder for every folder/subfolder on LabKey? Essentially we want to collect the /folderAccess.view page for every folder into something like a JSON.

We tried using the R API to pull a list of all the folders on LabKey and then querying the core.Users table for each folder, however we ran into an issue where if a user is a part of a project group, they will show up in the core.Users table for every subfolder regardless of whether they actually have access to that subfolder or not. Even if that project group is not added to any folders and has no ability to access anything in that project, the users in that group will still show up in the core.Users table for every subfolder.

In case it helps we are running on version 20.3.

Any suggestions or ideas would be appreciated.

Thanks,
Jon

view message
Enabling CORS and file deletion issues
(7 responses) inaki martinez 2020-06-24 08:35

Dear Labkey community

we are having some issues while enabling CORS in labkey for some external collaborators. Our labkey instances work fine without CORS but as soon as we enable it, some labkey functionality does not work. As far as we could test, only file deletion stops working, but still is a problem.

Our labkey server has the following versions:

  • apache-tomcat: 8.5.53
  • openjdk:13.0.2
  • LabKey19.3.10-65330.20

The CORS configuration is as follows, although I've tried using just the default values without any luck.

     <filter>
        <filter-name>CorsFilter</filter-name>
        <filter-class>org.apache.catalina.filters.CorsFilter</filter-class>

        <init-param>
          <param-name>cors.allowed.origins</param-name>
          <param-value>https://bc2-labkey-dev.bc2.unibas.ch, https://bc2-labkey-dev.bc2.unibas.ch, https://labkey-dev.scicore.unibas.ch, https://labkey-dev.scicore.unibas.ch, https://wiki.biozentrum.unibas.ch, https://labkey.scicore.unibas.ch</param-value>
        </init-param>

        <init-param>
          <param-name>cors.allowed.methods</param-name>
          <param-value>GET,POST,OPTIONS</param-value>
        </init-param>

        <init-param>
           <param-name>cors.allowed.headers</param-name>
           <param-value>Access-Control-Expose-Headers,Access-Control-Allow-Origin,X-Requested-With,Content-type,Authorization</param-value>
        </init-param>

        <init-param>
          <param-name>cors.exposed.headers</param-name>
          <param-value>Access-Control-Expose-Headers,Access-Control-Allow-Origin,X-Requested-With,Content-type,Authorization</param-value>
        </init-param>

        <init-param>
          <param-name>cors.support.credentials</param-name>
          <param-value>true</param-value>
        </init-param>

        <init-param>
          <param-name>cors.preflight.maxage</param-name>
          <param-value>1800</param-value>
        </init-param>
      </filter>

      <filter-mapping>
        <filter-name>CorsFilter</filter-name>
        <url-pattern>/*</url-pattern>
      </filter-mapping>

Even with a simpler CORS setup it does not work:

     <filter>
        <filter-name>CorsFilter</filter-name>
        <filter-class>org.apache.catalina.filters.CorsFilter</filter-class>

        <init-param>
          <param-name>cors.allowed.origins</param-name>
          <param-value>*</param-value>
        </init-param>

      <filter-mapping>
        <filter-name>CorsFilter</filter-name>
        <url-pattern>/*</url-pattern>
      </filter-mapping>

Upon trying to delete a file I have just uploaded in the files tab, I get "Failed to delete" message. Firefox devel tools show:

Request URL:https://bc2-labkey-dev.bc2.unibas.ch/labkey/_webdav/home/%40files/afile_to_delete.txt?method=DELETE&pageId=4267287a-97a1-1038-bf7a-3c9cbf81b968
Request Method:POST
Remote Address:0.0.0.0:443
Status Code:
403
Version:HTTP/1.1
Referrer Policy:origin-when-cross-origin

The logs don't show any error during this request.

Is there anything else we should modify, or add for this to work? I'm currently out of ideas.

Best regards,
Iñaki

view message
How to track deletion of a row in a dataset?
Chichero 2020-06-19 04:07

I have not found any log information that states explicitly that a particular user deleted an entry in a dataset. In our study I looked in Audit Log - Assay/Experiment Events but only found info about who created an entry, Derive sample from sampleid-X and comment with Run deleted.

Could you help me to find a log with precise information about who deleted, who created and who modified an entry in a dataset and/or a sample set?

view message
List with timestamps unsorted
eva pujadas 2020-06-18 09:23

Dear Labkey team,

We are having a strange issue when creating a new list imported from CSV file. The source CSV file is sorted by one of the columns representing the date and time, but that in the created list in some of the rows this sorting is not preserved after import. I attach an screenshot to visualize what I mean.

I attach also the example of CSV file (with about 85'000 lines). The file contain some "?" instead of numbers, which we are marking as "missing value indicators".

Do you know about some similar issue and what could cause it?

Thanks a lot,
Eva

 Test.csv  forums.png 
view message
File Upload Issue
(3 responses) jgane 2020-05-26 07:54

Hi,

We have a user who has been running into an issue trying to upload a specific HTML file to a files webpart on LabKey version 18.2, every time she does she gets an Unauthorized error stating "You do not have privileges to upload." and when checking the LabKey Primary Site Log File I see the error message below:

WARN FileSystemResource 2020-05-15 15:48:20,754 catalina-exec-16 : user@institution.org attempted to delete file that is not writable by LabKey Server. This may be a configuration problem. file: /mnt/labkey/Release_Prep/Sandbox_and_Resources/SB_CLIN/@files/Data_Quality_Report_VS.html

If I as an admin try to upload the file I am able to successfully, however if I impersonate her account and try I get the same permissions error. She is able to upload other files to this folder just fine and strangely enough she is able to upload the file to an issue in an issue tracker but just not to a files webpart. Additionally, no other users are reporting issues with uploading files.

Any help or insight on this would be appreciated.

Jon

view message
Error on some wiki pages when trying to save new content with varying users
(4 responses) max diesner 2020-05-25 07:38
Hi,

i am a fairly new user to the Labkey enviroment. I have setup a community edition version 20.3. (updated from 19.3.) and everything works when i am editing and uploading files through my main admit account. However, when my colleagues want to edit certain wiki pages we get the following error:

Unable to save changes due to the following validation errors:
Illegal attribute 'onclick' on element <a>.

this happens when we use the "advanced editor"

When we edit the wiki page via the normal editor we just get the message "Error saving wiki".

What is interesting is that this error only pops up at certein wiki pages and not at all. When a user is given rights as "site administrator" the user can edit the page and save it. However as soon as these rights are removed and the user only has the "normal Fodler administrator" rights the problem occurs again. the user can however setup new pages without a problem. The problem only appears at some wiki pages that have been created by my account, the "Site administrator" account.

I know that is has something to do with the rights managment or with the creation of these certain pages but i am lacking the knowledge on how to check where the error comes from.

Looking forward to here from you guys, you are doing an awesome job!

P.S.: The Server is runing on a virtual server, win server 2019 with 8 gig ram. Server version is 20.3. with an updated java 14.0.1+7, tomcat 9.0.26.
view message
Checkbox to select all columns from a table in gridview
(1 response) Edward 2020-05-17 16:25

Hi,

When customising a grid, I have to manually check each column from other tables to make a new grid view. I have wide tables with approximately 150 columns in each, and I have to click 150 times if I want to select all columns from any of these tables. Is there a way to customise my grid by clicking a single checkbox to select all the columns from any of the wide tables?

In the attached screenshot, I have highlighted a checkbox for the whole table but click is disabled for it. Is there any way to enable this checkbox so a user can select all columns from any table with a single click?

 Screenshot.png 
view message
Import large proteomic assay to labkey
(1 response) johann pellet 2020-05-12 09:48

Hi all,

I am trying to upload a large proteomic RMN dataset (9600 columns x 240 rows) into Labkey 19.3.
Below a subset of the matrix:

Sample_ID    9.99950027      9.99849987      9.99750042
  L-1025-01     3547.56219015   4502.33293817   3747.21499051
  L-1025-02     -918.88494389   1544.06141934   -553.62238202

The input matrix consists of N rows of samples with M columns of bin intensities.

Beforehand, I created the sample set NMR samples (below a subset)

Name Volume  Unit
L-1025-01       130.0   uL
L-1025-02       130.0   uL

When I trying to import the Assay, I choose the assay type General and in the Results Fields, I delete all the default fields before I import my matrix to Labkey.

This method does not work because labkey does not accept to import more than 1600 columns. See below an extract of the labkey.log

ERROR BaseApiAction            2020-05-12 13:02:16,710      ajp-nio-8009-exec-5 : ApiAction exception:                                    
org.springframework.dao.DataAccessResourceFailureException: SqlExecutor.execute(); SQL []; ERROR: tabl                                    es can have at most 1600 columns; nested exception is org.postgresql.util.PSQLException: ERROR: tables                                     can have at most 1600 columns

So what I did is to transpose my matrix like that (240 columns x 6900 rows):

Feature_ID  L-1025-01          L-1025-02
9.99950027      3547.56219      -918.8849439
9.99849987      4502.332938     1544.061419
9.99750042      3747.214991     -553.622382

The Assay was created into Labkey after a very long time and an internal server error (I should check the Tomcat and/or Apache configuration).
But now, I don't see how I could import this Assay to my study matching my Sample Set created before. Indeed, when I click to Copy to Study, Participant IDs and Visit IDs are required for all rows. The problem is that each row is not a Sample_ID but a feature.... See images attached.
Ho I could manage this kind of array into Labkey. Should I do it with an other method?
Thank you for your help.

Regards,
Johann

 Annotation 2020-05-12 184227.png 
view message
Patch in 20.3 community edition for Issue 40227: SQLException when importing a Skyline document with a chromatogram library
(5 responses) tvaisar 2020-05-11 04:36

I recently ran into issue when uploading Skyline document with Chromatogram library into a Panorama folder on our Labkey Server. Vagisha pointed me to the Issue 40227: SQLException when importing a Skyline document with a chromatogram library, that she recently resolved.
I wonder if there is/will be a patched version of the v.20.3 community edition. This issue was only recently fixed (4/17) and closed 4/29. Latest v20.3.2 community edition is dated 3/19.

Thanks,
Tomas

view message
FileNotificationCommand failes with "You must use the POST method when calling this action." error
(2 responses) r kursawe 2020-04-24 08:29

I would like to trigger pipeline jobs on a 19.3 server via Java client API. Therefore, I included the labkey-client-api-1.0.1-SNAPSHOT-all.jar in the project and wrote this code:

String user = "username";
String password = "password";
BasicAuthCredentialsProvider cp = new BasicAuthCredentialsProvider(user,password);
Connection cn = new Connection("http://localhost:8080/",cp);
FileNotificationCommand cmd = new FileNotificationCommand();
FileNotificationResponse response = cmd.execute(cn, "dummy collaboration/dummy study");

The server response is a 405 with the message: "You must use the POST method when calling this action." The _httpClientContext property of the Connection object shows that a GET request has been send.

How can I configure to send a POST request?

view message
Cannot access admin console after upgrade to 20.3
(2 responses) m boehmer 2020-04-22 06:05

After a manual upgrade to Labkey Server 20.3, when trying to access the admin console I receive the following error message:

An unexpected error occurred. If contacting support regarding this error, please refer to error code: VUNKPZ
java.lang.NoSuchFieldError: labkeyVersion

Any ideas what might went wrong?

view message
Incremental update support for specimen import
(2 responses) tstellin 2020-04-17 09:14

Hi,

We are curious if LabKey supports (or plans to support) an "incremental" specimen import. This would allow only the specimen event deltas to be specified in the .specimen ZIP archive imported into LabKey each day. It would require complicating the interface--for example, a record would need to signify a "deleted" event (in contrast to the current behavior, where a deletion is signified by the absence of a previously-seen specimen event).

I didn't see anything on the current documentation that suggests an incremental import is supported. My understanding is that the current behavior merges the new .specimen ZIP file with the specimens loaded from the previous import.

Thanks,
-Tobin

view message
Specimens not populating after completed specimen archive import
(1 response) Karen Bates 2020-04-08 08:54

Hello,

I imported a new specimens archive and it said it was completed. However, the specimens are not populating in the Specimens Data tab. I noticed when I was importing the archive, there was not an option for "Replace" or "Merge" as the documentation suggested there would be. But I wasn't sure if that was because this was the first archive import for the study so therefore it's not necessary to replace or merge anything.

Is there an additional step after the import that needs to happen for the specimens to populate?

Thank you for your assistance!

view message
Error while running trigger script
(4 responses) eva pujadas 2020-04-07 09:32

Dear LabKey support,

We have installed a new version of LabKey, 19.3.7, and are detecting a problem when running some trigger scripts attached to study datasets. The same scripts were working in the previous version.

The web interface error message is the following:
"script error: afterInsert trigger closed the connection, possibly due to constraint violation"

The error logs are attached.

The trigger JavaScript script performs some checks in a dataset and tries to insert new rows in two other datasets. The error seems to happen when trying to insert into the second dataset.

Thanks for any ideas about this error's cause.
Best regards,
Eva

 labkey.log 
view message
Custom site welcome page
(1 response) johann pellet 2020-04-02 03:07

Hi all,

I would like more information about how we should proceed to customize an alternative welcome page (Labkey 19.3).
Despite the documentation here: (https://www.labkey.org/Documentation/19.3/wiki-page.view?name=customizeLook) and the help bubble in the Look and Feel Settings labkey page, it's not clear for me how to proceed.

Help buble:
The relative URL of the page, either a full LabKey view or simple HTML resource, to be loaded as the welcome page. The welcome page will be loaded when a user loads the site with no action provided (i.e. https://www.labkey.org). This is often used to provide a splash screen for guests. Note: do not include the contextPath in this string. For example: /myModule/welcome.view to select a view within a module, or /myModule/welcome.html for a simple HTML page in the web directory of your module.

What I tried is

  • to create in /usr/local/labkey/labkey/modules a new folder myModule. Into this folder I created a folder views and a file in views/welcome.html
  • in the Look and feel settings page I choose "myModule.welcome" .
    I also tried with other relative URL without success.

Thank you for your help.

Johann

view message
Bug in version 20.3.0
(1 response) tvaisar 2020-04-01 10:47

Hi,
think there is a bug in v.20.3.0, in the MS2runs view RunSummary - the modifications link shows html code rather than a pop-up with list of modifications. See attached screenshot.

Tomas

 LabKeyServer_bug_20200401.pptx 
view message
Recent Security Update
(2 responses) jgane 2020-03-24 08:28

Hi,

I was just curious if there was any more information about the recent security update that was done in 20.3 and hotfixed into 19.3.7? What did the security issue pertain to? Did it affect any other versions of LabKey before 19.3?

Thanks,
Jon

view message
Updated node and npm versions
Susan Hert 2020-03-20 10:11

This morning I updated the npm and node versions used in our trunk/develop builds. This means that when you pull in this change you are very likely going to see an error like this from node_sass when building:

ERROR in ./src/theme/index.scss (./node_modules/css-loader/dist/cjs.js??ref--5-1!./node_modules/sass-loader/lib/loader.js??ref--5-2!./src/theme/index.scss)
    Module build failed (from ./node_modules/sass-loader/lib/loader.js):
    Error: Missing binding /Users/dev/Development/labkey/trunk/labkey-ui-components/packages/components/node_modules/node-sass/vendor/darwin-x64-72/binding.node
    Node Sass could not find a binding for your current environment: OS X 64-bit with Node.js 12.x
    
    Found bindings for the following environments:
      - OS X 64-bit with Node.js 10.x

To remedy this, you can run ./gradlew cleanNodeModules (or, to be really thorough, ./gradlew -PmoduleSet=all cleanNodeModules) and then run your build command.

view message
LDAP Authentication for Linux - Community Version (Moved from Installation Forum)
(4 responses) joseph mackey 2020-03-06 12:05

LDAP Authentication for Linux - Community Version joseph mackey EDIT 2020-02-21 14:36
Status: Active

Hello,
I have installed Labkey 19.3 Community Version.
While I have a connection string that works from the test screen, I cannot configure it in the LDAP Auth Settings.
I have configured other applications for AD authentication and works when using the sAMAccountName and the full DN (so does the test)
Even when adding the configuration to the labkey.xml file, does not seem to make a difference.

Is there a way to enable verbose logging for LDAP auth attempts?
When adding DN to the LDAP principle template, is there a way to substitute sAMAccountName instead of email or UID?
When using My full DN I am able to log in with my email and AD password but i'm the only user able to login with AD credentials.
Build info:
OS RedHat Enterprise Linux 7.7
Product Name PostgreSQL
Product Version 12.1
JDBC Driver Name PostgreSQL JDBC Driver
JDBC Driver Version 42.2.8
Servlet Container Apache Tomcat/9.0.30
Java Runtime Vendor N/A
Java Runtime Name OpenJDK Runtime Environment
Java Runtime Version 13.0.2+8

chetc (LabKey Support) responded: 2020-03-06 10:55
Hello,

Yes there is. There is no need to enable anything since this is already happening. The labkey.log file should indicate a LDAP login failure and so should the AuditLog found in the admin console.

You should be able to sub for anything. The principal template is used to search through the LDAP global directory and reassociate one value for another.

You can find more information about LDAP Configuration on our Documentation site.
https://www.labkey.org/Documentation/wiki-page.view?name=configLdap

Thanks,
Chet

chetc (LabKey Support) responded: 2020-03-06 10:55
Hello,

We appreciate you utilizing our forums!

However this forum will become inactive very soon. To follow up on this question or to ask new question please use our new forum.

LabKey Support Forum - https://www.labkey.org/home/Support/LabKey Support Forum/project-begin.view?

Thanks,
Chet

view message
ggplotly
(6 responses) dhutchison 2020-02-29 18:09

Hi,

Trying to get an interactive plot (heatmap) working, e.g., ggplotly, but it's not happening...

Any thoughts?

Here's what I've tried:
(saveWidget works fine in RStudio)

data<-as.data.frame(labkey.data)

# plot
ggp <- ggplot(data_melt, aes(Condition, Analyte)) +                           
                   geom_tile(aes(fill = value)) +
                   theme(axis.text.x = element_text( 
                   angle = 90, 
                   size=6)) +
                   scale_x_discrete(breaks = data_melt$Condition) 

works but not interactive and doesn't auto-size:

ggsave("${imgout:labkeyl_png}",plot=ggp,device="png")

save to a temp location not the report:

saveWidget(ggplotly(ggp), file = "test.html")

no error, but report doesn't show up:

saveWidget(ggplotly(ggp), file = "test.html")
rawHTML <- paste(readLines("test.html"),collapse="\n") 
# ${htmlout:output}
write(rawHTML, file="output")

view message
Error When Setting Up Developer Machine
(1 response) nazric55 2020-02-02 12:41

I've been following the documentation for setting up a developer machine (https://www.labkey.org/Documentation/wiki-page.view?name=devMachine) but I ran into issues in the "Build LabKey" section.

When running the command "gradlew deployApp" the build fails immediately after the "Task :server:stageModules" starts. (stacktrace pasted below)

The only other inconsistency I found in the guide was in the "Configure the LabKey Project in IntelliJ" section when it asks to edit the configurations there is no modules named "api_main" or "org.labkey-api_main", so I continued with "api" instead.

Other configuration information:
apache-tomcat-9.0.30
jdk-13.0.2 (OpenJDK)
When running the gradlew command I see that it's using Gradle 6.0
SVN revision 65036

Stacktrace from error (using --stacktrace flag)

Task :server:stageModules FAILED

FAILURE: Build failed with an exception.

  • What went wrong:
    Execution failed for task ':server:stageModules'.

Specify at least one source--a file or a resource collection.

  • Try:
    Run with --info or --debug option to get more log output. Run with --scan to get full insights.

  • Exception is:
    org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':server:stageModules'.
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.lambda$executeIfValid$1(ExecuteActionsTaskExecuter.java:187)
    at org.gradle.internal.Try$Failure.ifSuccessfulOrElse(Try.java:263)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:185)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:166)
    at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:109)
    at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)
    at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:62)
    at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)
    at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:56)
    at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77)
    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55)
    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:416)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:406)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:102)
    at org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36)
    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52)
    at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:41)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:374)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:361)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:354)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:340)
    at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.lambda$run$0(DefaultPlanExecutor.java:127)
    at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:191)
    at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:182)
    at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:124)
    at org.gradle.execution.plan.DefaultPlanExecutor.process(DefaultPlanExecutor.java:72)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph.executeWithServices(DefaultTaskExecutionGraph.java:191)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph.execute(DefaultTaskExecutionGraph.java:168)
    at org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:41)
    at org.gradle.execution.DefaultBuildWorkExecutor.execute(DefaultBuildWorkExecutor.java:40)
    at org.gradle.execution.DefaultBuildWorkExecutor.access$000(DefaultBuildWorkExecutor.java:24)
    at org.gradle.execution.DefaultBuildWorkExecutor$1.proceed(DefaultBuildWorkExecutor.java:48)
    at org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:49)
    at org.gradle.execution.DefaultBuildWorkExecutor.execute(DefaultBuildWorkExecutor.java:40)
    at org.gradle.execution.DefaultBuildWorkExecutor.execute(DefaultBuildWorkExecutor.java:33)
    at org.gradle.execution.IncludedBuildLifecycleBuildWorkExecutor.execute(IncludedBuildLifecycleBuildWorkExecutor.java:36)
    at org.gradle.execution.DeprecateUndefinedBuildWorkExecutor.execute(DeprecateUndefinedBuildWorkExecutor.java:39)
    at org.gradle.execution.BuildOperationFiringBuildWorkerExecutor$ExecuteTasks.run(BuildOperationFiringBuildWorkerExecutor.java:56)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:402)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:394)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:92)
    at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
    at org.gradle.execution.BuildOperationFiringBuildWorkerExecutor.execute(BuildOperationFiringBuildWorkerExecutor.java:41)
    at org.gradle.initialization.DefaultGradleLauncher.runWork(DefaultGradleLauncher.java:241)
    at org.gradle.initialization.DefaultGradleLauncher.doClassicBuildStages(DefaultGradleLauncher.java:151)
    at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:130)
    at org.gradle.initialization.DefaultGradleLauncher.executeTasks(DefaultGradleLauncher.java:110)
    at org.gradle.internal.invocation.GradleBuildController$1.execute(GradleBuildController.java:60)
    at org.gradle.internal.invocation.GradleBuildController$1.execute(GradleBuildController.java:57)
    at org.gradle.internal.invocation.GradleBuildController$3.create(GradleBuildController.java:85)
    at org.gradle.internal.invocation.GradleBuildController$3.create(GradleBuildController.java:78)
    at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:189)
    at org.gradle.internal.work.StopShieldingWorkerLeaseService.withLocks(StopShieldingWorkerLeaseService.java:40)
    at org.gradle.internal.invocation.GradleBuildController.doBuild(GradleBuildController.java:78)
    at org.gradle.internal.invocation.GradleBuildController.run(GradleBuildController.java:57)
    at org.gradle.tooling.internal.provider.ExecuteBuildActionRunner.run(ExecuteBuildActionRunner.java:31)
    at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
    at org.gradle.launcher.exec.BuildOutcomeReportingBuildActionRunner.run(BuildOutcomeReportingBuildActionRunner.java:63)
    at org.gradle.tooling.internal.provider.ValidatingBuildActionRunner.run(ValidatingBuildActionRunner.java:32)
    at org.gradle.launcher.exec.BuildCompletionNotifyingBuildActionRunner.run(BuildCompletionNotifyingBuildActionRunner.java:39)
    at org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner$3.call(RunAsBuildOperationBuildActionRunner.java:51)
    at org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner$3.call(RunAsBuildOperationBuildActionRunner.java:45)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:416)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:406)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:102)
    at org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36)
    at org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner.run(RunAsBuildOperationBuildActionRunner.java:45)
    at org.gradle.launcher.exec.InProcessBuildActionExecuter$1.transform(InProcessBuildActionExecuter.java:50)
    at org.gradle.launcher.exec.InProcessBuildActionExecuter$1.transform(InProcessBuildActionExecuter.java:47)
    at org.gradle.composite.internal.DefaultRootBuildState.run(DefaultRootBuildState.java:78)
    at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:47)
    at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:31)
    at org.gradle.launcher.exec.BuildTreeScopeBuildActionExecuter.execute(BuildTreeScopeBuildActionExecuter.java:42)
    at org.gradle.launcher.exec.BuildTreeScopeBuildActionExecuter.execute(BuildTreeScopeBuildActionExecuter.java:28)
    at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:78)
    at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:52)
    at org.gradle.tooling.internal.provider.SubscribableBuildActionExecuter.execute(SubscribableBuildActionExecuter.java:59)
    at org.gradle.tooling.internal.provider.SubscribableBuildActionExecuter.execute(SubscribableBuildActionExecuter.java:36)
    at org.gradle.tooling.internal.provider.SessionScopeBuildActionExecuter.execute(SessionScopeBuildActionExecuter.java:68)
    at org.gradle.tooling.internal.provider.SessionScopeBuildActionExecuter.execute(SessionScopeBuildActionExecuter.java:38)
    at org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:37)
    at org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:26)
    at org.gradle.tooling.internal.provider.ParallelismConfigurationBuildActionExecuter.execute(ParallelismConfigurationBuildActionExecuter.java:43)
    at org.gradle.tooling.internal.provider.ParallelismConfigurationBuildActionExecuter.execute(ParallelismConfigurationBuildActionExecuter.java:29)
    at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:60)
    at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:32)
    at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:55)
    at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:41)
    at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:48)
    at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:32)
    at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:68)
    at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:37)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
    at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:39)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
    at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:27)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
    at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:35)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
    at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.create(ForwardClientInput.java:78)
    at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.create(ForwardClientInput.java:75)
    at org.gradle.util.Swapper.swap(Swapper.java:38)
    at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:75)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
    at org.gradle.launcher.daemon.server.exec.LogAndCheckHealth.execute(LogAndCheckHealth.java:55)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
    at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:63)
    at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:37)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
    at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:82)
    at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:37)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
    at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:52)
    at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:297)
    at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
    at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
    at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)
    Caused by: : Specify at least one source--a file or a resource collection.
    at org.apache.tools.ant.taskdefs.Copy.validateAttributes(Copy.java:678)
    at org.apache.tools.ant.taskdefs.Copy.execute(Copy.java:450)
    at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:99)
    at org.gradle.api.internal.project.ant.BasicAntBuilder.nodeCompleted(BasicAntBuilder.java:80)
    at org.gradle.api.internal.project.ant.BasicAntBuilder.doInvokeMethod(BasicAntBuilder.java:107)
    at org.labkey.gradle.plugin.ServerDeploy$_addTasks_closure2$_closure23.doCall(ServerDeploy.groovy:85)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at org.gradle.api.internal.AbstractTask$ClosureTaskAction.execute(AbstractTask.java:664)
    at org.gradle.api.internal.AbstractTask$ClosureTaskAction.execute(AbstractTask.java:637)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$3.run(ExecuteActionsTaskExecuter.java:539)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:402)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:394)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:92)
    at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:524)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:507)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.access$300(ExecuteActionsTaskExecuter.java:109)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution.executeWithPreviousOutputFiles(ExecuteActionsTaskExecuter.java:258)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution.execute(ExecuteActionsTaskExecuter.java:247)
    at org.gradle.internal.execution.steps.ExecuteStep.lambda$execute$1(ExecuteStep.java:33)
    at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:33)
    at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:26)
    at org.gradle.internal.execution.steps.CleanupOutputsStep.execute(CleanupOutputsStep.java:63)
    at org.gradle.internal.execution.steps.CleanupOutputsStep.execute(CleanupOutputsStep.java:35)
    at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:49)
    at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:34)
    at org.gradle.internal.execution.steps.CancelExecutionStep.execute(CancelExecutionStep.java:43)
    at org.gradle.internal.execution.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:73)
    at org.gradle.internal.execution.steps.TimeoutStep.execute(TimeoutStep.java:54)
    at org.gradle.internal.execution.steps.CatchExceptionStep.execute(CatchExceptionStep.java:34)
    at org.gradle.internal.execution.steps.CreateOutputsStep.execute(CreateOutputsStep.java:44)
    at org.gradle.internal.execution.steps.SnapshotOutputsStep.execute(SnapshotOutputsStep.java:54)
    at org.gradle.internal.execution.steps.SnapshotOutputsStep.execute(SnapshotOutputsStep.java:38)
    at org.gradle.internal.execution.steps.CacheStep.executeWithoutCache(CacheStep.java:153)
    at org.gradle.internal.execution.steps.CacheStep.execute(CacheStep.java:67)
    at org.gradle.internal.execution.steps.CacheStep.execute(CacheStep.java:41)
    at org.gradle.internal.execution.steps.BroadcastChangingOutputsStep.execute(BroadcastChangingOutputsStep.java:49)
    at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:44)
    at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:33)
    at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:38)
    at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:24)
    at org.gradle.internal.execution.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:92)
    at org.gradle.internal.execution.steps.SkipUpToDateStep.lambda$execute$0(SkipUpToDateStep.java:85)
    at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:55)
    at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:39)
    at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:76)
    at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:37)
    at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:36)
    at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:26)
    at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:94)
    at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:49)
    at org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:79)
    at org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:53)
    at org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:74)
    at org.gradle.internal.execution.steps.SkipEmptyWorkStep.lambda$execute$2(SkipEmptyWorkStep.java:78)
    at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:78)
    at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:34)
    at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsStartedStep.execute(MarkSnapshottingInputsStartedStep.java:39)
    at org.gradle.internal.execution.steps.LoadExecutionStateStep.execute(LoadExecutionStateStep.java:40)
    at org.gradle.internal.execution.steps.LoadExecutionStateStep.execute(LoadExecutionStateStep.java:28)
    at org.gradle.internal.execution.impl.DefaultWorkExecutor.execute(DefaultWorkExecutor.java:33)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:174)
    ... 125 more

  • Get more help at https://help.gradle.org

Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/6.0/userguide/command_line_interface.html#sec:command_line_warnings

BUILD FAILED in 2s
5 actionable tasks: 1 executed, 4 up-to-date

view message
Transformation script that also queries a LabKey List/Assay?
(1 response) david sievers 2020-01-28 09:34

I'm developing a host of transformation scripts in Python, and I've been successful so far getting a couple examples to function. However, now I would like to be able to access more input variables, shall I say metadata, that I'm also storing in the parent LabKey Project folder as a List. I can access what is in the runProperties.tsv file, but I don't think this or the paths within will get me where I need to go.

What I'd like to do is validate naming conventions of incoming data columns against a directory of valid names within the transformation script. (Of course I could just use the Assay design itself to validate against during the import process, but I need to actually do this within the transformation script for my application.) I had initially thought of storing this directory in a text file next to the transformation script or also creating a list/set/dictionary object directly in the script. However, placing this data as a transparent and easily accessible LabKey List (or some other type of LK object) is most desirable.

Is there a preferred method of accessing LK Assay/List/DataClass tables from a transformation script? I could try using the LK API tools, but I'd like to avoid additional outside module import/usage within the script, and also avoid needing user credentials within the script, if there is a more direct method.

Thanks!

view message
LabKey Teamcity Server Maintenance 12/31/2019 @ 3 PM
(1 response) stuartm 2019-12-31 14:52

We will be preforming scheduled maintenance on the LabKey TeamCity build server today at 3 PM PST to address some latency issues with the TeamCity Database. Downtime is expected to be approximately 30 mins.

During the maintenance window the TeamCity build queue will be paused and resumed once the maintenance has been completed.

view message
datasetcolumns table not showing fields imported through assay module
(1 response) WayneH 2019-12-05 13:18

I imported some data to datasets via the assay module.. Wanting to produce a table describing the queries and fields in the schema but found that the datasetcolumns table in the study schema only shows fields created by the user not those created by the assay module.. Kinda odd..? Am I missing something? Don't want to ETL copy of data to another dataset for reporting..

Any thoughts?

Thanks,

Wayne

view message
Question regarding LDAP in upcoming release
(1 response) bront 2019-12-03 09:35

Hi,

Is it true that LDAP will be a premium feature in version 20.1? Will database authentication remain in the community edition?

https://www.labkey.org/Documentation/wiki-page.view?name=configLdap

thanks,

bront

view message
Creating views from queries via API
(1 response) millerjw4 2019-11-13 12:09

Hello,

Currently we are using LabKey to connect to an external MSSQL data source. When the data source is connected, it gives the ability to view these tables via the built-in queries on the connected schema. However, I would like all of these views to be available for users of the project by default and not have to go in and manually create a Query Report based on each of the 100 or so queries.

Is there any way to insert these query report views into the labkey project programmatically?

Thanks,
Jonathan

view message
Project User View error code 45B01R?
(2 responses) WayneH 2019-11-06 07:13

Good morning..

We recently found an error in one of our projects that has multiple group assignments to users. It appears as if the group ids are being interpreted as a string instead of integer values when there are multiple. One of the errors codes we got is 45B01R.. It generally says it cannot cannot convert the group ids to integer. We have two server implementations same version this one is the only one that shows the error.. the behavior this causes is the project user view cannot show the complete list of users because it stops rendering the list when it hits the error.

Any thoughts?

view message
Is there a way to create a container from the java api?
(3 responses) ccharpen 2019-10-30 15:53

I was able to get all containers programmatically, but now I need to create them. I thought, if there was such an API, it'd be here: https://www.labkey.org/download/clientapi_docs/java-api-9.3/doc/org/labkey/remoteapi/PostCommand.html

But it's not. Any suggestions?

view message
Wrong column selected by Rlabkey when retrieving visits
(5 responses) Edward 2019-10-21 06:26

I have a home folder where in I have five different sub-studies. In each of the sub-study, the visits starts from 1.1 to 12.1. When I try to retrieve rows from the tables in each of the study, only the first study returns correct sequences, i.e 1.1-12.1. Other sub-studies, return integer values such 7-19 or 48-60. When I tried to import the visit map through the following code, I found out that actually these returned integers are Rows Id and not the sequence number or the visit label. Can you kindly fix this issue? or is there any alternative to get all the columns of a table (except the hidden ones) plus the visit label?

labkey.data <- labkey.selectRows(
    baseUrl=labkey.url.base,
    folderPath=labkey.url.path,
    schemaName="study",
    queryName="Visit"
)


view message
Gradle Plugins Version 1.8
Susan Hert 2019-10-17 14:45

As of r64631 in trunk, the gradlePluginsVersion has been updated to v1.8. This version brings some exciting (to a build-geek) changes, including:

  • Removal of the schemas jar for all modules (the schemas classes are now compiled into the implementation jar for each module that has them)
  • Renaming of the jsp jar files (to remove the classifiers)

Because of these jar changes, once you pull in this change, you will want to do a cleanBuild. Without this, you'll have stale schema jars in your build directory and you will likely end up with two copies of some of the JSP jars, which could make for confusing behavior.

With this plugin version and going forward with LabKey 19.3, we will also be publishing the artifacts of our builds in Artifactory a little differently. Namely:

  • We will publish the api jars under the group org.labkey.api (e.g., you can reference the core api jar file as org.labkey.api:core:19.3-SNAPSHOT)
  • We will publish the .module files under the group org.labkey.module (e.g., you can reference the core module file org.labkey.module:core:19.3-SNAPSHOT@module. The "@module" is necessary because the extension of that file is .module instead of .jar).

You shouldn't need to make any changes in your current build as a result of this unless you had explicitly been referencing artifacts using 'org.labkey' as the group instead of using the BuildUtils.addLabKeyDependency method.

The .module files have pom files published with them that declare dependencies on other modules, which allows for an easier mechanism for getting all the modules required for a valid server deployment. We are, however, still auditing these dependency declarations to make sure they capture everything they should and there will likely be refinements of this in the future.

To enable the publishing of the module dependencies, the use of the property moduleDependencies in the module.properties file is now deprecated in favor of declaring dependencies within a module's build.gradle file. See more information on how to do this here.

If you have any questions or problems, please let us know.

Susan

view message
Get list of all folders (Java)
(4 responses) ccharpen 2019-10-07 16:16

As the title says, I want to get a hierarchical list of all folders.

This is what I've tried:

// Taking a stab in the dark here with the 'core' schema and 'Containers' query. 
SelectRowsCommand cmd = new SelectRowsCommand("core", "Containers");

// null for root. I was hoping this would return something useful, but as far as I can tell, it doesn't. 
SelectRowsResponse resp = cmd.execute(cn, null);

Thanks.

view message
End session via API
(1 response) WayneH 2019-09-13 08:30

Good afternoon,

just wondering if there was a way to end a session or logout via the server api .. It doesn't seem to be described in the documentation..

Thanks,

Wayne.

view message
Create Project through Python API
(4 responses) David Owen 2019-09-12 07:51

Is it possible to dynamically create a project through the Python API? I couldn't find much information in the documentation. If not, are there any other tools I can use to programmatically create projects?

Thanks,
Dave

view message
Duplicate rows query
(1 response) fcf 2019-06-24 16:12

I am working off a list and trying to duplicate rows to allow editing of the duplicates. It is for an order book where people can re-order supplies, making changes to the previous orders as necessary. I am modeling the code after a bulk edit, but I am having trouble selecting data to be edited and inserted. Here is the bulk edit code:

                var url = LABKEY.ActionURL.buildURL('query', 'updateQueryRows.view', null, {
                       schemaName: dataRegion.schemaName,
                       'query.queryName': dataRegion.queryName,
                       dataRegionSelectionKey: dataRegion.selectionKey
                   });
                   var form = dataRegion.form;
                   console.log(typeof form);
                   if (form &amp;&amp; verifySelected.call(this, form, url, 'POST', 'rows')) {
                       submitForm(form);
                   }
                   return false;

I thought it would be appropriate to change updateQueryRows to some form of a select statement, but cannot get it to work. Is there a duplicate rows query function? Any ideas?

view message
XML Schema error on manual entry of dataset with NUMERIC datatype
(1 response) Georgia Mayfield 2019-06-24 15:10

Hello,

I got an XMLSchema error on implementing a dataset in LabKey running on Postgres 9.5 regarding the NUMERIC datatype. The dataset was implemented with a required column of type NUMERIC, without a precision or scale specified. This is a valid datatype is Postgresql, and according to the LabKey SQL documentation is a LabKey defined valid datatype.

Our users have specifically requested the numeric datatype as it allows both integer and decimal values without padding zeroes after the decimal point, unlike the INTEGER or DOUBLE datatypes, the concern being that padded zeroes may appear to add degrees of certainty to an assay result which may or may not be true.

The dataset is able to instantiate with the datatype fine, and bulk upload with both integer and decimal values completes successfully and can be repeated.

However, on single entry I get a error related to the type. I am able to load one record without error, and the second time I click on the INSERT button the attached error takes place. This happens regardless of whether or not I insert an integer or decimal In the NUMERIC column during single entry. Seems like single entry is treating the NUMERIC datatype like the INTEGER datatype, and bulk upload is handling it appropriately.

Thanks!

Best, GM

 single_entry_failure.png 
view message
Remove avatar field in user details
(2 responses) WayneH 2019-06-17 08:30

Good morning,
not sure if anyone else has had this issue or question but we wanted to remove the avatar field from the user profile/user details view for a project and can't seem to find a way to do so.. The field is hidden in the default user view but this seems to have no impact on what shows when users edit their profile..

We welcome any ideas..

Thanks,

view message
Row not updating using updateRows()
(1 response) la27 2019-06-05 09:38
Hello,

I have Java script code that says this:

 LABKEY.Query.updateRows({
        schemaName:"lists",
        queryName :"Reagent Requests",
        rows: [{"Key": 3,
            "ClientId": "123",
        }]
    });

I am trying to update the Reageant Requests Tutorial Form's row 3's cell named ClientId with 123. I have made sure the keyname is Key but it will not update. It gives me "existing row not found." I put this function in the submitRequest() function found in the tutorial code.

   function submitRequest() {

        // Insert form data into the list.
       LABKEY.Query.insertRows({
           schemaName: 'lists',
           queryName: 'Reagent Requests',
           rowDataArray: [{
               "Name": document.ReagentReqForm.DisplayName.value,
               "Email": document.ReagentReqForm.Email.value,
               "UserID": document.ReagentReqForm.UserID.value,
               "Reagent": document.ReagentReqForm.Reagent.value,
               "Quantity": parseInt(document.ReagentReqForm.Quantity.value),
               "Date": new Date(),
               "Comments": document.ReagentReqForm.Comments.value,
               "Fulfilled": 'false'
           }],
           success: function(data) {
               // The set of URL parameters.
               var params = {
                   "name": 'confirmation', // The destination wiki page. The name of this parameter is not arbitrary.
                   "userid": LABKEY.Security.currentUser.id // The name of this parameter is arbitrary.
               };

                // This changes the page after building the URL. Note that the wiki page destination name is set in params.
               var wikiURL = LABKEY.ActionURL.buildURL("wiki", "page", LABKEY.ActionURL.getContainer(), params);
               window.location = wikiURL;
           }
       });
   
    LABKEY.Query.updateRows({
        schemaName:"lists",
        queryName :"Reagent Requests",
        rows: [{"Key": "3",
            "ClientId": "123",
               }]
               });
               
}


 </script>
view message
Scheduled Maintenance: artifactory.labkey.com Friday May 31, 2019 7 AM - 10 AM PDT
(1 response) stuartm 2019-05-30 11:40

We will be performing scheduled maintenance on LabKey's artifactory server ( https://artifactory.labkey.com/ ) on Friday May 31 2019 between 7AM and 10 AM PDT.

This will affect build artifacts during this maintenance period.

While Artifactory is unavailable, you should use the --offline flag for gradle when building.

We are performing this maintenance to install the latest security patches for Artifactory and its underlying operating system.

view message
Git Migration: Test and customModules
Trey 2019-05-29 14:59

We just finished the next step in our effort to migrate our source code from SVN to Git. The previous step was the creation of the platform and commonAssays repositories.

This time, we are migrating our central automated test code (from server/test) and all of the modules from server/customModules. The bulk of this change happed in SVN revision 63845.

Steps for updating your local enlistment to the new structure:

  1. Before syncing SVN, create a patch with any pending changes to server/test, server/customModules, externalModules/onprcEHRModules, externalModules/maccoss, or sampledata/qc
  2. Get rid of the dependencies.txt files that are generated in some of the resources/credits directories for modules that have moved. You can do this manually or with the gradle command: './gradlew cleanWriteDependenciesList'
  3. Do an SVN update
    • You may encounter tree conflicts if you skipped the previous step. Delete the directories manually and resolve the tree conflicts to continue.
  4. Clone 'https://github.com/LabKey/testAutomation.git' into the 'server' directory
    • Optional - only necessary if you wish to run automated tests
  5. Clone any, all, or none of the new module repositories into 'server/modules'
  6. Update any customizations to your settings.gradle file to use the new module locations
view message
500: Unexpected server error when deleting folders
(2 responses) eva pujadas 2019-05-24 07:31

We are running LabKey 18.3 and have realized that project users (non site admin users), users with "Project Administrator" and "Folder Administrator" can not delete the folders (or sub-folders) which were created by themselves.

That is the error message:

500: Unexpected server error

java.lang.NullPointerException
at org.labkey.pipeline.api.PipelineManager.purge(PipelineManager.java:240)
at org.labkey.pipeline.PipelineModule.containerDeleted(PipelineModule.java:237)
at org.labkey.api.data.ContainerManager.fireDeleteContainer(ContainerManager.java:2108)
at org.labkey.api.data.ContainerManager.delete(ContainerManager.java:1573)
at org.labkey.core.admin.AdminController$DeleteFolderAction.handlePost(AdminController.java:6823)
at org.labkey.core.admin.AdminController$DeleteFolderAction.handlePost(AdminController.java:6784)
at org.labkey.api.action.FormViewAction.handleRequest(FormViewAction.java:101)
at org.labkey.api.action.FormViewAction.handleRequest(FormViewAction.java:80)
at org.labkey.api.action.BaseViewAction.handleRequest(BaseViewAction.java:177)
at org.labkey.api.action.SpringActionController.handleRequest(SpringActionController.java:482)
at org.labkey.api.module.DefaultModule.dispatch(DefaultModule.java:1266)
at org.labkey.api.view.ViewServlet._service(ViewServlet.java:204)
at org.labkey.api.view.ViewServlet.service(ViewServlet.java:131)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.labkey.api.data.TransactionFilter.doFilter(TransactionFilter.java:38)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.labkey.api.module.ModuleLoader.doFilter(ModuleLoader.java:1241)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.labkey.api.security.AuthFilter.doFilter(AuthFilter.java:215)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.labkey.core.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:118)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:800)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1471)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
request attributes
LABKEY.OriginalURL = http://labkey.scicore.unibas.ch/labkey/Handschin Group/test3/admin-deleteFolder.view?
LABKEY.StartTime = 1558707176893
LABKEY.action = deleteFolder
org.springframework.web.servlet.DispatcherServlet.CONTEXT = Root WebApplicationContext: startup date [Thu Feb 21 09:56:07 CET 2019]; parent: Root WebApplicationContext
LABKEY.controller = admin
LABKEY.Counter = 0
org.labkey.api.util.ExceptionUtil$exception = java.lang.NullPointerException
X-LABKEY-CSRF = 5013174ea2e084d8241882c5d776835a
LABKEY.container = /Handschin Group/test3
LABKEY.RequestURL = /labkey/Handschin%20Group/test3/admin-deleteFolder.view?
LABKEY.OriginalURLHelper = /labkey/Handschin%20Group/test3/admin-deleteFolder.view?

core schema database configuration
Server URL jdbc:postgresql://127.0.0.1/labkey
Product Name PostgreSQL
Product Version 9.6.6
Driver Name PostgreSQL JDBC Driver
Driver Version 42.2.5

Do you have any idea about which could be the error cause?

Thank you very much for your support,
Eva

view message
Webpart permissions per user or group
(1 response) Matt V 2019-05-14 09:59

Hello,
I'm creating a few new webparts and we need to limit who can see them. The permissions matrix (https://www.labkey.org/Documentation/wiki-page.view?name=webpartPermissions) has usually done the trick, but in this case it would be incredibly useful (borderline necessary) to be able to limit their display to groups or even specific users if groups aren't an option.

Is there a way to do this, even at a code level?

view message
list permissions
(1 response) WayneH 2019-05-08 11:29

looking for some suggestions regarding how to configure permissions such that project users are able to submit/edit data in a list via a js coded wiki page. I want to give them editor permissions over data content but not over wiki or other content..

thanks,

view message
Assign and manage folder permissions for containers..
(2 responses) WayneH 2019-04-29 08:59

Hi Jon,
kind of in follow up to previous but hopefully asking the question a bit more clearly what we have is a list of about 1000 folders that are to received uploaded files from collaborators that they also need to have access to.. We have recreated these folders as containers and now need to assign permissions to control access to data to specific users. And hoping to find a way to have those users access their folder directly without seeing other extraneous data. (minimized view) We just want them to see the folders that we are pushing the users to. Basically we need to add group permissions to containers at scale using the javascript api for over 1000 folders/containers.
Just a project that I am working with someone on and trying to help them figure out how to manage these folders and data access via the js API. It's tough because we are dealing with such a large number of folders..

view message
WebDAV views
(1 response) WayneH 2019-04-10 10:05

Hey everyone, Is there any way to configure the labkey webDAV/webfiles client user view or functionality?
we would love to hide the folder tree from some users as well as the home folder in the tree in instances where we are showing the tree we would prefer to not show the home folder... Not at all familiar with this aspect so any help would be appreciated.

Thanks,

view message
Modules Restart
(1 response) marcia hon 2019-03-21 11:21

Hello,

Currently, when I have a new module, I end up restarting the whole LabKey application.

Is there a way for updating/adding modules without restarting the whole LabKey system?

Thanks,
Marcia

view message
Core migration to Git
(1 response) avital 2019-03-20 15:00

Hello -

LabKey is in the process of migrating our source code from SVN to GitHub. This Friday evening we will be migrating the server/ api, internal and modules directories to Git. This change will only affect SVN Trunk. After the migration the new repos will be found here: https://github.com/LabKey/platform, https://github.com/LabKey/commonassays. Once the migration is finished, we will announce the all-clear with final instructions on enlistment.

Thank you,
Avital

view message
Assign group permissions via js api
(2 responses) WayneH 2019-03-06 06:28

Good morning,

We see in the javascript API reference methods for creating containers, user accounts and groups and adding members to the groups.. We are unclear on how we set permissions/security policy on the groups we create in order to define roles and permissions for users in the project. Can you point us in the right direction for this.. Our aim is to manage groups and users profiles and permissions programmatically.

Thanks,

WH

view message
Error with Foreign Keys
(1 response) marcia hon 2019-02-28 11:44

This issue happens sometimes with different values, and I don't understand why this happens:

I have a custom table created via ETL. It has a column that references a lookup table.

When I put legitimate data into this column, I get the following error:

SqlExecutor.execute(); SQL []; ERROR: insert or update on table "samples_samplesnotreceived" violates foreign key constraint "fk_samsamnotrecdiagnosis1"
Detail: Key (diagnosis1)=(Hallucinogen Persisting Perception Disorder) is not present in table "diagnosis".; nested exception is org.postgresql.util.PSQLException: ERROR: insert or update on table "samples_samplesnotreceived" violates foreign key constraint "fk_samsamnotrecdiagnosis1"
Detail: Key (diagnosis1)=(Hallucinogen Persisting Perception Disorder) is not present in table "diagnosis".

"Hallucinogen Persisting Perception Disorder" is indeed in the "diagnosis" table but it is unable to recognize it.

Please let me know how to correct this.

Thanks,
Marcia

view message
Auditing Custom Tables
(5 responses) marcia hon 2019-02-28 10:34

Hello,

I created a custom Schema and corresponding custom tables.

How would I enable auditing of these tables? Is there some special commands in XML?

Thanks,
Marcia

view message
Name Checker Pipeline
(1 response) marcia hon 2019-02-28 10:13

Hello,

We have demographics tables with participantIDs that must have the following format: AAA##AAA####### .

Is it possible to create a pipeline that will verify that these naming conventions are followed?

Thanks,
Marcia

view message
Dev setup problem - jsp directory not found
(1 response) Will Holtz 2019-02-06 17:14

Hi,

I'm setting up a development machine, which I have done successfully several times before, but I keep running into this error (from catalina.log):

ERROR ExceptionUtil            2019-02-06 16:57:46,724     http-nio-8080-exec-1 : Unhandled exception: 500: Unexpected server error
javac: directory not found: /Users/wholtz/labkey/release18.3/build/modules/core/classes/java/jsp
Usage: javac <options> <source files>
use -help for a list of possible options

INFO  SqlScriptManager         2019-02-06 16:57:46,725           Module Upgrade : start running script : ms2-0.00-16.10.sql
ERROR ExceptionUtil            2019-02-06 16:57:46,734     http-nio-8080-exec-1 : Exception detected
javac: directory not found: /Users/wholtz/labkey/release18.3/build/modules/core/classes/java/jsp
Usage: javac <options> <source files>
use -help for a list of possible options


The full catalina.log is attached. If I create the missing jsp directory, this process gets further but stops whenever another module tries to display jsp.

I'm running:
Labkey 18.3
Apache Tomcat 8.5.37
Mac OS X 10.14.3
Oracle JDK 1.8.0_191-b12
Postgres 10.4

any ideas would be appreciated.

thanks,
-Will

 catalina.out 
view message
Labkey Server on development environment is not working
(1 response) dhanya sathyan 2019-02-01 14:41

I have been following the instructions on the Labkey website https://www.labkey.org/Documentation/wiki-page.view?name=devMachine accurately to set up my development environment. I also might have to tell you the Build from gradlew worked to completion showing me no errors. But after deploying it into Tomcat, the Lab key server shows the below error when we browse to : http://localhost:8080/labkey .

Configuration Error Detected at LabKey Server Startup
This server does not appear to be compiled for production mode
There is a problem with your configuration. Please contact your organization's server administrator for assistance or visit the LabKey Support Portal to view additional support options.
org.labkey.api.util.ConfigurationException: This server does not appear to be compiled for production mode
at org.labkey.api.module.ModuleLoader.verifyProductionModeMatchesBuild(ModuleLoader.java:476)
at org.labkey.api.module.ModuleLoader.doInit(ModuleLoader.java:344)
at org.labkey.api.module.ModuleLoader.init(ModuleLoader.java:249)
at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:285)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:266)
at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:108)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4657)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5304)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:754)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:730)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734)
at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:629)
at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1839)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:834)

So, then I build the code in production mode, which also ran smoothly . But again, after deploying it into Tomcat, the Lab key server shows the below error when we browse to : http://localhost:8080/labkey :

500: Unexpected server error. If contacting support regarding this error, please refer to error code: 2M8ESF
org.labkey.jsp.compiled.org.labkey.core.login.setPassword_jsp
java.lang.ClassNotFoundException: org.labkey.jsp.compiled.org.labkey.core.login.setPassword_jsp
at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:471)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:588)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
at org.labkey.api.jsp.JspClassLoader.loadClass(JspClassLoader.java:71)
at org.labkey.api.jsp.JspLoader.createPage(JspLoader.java:62)
at org.labkey.api.view.JspView.<init>(JspView.java:90)
at org.labkey.api.view.JspView.<init>(JspView.java:99)
at org.labkey.core.login.LoginController$AbstractSetPasswordAction.getView(LoginController.java:1490)
at org.labkey.core.login.LoginController$InitialUserAction.getView(LoginController.java:1785)

Your help in this regard is much appreciated.

view message
Resources to learn survey implementation?
(1 response) bjorn vandewalle 2019-01-30 05:37

Hello,

I am trying to better understand the different ways surveys can be implemented in LabKey Server. Besides the Electronic Data Capture documentation available on the site, are there any other resources available to better understand the mechanics behind the surveys, especially related to the JSON coding and its links to lists?

Kind regards,

Björn Vandewalle

view message
Labkey Teamcity Server Scheduled Maintenance Sunday January 20th, 2019 1300 PST
stuartm 2019-01-17 22:00

Hello,

We will be preforming scheduled maintenance on the LabKey TeamCity build server this Sunday January 20th starting at 13:00 PST.

During this maintenance window the TeamCity build queue will be paused and no builds will be processed.

We expect this maintenance work to take approximately 3 to 4 hours.

view message
Custom Demographics Table
(1 response) marcia hon 2019-01-08 08:29

Hello,

I have built a custom demographics table in LabKey using ETL scripts.

I would like to leverage the demographics option that populates participants into study.participants.

How could I make my custom demographics table automatically populate study.participants?

Thanks,
Marcia

view message
Running into ClassNotFoundException for Dev Labkey setup
(1 response) Manoj Ramakrishnan 2019-01-07 10:30

Hi,
I am following the setup as provided by this link :https://www.labkey.org/Documentation/wiki-page.view?name=devMachine

When I start the LabKey Dev start config I am running into this error. Any help is appreciated. AS notes I am on Tomcat, 8.5.37 and OpenJDK 11.

Thanks,
Manoj

Jan 06, 2019 7:45:24 PM org.apache.catalina.startup.HostConfig deployDescriptor
INFO: Deploying configuration descriptor [/Users/mramakrishnan/Tomcat/Labkey/8.5.37/libexec/conf/Catalina/localhost/labkey.xml]
Jan 06, 2019 7:45:24 PM org.apache.catalina.loader.WebappLoader startInternal
SEVERE: LifecycleException
java.lang.ClassNotFoundException: org.labkey.bootstrap.LabKeyBootstrapClassLoader
at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:471)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:588)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:315)
at org.apache.catalina.loader.WebappLoader.createClassLoader(WebappLoader.java:507)
at org.apache.catalina.loader.WebappLoader.startInternal(WebappLoader.java:392)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5124)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:754)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:730)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734)
at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:629)
at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1839)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:834)

Jan 06, 2019 7:45:24 PM org.apache.catalina.core.ContainerBase addChildInternal
SEVERE: ContainerBase.addChild: start:
org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/labkey]]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:754)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:730)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734)
at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:629)
at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1839)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [WebappLoader[/labkey]]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5124)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
... 10 more
Caused by: org.apache.catalina.LifecycleException: start:
at org.apache.catalina.loader.WebappLoader.startInternal(WebappLoader.java:417)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
... 12 more
Caused by: java.lang.ClassNotFoundException: org.labkey.bootstrap.LabKeyBootstrapClassLoader

 labkey.xml 
view message
Custom Tables built via XML modules
(1 response) marcia hon 2019-01-03 12:53

Hello,

I have several custom tables that each have a column called "participantid".

Is it possible to link these tables by participantid?

Thanks,
Marcia

view message
Editable Queries
(1 response) marcia hon 2019-01-03 09:18

Hello,

Is it possible to create queries whose values are editable?

Thanks,
Marcia

view message
Lookup Dropdown Widget for Dataset to Dataset FKs
(1 response) Matt V 2018-12-12 15:47

Hello,
I have a handful of datasets with FKs (lookups) out to lists and other datasets. On the insert/edit forms, the list lookups render as dropdown widgets with available options included. However, the dataset-->dataset lookups continue to render as plain text input boxes.

Is this expected behavior, or is there some way to force the dropdown widget type? I've played around with query.xml, the gui, and even manually added FKs to the table with no luck.

Thanks.

view message
Selenium 3 upgrade
(1 response) Trey 2018-12-10 14:12

LabKey uses Selenium to drive our functional UI test automation. The LabKey test team has been migrating our test code to Selenium 3 over the past few months. This will, among other things, allow our tests to run tests against more current releases of Firefox and protect us from incompatibilities with new versions of Java.

We've fixed most of the major issues we've encountered and are close to the home stretch. We have been performing the migration in a separate branch and we will merge our changes back to trunk on Tuesday, December 11.

This update is almost exclusively to test code and the following steps are necessary only if you currently run UI tests locally against trunk with Firefox 45. Selenium tests running under Chrome should continue to work, though there may be new failures due to minor performance variation in the newer version of Selenium. JavaScript test frameworks such as Jest should be unaffected.

After the merge

  • Install a current version of Firefox if you don't have it. We've been validating with 62.0.2 on TeamCity. Geckodriver claims to support 57+ but we hit some pretty significant issues with versions as late as 60. We generally recommend using the latest ESR release but there will not be a reliable (for testing) ESR release until next July.
  • Make sure server/test/test.properties is up-to-date
    • selenium.firefox.binary should point at a new version of Firefox instead of ESR 45
    • Make sure webtest.webdriver.logging=false. You'll get an unreasonable amount of logging if that isn't set
    • Run a test and make sure it works for you. Nothing in-depth, just make sure it works.

Please bear with us as we iron out the last few kinks over the next couple of weeks. Let us know immediately if you have any concerns or if you have any difficulty after the merge.

view message
LabKey Artifactory Maintenance 12/10/2018 7 AM PST - 10 AM PST
(1 response) stuartm 2018-12-10 07:05

Hello,

Hello,

We will be performing scheduled maintenance on LabKey's artifactory server ( https://artifactory.labkey.com/ ) on Monday 12/10 between 7AM and 10 AM.

This will affect build artifacts during this maintenance period.

While Artifactory is unavailable, you should use the --offline flag for gradle when building.

We are performing this maintenance to install the latest security patches for Artifactory and its underlying operating system.

view message
Linking between custom tables
(1 response) marcia hon 2018-12-03 12:45

Hello,

I have table_a with column "participant"

and

table_b with column "participant".

I would like for these columns to be linked.

I know I can do foreign/primary key.

In the attached screenshot, I would like the Participantid to link both tables.

In my second screenshot, this is what I would like to have. A location with all the links.

I look forward to your expertise.

Thanks,

 test.png  test1.png 
view message
Batch creation of file sets
(1 response) WayneH 2018-11-26 12:20

Hi everyone

we have a file repository that will have a somewhat complicated structure because it is meant to facilitate incoming data from multiple sites and we would like to create fillesets for each of these so that we can expose only specific folders to users via the file web part. Creating these individually is doable but it would be much more preferable to create some automated/batch scripted process to generate these? Is there some way to do this in labkey? I don't see any where in the schema that we can list/add/update fillesets... that might be a path to a solution?

thanks,

Wayne H

view message
File Repository
(1 response) marcia hon 2018-11-21 11:11

Hello,

With regards to the File Repository, in your documentation, you state:

A launching point for structured data files like Excel files, that can be imported into the LabKey Server database for more advanced analysis.

Please could you clarify what this means?

Does it mean that I can create datasets that link to these excel files on the fly? How does this work?

Thanks,
Marcia

view message
Trunk builds now require Java 11 (or 12)
adam 2018-11-20 08:27

We made a change yesterday so that trunk now requires Java 11, no longer supporting Java 8. This is in preparation for our 19.1 release, which will support only Java 11 and 12. If you build LabKey Server from trunk, or build Java modules that need to run on trunk builds, you will need to install Java 11 on your development machine: https://jdk.java.net/11 You will also need to upgrade test, staging, and production servers before deploying any post-18.3 build. You can run Java 11 and 8 side-by-side in case you still need to run 18.2 or older versions.

For more information, see the 18.3 Release Notes, our Supported Technologies page, or this post on the LabKey blog:

https://www.labkey.com/the-java-shake-up-what-it-means-to-labkey-and-you/

Let us know if you have any questions.

Thanks,
Adam

view message
Filter By Group in SQL Query Views
(1 response) Matt V 2018-11-16 14:09

We're currently using the "Filter by Group" functionality (https://www.labkey.org/Documentation/wiki-page.view?name=filteringData#group) for datasets and it's great. However, we have a few external schema sql queries with qviews that combine multiple datasets and would like to be able to use this same functionality.

I created a <module>/resources/queries/myview.query.xml file, the corresponding qview, and attempted to add the "filter" option or simply set includeStandardButtons to true, but it appears "Filter" doesn't exist for views.

Is this correct or is there a way to replicate/enable that functionality for queries?

Thanks!

view message
16.3 to 18.2 Upgrade - Issue Tracker Differences
(2 responses) slatour 2018-11-12 07:08

Hi LabKey,

When running a User acceptance test after upgrading to 18.2 from 16.3 we noticed that the issue tracker is no longer populated from all project users. We noticed that the assigned users list is populated only if a user belongs to a project group AND has an editor or higher role. What was the reasoning behind this change? As of current, some users are editors but since they do not belong to a specific project group we have added them ad hoc in an editor role, therefore they will no longer be populated in the assigned list for issue tracking in version 18.2.

Please advise,

-Sara

view message
Default value for boolean list field can not be set to false
(2 responses) eva pujadas 2018-11-12 05:12

Dear LabKey,

We are running LabKey 18.2.
We have observed that it is not possible to set a boolean type field to default value "false" through the "Edit Design" menu.

To reproduce this bug:

  • from a list click "Design"
  • "Edit design"
  • Select the "Boolean" type field and go the the "Advanced" tab
  • In "Default Value" select "SET VALUE"
  • Enable the checkbox for the boolean field and save
    As a result the default value for this boolean field will be set to "true", instead of "[none]", as expected.

But, if you want to have a default value "false", repeating the steps and setting it to "false" will not work, it will permanently stay to default value "true".

Thanks for your support,
Eva

view message
Revoke delete sample set permissions
(1 response) eva pujadas 2018-11-01 07:15

Dear LabKey developers,

Is there a way to disable the "Delete Set" button in the "Sample Set Properties" view (see attached screenshot) or to revoke delete permissions to a user while still allowing him/her to edit sample sets?

Thanks in advance,
Eva

 sample_set_revoke_delete_permissions.png 
view message
401 unauthorized error... using deleterows query
(6 responses) WayneH 2018-10-31 09:40

Good morning,

we have been testing a workflow that we have currently running on a project in 16.3 pro+ and tested same on 17.3 community now testing on 18.2 community. The process here includes a perl script that reads existing data in a dataset (specifically the LSID) and is supposed to use that to delete the rows of data in that dataset via deleterows api function and then write new data to that table. We are able to read the data no problem to get the LSID but when we try to delete the rows we get a 401 error. If we delete the data manually we get a 401 error when we try to write the new data to the table... This worked in testing v17.3.. Not sure why we are not getting it to work now.. Is there any change in the api in v 18 that may be causing this? Or are we missing some detail..?

thanks

Wayne H

view message
Email notification when adding an existing user to a new project
(1 response) sofia g 2018-10-30 03:08

Hello all,

I know there is the possibility to add a new person to a project, and send an email notifying them about it, by adding them as new members to a group and including a message in folder permissions. However, for users that are already existing, no email is sent when they are added to the new goup.

I was wondering if there is such a functionality, to inform users by email whenever they are added to a new project. Is this something you would consider developing?

Best regards,
Sofia

view message
Python API - How do we view the names of all the Datasets in a given study using an API call?
(1 response) Chidi 2018-10-29 08:27

How do we view the names of all the datasets in a study? Thank you very much.

view message
SQL javascript API How to quickly delete all rows in a list and/or create temporary tables/lists to do SQL Operations
(4 responses) dabaker3 2018-10-24 08:07

• We are using Javascript + SQL
• We are trying to check for duplicates (with a algorithm since we have paired data). Then we want add the data if certain columns changed data for a give ID (ID Column, not unique column)
••• We do not want to update the rows, if the row data changes we want to create a new row.

Here are the questions:
1.). Is there a way to use drop/create temp tables and then remove these temp tables?
• Here are the operations I would typically use: CREATE, INSERT, DELETE, DROP, RANK which are all unavailable since they are not read only.
2.) Is there a way to direct insert rows from one table/list to another without first downloading the data?
3.) Is there a way to delete all rows of a table in Javascript quickly? It takes me 29 seconds to delete 3000 rows using the deleteRows() javascript API

Here is the current process:
1.) I am selecting all keys from the temp table (pre-made as a list) and downloading them the script as a data object using labkey.query.selectRows(): <1 seconds (also can have a problem with multiple users accessing the temp table at the same time)
2.) Deleting all rows using labkey.query.deleteRows()
3. ) Inserting the new data as a labkey.query.importData() JSON row object (~3000 rows x 14 columns, 328kb as a text file)
4.) SQL Operation to find duplicates (Based on stored queries/views)
5.) Get new/unique rows and download to javascript
6.) Insert new rows

view message
Schemas directory moved - action required
Susan Hert 2018-10-22 07:27

With r60757 in trunk, the schemas directory (<labkeyRoot>/schemas) has been moved into the api module (<labkeyRoot>/server/api/schemas). This consolidation makes for one less special part of the build, which should allow a bit of clean up in a later release of the gradle plugins.

To avoid having two jars for these XSDs if you are building from source, you will need to do some special cleaning. For those who prefer a ham-fisted approach, you can accomplish this with

  gradlew cleanBuild
   gradlew deployApp

and a little patience. (And if you're picking up this change along with the update of the Gradle Plugins version, which happened with r60731, you'll essentially be rebuilding everything anyway, so you might as well use this option.)

If you prefer a more delicate cleaning, you can do:

  rm -r build/modules/schemas/
   rm build/deploy/labkeyWebapp/WEB-INF/lib/schemas-18.3-SNAPSHOT-schemas.jar 
   gradlew deployApp

In either case, you'll want to follow this cleaning with a Gradle refresh in IntelliJ so it will pick up the new location of the XSDs in its build as well.

Thanks!

Susan

view message
Insert User Data
(1 response) WayneH 2018-10-09 06:40
Is it possible to bulk insert user data to the core user schema?

thanks

Wayne H
view message
Announcement: DataIntegration module move from svn to git
tgaluhn 2018-09-25 16:26

As previously announced, in the upcoming 18.3 release of LabKey Server, the DataIntegration (ETL) module will be a premium feature to support LabKey continued investment in its development. To support this, effective with SVN trunk commit r60372, the module has been moved from LabKey’s SVN server into a private, LabKey-managed GitHub repository.

This will impact you if:

  • You have a local development box
  • You are pulling source code from the trunk in SVN, or will be pulling source code for 18.3 or subsequent releases
  • And at least one of the following is true on your development machine:
    • You are writing ETL xml definitions in a module
    • You are running ETLs defined by any module
    • You are writing user defined ETLs in the application

If you will be affected by this change and have not already been contacted, or if you have any other questions or concerns, please contact your LabKey representative.

Thank you!

view message
A helper for using the python API
Brian Connolly (Proteinms.net) 2018-09-20 16:10

One of the big annoyances when using it the LabKey python api is that I need to define the URL for the LabKey server as a bunch of different variables. This makes it hard to write scripts/tools for non programmers to use.

This problem has gotten so annoying lately that I wrote a little function to help me The function simply takes a LabKey URL and breaks it into it's component parts. It has been so useful I figured I would share it.

The function which will take a URL and

  1. Check if it for a LabKey Server
  2. Rip the URL apart and find the hostname, port, protocol, context path and container path.
def read_url(url):
    """
    Break apart URL provided into protocol, hostname and context path
    :param url: LabKey Server url
    """
    url_config = {}

    # Parse the url
    o = urlparse(url)

    # Verify URL is a URL
    if not o.scheme:
        raise ExitCommandWithMessage("URL specified is not valid. Please enter valid URL")
    if not o.netloc:
        raise ExitCommandWithMessage("URL specified is not valid. Please enter valid URL")

    # Check if URL includes a context path
    test_url = o.scheme + '://' + o.netloc + '/project-getContainers.view'
    response = requests.get(test_url)
    if response.status_code == 200:
        context_path = None
    else:
        context_path = o.path.split('/')[1]
        test_url = o.scheme + '://' + o.netloc + '/' + context_path + '/project-getContainers.view'
        response = requests.get(test_url)
        if response.status_code != 200:
            raise ExitCommandWithMessage("URL specified is not running a LabKey Server. Please enter valid URL")

    # Determine if URL includes a container path
    # This assumes using new style LabKey URLs
    if context_path is None:
        if len(o.path.split('/')) < 3:
            # The url does not contain a container path
            url_config['container_path'] = None
        else:
            url_config['container_path'] = o.path.rsplit('/', 1)[0]
    else:
        urlpath = o.path.split('/', maxsplit=2)
        if len(urlpath) < 4:
            # The url does not contain a container path
            url_config['container_path'] = None
        else:
            url_config['container_path'] = urlpath[2].rsplit('/', 1).join('/')

    # Create output for function
    url_config['labkey_server'] = o.netloc
    url_config['context_path'] = context_path
    if o.scheme == 'http':
        url_config['use_ssl'] = False
        url_config['verify_ssl'] = False
        url_config['url'] = "http://" + o.netloc
    elif o.scheme == 'https':
        url_config['use_ssl'] = True
        url_config['verify_ssl'] = True
        url_config['url'] = "https://" + o.netloc
    else:
        raise ExitCommandWithMessage("URL specified is not valid. Please enter valid URL")

    return url_config

To use this function, all you need to do is

from labkey.utils import create_server_context
import urlparse

labkey_url = "https://www.labkey.org/home/Developer/issues/project-begin.view?"
# Validate LabKey Server URL break into component parts
url_config = read_url(labkey_url)
server_context = create_server_context(url_config['labkey_server'],
                                       url_config['container_path'],
                                       url_config['context_path'],
                                       use_ssl=url_config['use_ssl'],
                                       verify_ssl=url_config['verify_ssl']
                                       )
....


I hope this helps.

Brian

PS: I also have some code that can be used to access the server using username/password (via basic auth) instead of relying on a netrc file. I would be happy to share if anyone is interested.

view message
Setting Audit Detail Level
(2 responses) marcia hon 2018-09-17 10:40

Hello,

I created a custom table using modules.

How can I enable auditing of these custom tables.

Thanks,
Marcia

view message
Audit - Granularity
(2 responses) marcia hon 2018-09-12 10:32

Hi,

I would like to ask you if in the Audit Log, we can see what records/variables were added/updated/deleted?

I need to have this very fine granularity.

Thanks,
Marcia

view message
Editing more than one record at a time
(1 response) marcia hon 2018-09-10 09:24

Hello,

In my use-case, we would like the option whereby more than one record is updated at the same time.

Please let me know how this may be achieved as it is a crucial ability in our LabKey project.

Thanks,
Marcia

view message
Joining tables based on Subject Id and Visits/Sequence
(3 responses) Edward 2018-09-05 05:01

Hi,

I have a visit based study where there are multiple observations for a specific subject per visit. I have defined a sequence map (e.g., 1-10 sequence belongs to visit 1). Is there a way to create a data grid by joining the tables not based on visits sequence but by subject ids and any other column?

The reason is because if I try to join the two table where in one table I repeated visits and the second table has only one visit per subject, then the resulting grid has only visit joined and all the other rows are appended as if they belong to a different visit, which is not true.

In database terminology, I am talking about an outer merge of two tables based on subject id and visit ( not by subject id and visit sequence number).
Can anybody help here?

view message
Charts not displaying correctly
(3 responses) bront 2018-09-04 09:44

hi,

After upgrading to 18.2, I notice that charts aren't displaying correctly. Oddly, the data is is being displayed, but there are no graphics representing the bars or pieces of the pie charts (see attachment).

Here are the required files that worked prior to the upgrade:

"clientapi/ext4/Util.js",
"clientapi/ext4/data/Reader.js",
"clientapi/ext4/data/Proxy.js",
"clientapi/ext4/data/Store.js",

Here are the files I am requiring additionally in my efforts to fix the issue:

"vischart.min.js",
"vis/genericChart/genericChartHelper.js",
"vis/lib/crossfilter-1.3.11.min.js",
"vis/vis.min.js"

I am using the following to create the charts:

Ext4.create('Ext4.chart.Chart', { })

Am I missing a CSS file? Should I be using LABKEY.vis or LABKEY.chart? Something else?

Thanks for your help.

bront

 chart_issue.png 
view message
Tables - Change Values for Multiple Rows
(3 responses) marcia hon 2018-08-15 08:31

Hello,

I have a dataset/assay/list table.

There are multiple rows.

I would like to change the value for one of the columns for all of the rows.

I know that I can do this on a row-by-row basis using "edit".

However, is it possible to do this at the same time for multiple rows?

Thanks,
Marcia

view message
ExecutingSelector; bad SQL grammar []; nested exception is org.postgresql.util.PSQLException: ERROR: relation "exp.ObjectPropertiesView" does not exist Position: 714
(1 response) marcia hon 2018-08-10 11:04

Hello,

Another error... how can i solve this?

An unexpected error occurred
ExecutingSelector; bad SQL grammar []; nested exception is org.postgresql.util.PSQLException: ERROR: relation "exp.ObjectPropertiesView" does not exist Position: 714

org.springframework.jdbc.BadSqlGrammarException: ExecutingSelector; bad SQL grammar []; nested exception is org.postgresql.util.PSQLException: ERROR: relation "exp.ObjectPropertiesView" does not exist
Position: 714
at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:231)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)
at org.labkey.api.data.ExceptionFramework$1.translate(ExceptionFramework.java:37)
at org.labkey.api.data.ExceptionFramework$1.translate(ExceptionFramework.java:31)
at org.labkey.api.data.SqlExecutingSelector$ExecutingResultSetFactory.handleSqlException(SqlExecutingSelector.java:450)
at org.labkey.api.data.BaseSelector.handleResultSet(BaseSelector.java:280)
at org.labkey.api.data.BaseSelector.getArrayList(BaseSelector.java:102)
at org.labkey.api.data.BaseSelector.getArrayList(BaseSelector.java:97)
at org.labkey.api.exp.OntologyManager.getPropertyObjects(OntologyManager.java:609)
at org.labkey.api.reports.model.ReportPropsManager.getPropertyValue(ReportPropsManager.java:175)
at org.labkey.api.reports.model.ReportPropsManager.getProperties(ReportPropsManager.java:243)
at org.labkey.api.reports.report.ReportDescriptor.initProperties(ReportDescriptor.java:382)
at org.labkey.query.reports.ReportServiceImpl._getInstance(ReportServiceImpl.java:436)
at org.labkey.query.reports.DatabaseReportCache$ReportCollections.lambda$new$0(DatabaseReportCache.java:63)
at org.labkey.api.data.BaseSelector.lambda$forEach$3(BaseSelector.java:314)
at org.labkey.api.data.BaseSelector.lambda$forEachMap$1(BaseSelector.java:232)
at org.labkey.api.data.BaseSelector.handleResultSet(BaseSelector.java:263)
at org.labkey.api.data.BaseSelector.forEachMap(BaseSelector.java:226)
at org.labkey.api.data.BaseSelector.forEach(BaseSelector.java:316)
at org.labkey.api.data.BaseSelector.forEach(BaseSelector.java:295)
at org.labkey.query.reports.DatabaseReportCache$ReportCollections.<init>(DatabaseReportCache.java:62)
at org.labkey.query.reports.DatabaseReportCache$ReportCollections.<init>(DatabaseReportCache.java:47)
at org.labkey.query.reports.DatabaseReportCache.lambda$static$0(DatabaseReportCache.java:45)
at org.labkey.api.cache.BlockingCache.get(BlockingCache.java:144)
at org.labkey.api.cache.BlockingCache.get(BlockingCache.java:81)
at org.labkey.api.cache.BlockingCache.get(BlockingCache.java:203)
at org.labkey.query.reports.DatabaseReportCache.getReportsByReportKey(DatabaseReportCache.java:122)
at org.labkey.query.reports.ReportServiceImpl.getReports(ReportServiceImpl.java:551)
at org.labkey.api.reports.report.view.ReportUtil.getReportsIncludingInherited(ReportUtil.java:330)
at org.labkey.api.query.QueryView.addReportViews(QueryView.java:1650)
at org.labkey.api.query.QueryView.createReportButton(QueryView.java:1386)
at org.labkey.study.assay.query.AssayListPortalView.populateButtonBar(AssayListPortalView.java:59)
at org.labkey.api.query.QueryView.setupDataView(QueryView.java:2002)
at org.labkey.api.query.QueryView.createDataView(QueryView.java:1990)
at org.labkey.study.assay.query.AssayListQueryView.createDataView(AssayListQueryView.java:95)
at org.labkey.study.assay.query.AssayListPortalView.createDataView(AssayListPortalView.java:51)
at org.labkey.api.query.QueryView.renderDataRegion(QueryView.java:2101)
at org.labkey.api.query.QueryView.renderView(QueryView.java:1854)
at org.labkey.api.view.WebPartView.renderInternal(WebPartView.java:370)
at org.labkey.api.view.HttpView.render(HttpView.java:136)
at org.labkey.api.view.HttpView.render(HttpView.java:121)
at org.labkey.api.view.HttpView.include(HttpView.java:516)
at org.labkey.api.view.HttpView.include(HttpView.java:493)
at org.labkey.api.view.HttpView.include(HttpView.java:481)
at org.labkey.api.view.VBox.renderView(VBox.java:80)
at org.labkey.api.view.WebPartView.renderInternal(WebPartView.java:370)
at org.labkey.api.view.HttpView.render(HttpView.java:136)
at org.labkey.api.view.HttpView.render(HttpView.java:121)
at org.labkey.api.view.HttpView.include(HttpView.java:516)
at org.labkey.api.view.HttpView.include(HttpView.java:493)
at org.labkey.api.view.HttpView.include(HttpView.java:481)
at org.labkey.api.view.VBox.renderView(VBox.java:80)
at org.labkey.api.view.WebPartView.renderInternal(WebPartView.java:370)
at org.labkey.api.view.HttpView.render(HttpView.java:136)
at org.labkey.api.view.HttpView.render(HttpView.java:121)
at org.labkey.api.view.HttpView.include(HttpView.java:516)
at org.labkey.api.view.HttpView.include(HttpView.java:493)
at org.labkey.jsp.compiled.org.labkey.api.view.template.HomeTemplate_jsp._jspService(HomeTemplate_jsp.java:224)
at org.labkey.api.view.JspView.renderView(JspView.java:168)
at org.labkey.api.view.WebPartView.renderInternal(WebPartView.java:370)
at org.labkey.api.view.HttpView.render(HttpView.java:136)
at org.labkey.api.view.HttpView.render(HttpView.java:121)
at org.labkey.api.action.SpringActionController.renderInTemplate(SpringActionController.java:528)
at org.labkey.api.action.SpringActionController.handleRequest(SpringActionController.java:423)
at org.labkey.api.module.DefaultModule.dispatch(DefaultModule.java:1208)
at org.labkey.api.view.ViewServlet._service(ViewServlet.java:190)
at org.labkey.api.view.ViewServlet.service(ViewServlet.java:124)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.labkey.api.data.TransactionFilter.doFilter(TransactionFilter.java:38)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.labkey.core.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:118)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.labkey.api.module.ModuleLoader.doFilter(ModuleLoader.java:1144)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.labkey.api.security.AuthFilter.doFilter(AuthFilter.java:206)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:528)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1100)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:687)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1520)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1476)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
Caused by: org.postgresql.util.PSQLException: ERROR: relation "exp.ObjectPropertiesView" does not exist
Position: 714
at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2453)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2153)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:286)
at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:432)
at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:358)
at org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:171)
at org.postgresql.jdbc.PgPreparedStatement.executeQuery(PgPreparedStatement.java:119)
at org.apache.tomcat.dbcp.dbcp2.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:82)
at org.apache.tomcat.dbcp.dbcp2.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:82)
at org.labkey.api.data.dialect.StatementWrapper.executeQuery(StatementWrapper.java:1157)
at org.labkey.api.data.SqlExecutingSelector$ExecutingResultSetFactory.executeQuery(SqlExecutingSelector.java:391)
at org.labkey.api.data.SqlExecutingSelector$ExecutingResultSetFactory.getResultSet(SqlExecutingSelector.java:331)
at org.labkey.api.data.BaseSelector.handleResultSet(BaseSelector.java:261)
... 95 more
DialectSQL = SELECT *
FROM (
SELECT
ObjectPropertiesView.ObjectId AS ObjectId,
ObjectPropertiesView.Container AS Container,
ObjectPropertiesView.ObjectURI AS ObjectURI,
ObjectPropertiesView.OwnerObjectId AS OwnerObjectId,
ObjectPropertiesView.name AS name,
ObjectPropertiesView.PropertyURI AS PropertyURI,
ObjectPropertiesView.RangeURI AS RangeURI,
ObjectPropertiesView.TypeTag AS TypeTag,
ObjectPropertiesView.FloatValue AS FloatValue,
ObjectPropertiesView.StringValue AS StringValue,
ObjectPropertiesView.DatetimeValue AS DatetimeValue,
ObjectPropertiesView.MvIndicator AS MvIndicator,
ObjectPropertiesView.PropertyId AS PropertyId,
ObjectPropertiesView.ConceptURI AS ConceptURI,
ObjectPropertiesView.Format AS Format
FROM exp."ObjectPropertiesView" ObjectPropertiesView ) x
WHERE (ObjectURI = ?) AND (Container = ?)

...

view message
ExecutingSelector; bad SQL grammar []; nested exception is org.postgresql.util.PSQLException: ERROR: relation "comm.Threads" does not exist Position: 681
(1 response) marcia hon 2018-08-10 10:54

Hello,

How is this error created? How can I fix it?

An unexpected error occurred
ExecutingSelector; bad SQL grammar []; nested exception is org.postgresql.util.PSQLException: ERROR: relation "comm.Threads" does not exist Position: 681

org.springframework.jdbc.BadSqlGrammarException: ExecutingSelector; bad SQL grammar []; nested exception is org.postgresql.util.PSQLException: ERROR: relation "comm.Threads" does not exist
Position: 681
at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:231)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)
at org.labkey.api.data.ExceptionFramework$1.translate(ExceptionFramework.java:37)
at org.labkey.api.data.ExceptionFramework$1.translate(ExceptionFramework.java:31)
at org.labkey.api.data.SqlExecutingSelector$ExecutingResultSetFactory.handleSqlException(SqlExecutingSelector.java:450)
at org.labkey.api.data.BaseSelector.handleResultSet(BaseSelector.java:280)
at org.labkey.api.data.BaseSelector.getArrayList(BaseSelector.java:102)
at org.labkey.api.data.BaseSelector.getArrayList(BaseSelector.java:97)
at org.labkey.announcements.model.AnnouncementManager.getAnnouncements(AnnouncementManager.java:115)
at org.labkey.announcements.AnnouncementsController$AnnouncementWebPart$MessagesBean.<init>(AnnouncementsController.java:2316)
at org.labkey.announcements.AnnouncementsController$AnnouncementWebPart$MessagesBean.<init>(AnnouncementsController.java:2306)
at org.labkey.announcements.AnnouncementsController$AnnouncementWebPart.<init>(AnnouncementsController.java:2255)
at org.labkey.announcements.AnnouncementsController$AnnouncementWebPart.<init>(AnnouncementsController.java:2286)
at org.labkey.announcements.AnnouncementsController$AnnoucementWebPartFactory.getWebPartView(AnnouncementsController.java:2348)
at org.labkey.api.view.Portal.getWebPartViewSafe(Portal.java:1208)
at org.labkey.api.view.Portal.populatePortalView(Portal.java:995)
at org.labkey.api.view.Portal.populatePortalView(Portal.java:959)
at org.labkey.core.portal.ProjectController$BeginAction.getView(ProjectController.java:327)
at org.labkey.core.portal.ProjectController$BeginAction.getView(ProjectController.java:280)
at org.labkey.api.action.SimpleViewAction.handleRequest(SimpleViewAction.java:80)
at org.labkey.api.action.BaseViewAction.handleRequest(BaseViewAction.java:177)
at org.labkey.api.action.SpringActionController.handleRequest(SpringActionController.java:415)
at org.labkey.api.module.DefaultModule.dispatch(DefaultModule.java:1208)
at org.labkey.api.view.ViewServlet._service(ViewServlet.java:190)
at org.labkey.api.view.ViewServlet.service(ViewServlet.java:124)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.labkey.api.data.TransactionFilter.doFilter(TransactionFilter.java:38)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.labkey.core.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:118)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.labkey.api.module.ModuleLoader.doFilter(ModuleLoader.java:1144)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.labkey.api.security.AuthFilter.doFilter(AuthFilter.java:206)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:528)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1100)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:687)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1520)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1476)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
Caused by: org.postgresql.util.PSQLException: ERROR: relation "comm.Threads" does not exist
Position: 681
at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2453)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2153)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:286)
at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:432)
at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:358)
at org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:171)
at org.postgresql.jdbc.PgPreparedStatement.executeQuery(PgPreparedStatement.java:119)
at org.apache.tomcat.dbcp.dbcp2.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:82)
at org.apache.tomcat.dbcp.dbcp2.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:82)
at org.labkey.api.data.dialect.StatementWrapper.executeQuery(StatementWrapper.java:1157)
at org.labkey.api.data.SqlExecutingSelector$ExecutingResultSetFactory.executeQuery(SqlExecutingSelector.java:391)
at org.labkey.api.data.SqlExecutingSelector$ExecutingResultSetFactory.getResultSet(SqlExecutingSelector.java:331)
at org.labkey.api.data.BaseSelector.handleResultSet(BaseSelector.java:261)
... 53 more
DialectSQL = SELECT *
FROM (
SELECT
Threads.RowId AS RowId,
Threads.EntityId AS EntityId,
Threads.CreatedBy AS CreatedBy,
Threads.Created AS Created,
Threads.ResponseCreatedBy AS ResponseCreatedBy,
Threads.ResponseCreated AS ResponseCreated,
Threads.AssignedTo AS AssignedTo,
Threads.Container AS Container,
Threads.Title AS Title,
Threads.Body AS Body,
Threads.RendererType AS RendererType,
Threads.Expires AS Expires,
Threads.Status AS Status,
Threads.LatestId AS LatestId,
Threads.discussionsrcidentifier AS discussionsrcidentifier,
Threads.discussionsrcurl AS discussionsrcurl,
Threads.ResponseCount AS ResponseCount,
Threads.Modified AS Modified,
Threads.LastIndexed AS LastIndexed
FROM comm."Threads" Threads ) x
WHERE (Container = ?)
ORDER BY Created DESC
LIMIT 101

...

view message
Downloading Files from Labkey Server
(1 response) jin 2018-08-08 16:30

I'm wondering if there's a way to download files from Labkey using a shell script or something similar. Is it possible using the WebDav functionality of Labkey?

Thanks!

view message
Full text search over hard table
(3 responses) Will Holtz 2018-08-06 17:19

Is there a mechanism I can utilize in a file-based module to get a hard tabled indexed by the full-text search indexer?

thanks,
-Will

view message
RLabkey: makeFilter on non-existant column returns all values
(1 response) Will Holtz 2018-08-06 13:52

Hi,

I was surprised to see that the following R code returns the total number of users and not zero:

library(Rlabkey)
nrow(labkey.selectRows(
baseUrl="http://localhost:8080/labkey/",
folderPath="/",
schemaName="core",
queryName="users",
colFilter=makeFilter(c("foo", "EQUAL", "bar")),
) )

Perhaps that is an 'undefined' operation and therefore this output is valid. I would find it more useful to get zero back as that is more likely to break my code and make me realize I made a typo in my column name. This is with LabKey v18.2 and Rlabkey v2.2.2.

thanks,
-Will

view message
assayFileUpload: larger file from JS variable
(1 response) Tim Holland 2018-08-01 08:12

Hi,

I'm attempting to use LABKEY.Ajax.request to create an assay file with assayFileUpload using the contents of a Javascript variable, but when the fileContents parameter gets too big (even just on the order of a few hundred lines) the request fails. It uses the method described in the documentation here: https://www.labkey.org/download/clientapi_docs/javascript-api/symbols/LABKEY.Exp.Data.html, with something like the following:

LABKEY.Ajax.request({
    url: LABKEY.ActionURL.buildURL("assay", "assayFileUpload", LABKEY.ActionURL.getContainer()),
    params: { protocolId: assay.id, fileName: name, fileContent: lines },
    success: function(response) {
        // ...do something...
    },
    failure: formFailed
});

Is there a recommended way to create a larger file from the contents of a Javascript variable that gets around this limitation? I'd prefer not to have to edit the Tomcat configuration files to do this.

view message
Can't declare foreign key relationship in module schemas/<schema>.xml metadata
(1 response) Will Holtz 2018-07-30 18:47

Hi,

I made a hard table that contains a foreign key to a Labkey userid (beyond the standard userid fields of createdby, modifiedby, owner). In the module schemas/<schema>.xml metadata I declared the foreign key. In my grid views, I could not get the userid lookup to occur; the integer value was displayed, not the displayname field. I know there are a lot of restrictions on access to core.users and related tables and I thought I was just not getting some of that right. However, I eventually realized that by declaring the foreign key in the module queries/<schema>/<query>.query.xml metadata, I was able to get the lookup to work. It is unclear to me if there is some reason why the foreign key declaration in the schema/<schema>.xml file did not work or if this behavior is unexpected.

I made a minimal reproduction that is contained in the attached module file. In this module, two identical hard tables are created. UserMetadata.SchemaMetadata has the foreign key declared in schemas/UserMetadata.xml. UserMetadata.QueryMetadata has the foreign key declared in queries/UserMetadata/QueryMetadata.query.xml. In both tables, "associateduser" is the userid field I am trying to get the foreign key metadata applied to such that the lookup of displayname occurs. In the Labkey query browser, the associateduser field in UserMetadata.SchemaMetadata does not show a lookup column, while the same field in the UserMetadata.QueryMetadata table has "core.Users.UserId (DisplayName)" as the Lookup column.

I did my testing on Labkey v18.2, Postgres v10.4, Tomcat v8.5.24.

thanks,
-Will

 UserMetadata-18.2.module 
view message
Limited number of records in executeSql
(1 response) zoya_pasha 2018-07-20 02:00
Hello,

I am using JavaScript API of Labkey 17.1. On using the function LABKEY.Query.executeSql, I am able to fetch records up to 100000. I checked the documentation. The default value for the same is 'All rows'. However, the maximum number of rows I am able to get in one transaction is limited. Please help!

Regards
Zoya
view message
TeamCity 2018.1 Upgrade
(1 response) Trey 2018-07-16 14:02

We plan on upgrading TeamCity to 2018.1 later this week.
In preparation, we may need to take it offline briefly over the next day or two. We will send out a warning an hour before any such outage. They should last no more than 15 minutes; in-progress builds will be unaffected and the server should pick up right where it left off once it comes back up.

The upgrade itself may take the better part of a day. This thread will be updated at least 24 hours before we start the upgrade process.

view message
Gridviews per User
(1 response) marcia hon 2018-07-03 12:17

Hello,

I have a big table.

Now, I wish to filter it so that only user_x would be able to view the table filtered on x and nothing else.

For example, I have a table :

Name Department Date
Marcia English Nov 21, 2018
Bobby French Aug 12, 2017
John Portuguese Oct 30, 2016

So, I want Marcia to only see data filtered on "English". With Bobby, "French" and with John "Portuguese".

Is this possible and how do you do this?

Thanks,
Marcia

view message
Data Transforms
(1 response) marcia hon 2018-06-28 10:28

Hello,

I have different users who use different parts of a project.

Now, there are around 6 data transformations.

I would like to refine this so that a certain individual will only see 1 data transform.

Is this possible?

Thanks,
Marcia

view message
Rlabkey calls from Transformation script result in 401 - User does not have permission to perform this operation
(1 response) Will Holtz 2018-06-27 16:42

I want to share a workaround to a problem I had. I'm not expecting anyone to follow up on this as I don't know how to reproduce the issue.

I have several file-based modules that contain assays with transformation scripts written in R. These transformation scripts use Rlabkey to read and write data from the Labkey instance. Today, these modules started hanging during the transformation scripts. It appears the Rlabkey calls back to the Labkey instance were failing with a 401 error and the error message ' User does not have permission to perform this operation.' This would even happen when performing the upload as a Labkey admin user. I created a test module that contained a minimal transformation script:

library('Rlabkey')
${rLabkeySessionId}
print(labkey.selectRows(
    baseUrl = '${baseServerURL}',
    folderPath = '/',
    schemaName = 'core',
    queryName = 'users',
))

On my development instance on my laptop, this transformation script worked fine, but on my production server it gave the 401 error. After a few hours of trying to figure out what was going on, I restarted my tomcat instance and everything started working again. Reloading the application within tomcat did not help -- only a full tomcat stop and start worked. So, if you are in a similar situation, try a tomcat restart.

I'm running Labkey v18.1, Tomcat v8.5.30, R v3.4.4, Rlabkey v2.2.1, R package httr v1.3.1 and R package rjson v0.2.19 on Ubuntu v18.04.

-Will

view message
Use trigger script to provide info message
(1 response) Sev 2018-06-25 12:40

Hello

We would like to give users an informational message following a dataset row insert that meets certain criteria. We have trigger scripts setup to check the criteria but it seems the only way to provide messages to the user is via the errors object, which would cancel the insert.

Is there a way we can set a message after an insert into a dataset that wont result in the transaction being cancelled?

Thanks

Sev

view message
Transformation Jobs
(1 response) marcia hon 2018-06-21 08:13

Hello,

I have several Transformation Jobs.

Is it possible to have "Data Transforms" view only show the Transformations we want?

For example,

Let's say I have transformation jobs: T1, T2, T3, T4, T5

I would like the "Data Transforms" webpart to only show : T3, T5

Thanks,
Marcia

view message
File Repository Module write location, etc.
(3 responses) Georgia Mayfield 2018-06-20 12:05

Hi all,

My team is considering using the File Repository module for file upload/storage and has some questions on its functionality/implementation.

First off, where does File Repository actually write the uploaded files (by default)? I'm unable to track uploaded test files on either the machine or in the database. Is there an API into the Webdav repository? Also, is there any sort of built-in backup for File Repository?

Is there's no backup in File Repository itself, then we would need to map the write space to a network drive, such as an RDS repository. What would you estimate to be the complexity/requirements of that?

Additionally, we would be interested in keeping metadata about the uploaded files and clickable links to the files in a database table to retain out current functionality. What sort of metadata capture features like this exist for File Repository, if any? Would it be possible to cap file size, if needed?

System Info

  • OS: rhel 6
  • Version: 17.3

Thanks,
Georgia Mayfield
OHSU Computational Biology

view message
LImit to insertrows query
(9 responses) WayneH 2018-06-20 07:01

Hello all,

we employ a script on our labkey server v16.3 (prof+ edition) that inserts a data array of 10k+ entries via the insertrows api call and it is failing.. it has no issues with smaller chunks of data so it appears that we have crossed a size limit.. a fix is kinda obvious but wanted to confirm with you what those limits are and if chunking things would be the solution or you may have an alternate approach you could recommend.

thanks,
WayneH

view message

Welcome to the LabKey Support Forum. This forum is for questions regarding LabKey Server general usage, installation, or development.

Posting Questions

Before you post a new question, please search to see if someone has already asked a similar one.

Next, please review the Community Forum Guidelines.

When you post a question, please include the following information:

  • Your operating system.
  • Web browser.
  • Version number of LabKey Server.
  • A detailed description of your problem or question, including instructions for reproducing your issue.
  • Error information. Please attach log files to your message, rather than pasting in long text. Error pages and log files also include an Error Code. Please include this code in your message.

Additional Resources

User Account

In order to post to the community forum, you'll need to register for a user account.  If you already have an account but have forgotten your password, you can reset your password using the link on the Sign in page.