This project follows semantic versioning
pfsrsdk
functions and entities related to PFS
experiments, there is an issue with OData where modifications (create and
update functions) are executed successfully when the PFS experiments are
published. The following functions have been tested to show this behavior:createExperimentSample
, in PFS 5.3.x and 6.0.xupdateExperimentSampleRawData
, in PFS 5.3.x and 6.0.xupdateEntityAttributes
, in PFS 5.3.x and 6.0.xupdateEntityProject
, in PFS 6.0.xapiGET
, apiPOST
,
apiPUT
), as well as many of the SDK package functions. This was done to
provide a standard return object across the SDK (where appropriate).
The API functions were updated to provide a return object of structure
list(content, response)
, where content
had a value of
httr::content(response)
.
For many of the SDK functions, a standard structure of
list(entity, response)
was already in place, but the change here both
expanded the use of this return object to other functions and updated the
values of both entity
and response
.
Refer to the package help for function-specific changes to the return objects.useVerbose
parameter on most functions to a pass-through ellipsis
(...) parameter, as the parameter is only used by the underlying calls to the
API functions (apiGET
, apiPOST
, apiPUT
). Passing an argument for
useVerbose
must now be named, not ordered, in SDK function calls.fullReturn
parameter to API functions to provide option to
not receive full HTTP response data in return object.getEntityAttributeMetadata()
to get attribute metadata for a
specified entity type. Applicable for PFS v6 and greater.getAttributesColumnHeaders()
to get the attribute column
headers for all or specified attributes of an entityType. Applicable for PFS
v6 and greater.getExperimentSamplesWithSampleLots()
to get the sample lots
and/or experiment samples for a particular experiment.getExperimentContainersAndExperimentSamples()
to get the
experiment container, container type and experiment samples of an experiment.getUserProjects()
to get metadata of projects accessible to
the current user.getAttachedFile()
getExperimentSamplesIntermediateData()
ODATAcleanName()
setExperimentSamplesAssayFileData()
updateCellContents()
test-httpFunctions.R
to individual files.tests/testthat
directory.Jenkinsfile.decl
to run acceptance tests in parallel, drastically
reducing pipeline execution time.Rd2pdf
.vignettes/TestResults.Rmd
to produce properly-formatted table of
test results when built as part of pkgdown::build_site()
execution on
Jenkins.apiPUT()
to check all classes of body
for form_file
type.odataCleanName()
to properly handle refTypes
of value "tenant".coreAPI()
that was overwriting coreAPI
configuration
values with environment variables. Renamed username
and password
configuration values to api_username
and api_password
to ensure
compatibility with the prohibited environment variables
of RStudio-Connect.getAttachedAttributeFile()
to use the odata
options available in PFS v6. createExperimentContainer()
to warn the user when accessing a
published experiment.updateEntityLocation()
to use the InventoryMove action available
in the PFS OData API.# Completed regression for 5.3.8 and 6.0.1
message from tests. packrat
dependencies with newer minor versions.pfsrsdk
against PFS 5.3.10.apiGET()
and verbose is
set to true.odataCleanName()
added an underscore to the tenant alias
name. (new parameter added for odataCleanName()
)setup.R
to minimize test output.test-httpFunctions.R
(GET, POST, PUT) for more than 100
results.xml2
as an import since we use the httr::content()
with an XML MIME
type. httr
only lists xml2
as "Suggest" in its DESCRIPTION
.PFSRSDK 1.0.0 is a major release that completely refactors the CoreAPIV2
project into the new naming convention, pfsrsdk
, while updating the SDK
functions for compatibility with Platform for Science (PFS) versions 5.3.8,
5.3.9, 6.0.1, and 6.0.2. Unit tests have been added to cover nearly all SDK
functions and executed successfully against the listed PFS versions.
coreapiv2
changed to pfsrsdk
.CoreAPIV2::functionName()
are now called by
pfsrsdk::functionName()
.coreAPI.R
function, where the authentication parameters present in a
user's Auth.json
configuration file need to be updated:alias
(previously TenantShortName
)tenant
(previously account
)host
(previously coreUrl
)username
(previously user
)password
(previously pwd
)semver
, a new parameter for PFS semantic version that throws a warning if
not configuredgetAttachedFile
for getAttachedAttributeFile
.getExperimentSamplesIntermediateData
for
getExperimentSampleIntermediateData
.ODATAcleanName
for odataCleanName
.setExperimentSamplesAssayFileData
for
setExperimentSampleAssayFileData
.updateCellContents
for existing setCellContents
function, as
the latter provides the same functionality via PFS OData that the former
executes in the PFS JSON API.getSemVer
function to test the PFS semantic version being used and
adapt commands when necessary.getExperimentContainerContents
to get any container contents of
EXPERIMENT_CONTAINER base type.getExperimentContainerCellIds
to get cell Ids of experiment
containers.getExperimentWellContents
to retrieve contents of a specific well in
any experiment container.case
utility function to provide vectorized IF operations.packrat
to package structure for dependency management.styler
to enforce clean code syntax.lintr
as a tool for static code analysis.serviceRoot
to coreAPI to enable SDK use against Platform Admin.getContainerContents
to handle generic CONTAINER contents requests.loadXmlConfigFile
utility function to help prepare PFS test
environments by loading application configuration files (internal calls only).setup.r
and teardown.r
for tests. setup
will now load the
CoreApp.SDK
XML in a test environement, and teardown
hides information
that is not needed during log out. getWellContents
to handle generic CONTAINER well content requests.helper.r
to execute against specific-version test environments
without interactive prompting.Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.