- Add file support to
Query.saveRows
- Remove
javascriptErrorServerLogging
fromExperimentalFeatures
enumeration.
- Command: add auditBehavior, auditUserComment, skipReselectRows
- Package updates
- Add "saveMatchingColumnDataOnly" property to ImportRunOptions
- Add "isArchived" to Container interface
- Issue 51293: remove typings reference to
useExperimentalCoreUI
experimental flag
- Add "includeInheritableFormats" property to GetContainersOptions
- Add "inheritable" property to VisualizationGetResponse
- Issue 50628: Switch our "Content-Disposition" header parsing to utilize the
@tinyhttp/content-disposition
package. - Deprecate and strongly discourage use of bitmask-based permission constants and functions
- Package updates
- Add valueExpression to QueryColumn type
- Issue 50533: furnish server's timezone in server context
- Add
resultsFiles
to ImportRunOptions and importRun() in Assay.ts
- Package updates
- Add
MoveEntities
permission type
- Issue 49870: Add "login" and "PasswordGauge" to LabKey typing
- Add PermissionTypes.ShareReportPermission
- Update VisualizationGetResponse to include canDelete, canEdit, and canShare
- Update
IImportDataOptions
andImportRunOptions
to include optionalauditUserComment
- Add Container.formats.timeFormat
- Support filter 'time' JsonType
- Add
moveRows
toQuery
module, along with related types:MoveRowsOptions
andMoveRowsResponse
- Fix
Utils.encodeHtml
by adding necessary semicolon
Security.getUsersWithPermissions()
: Add includeInactive
- Update parsing for Content-Disposition header
- Expose
Assay.getAssays
and update documentation. - Deprecate
Assay.getById
,Assay.getByName
, andAssay.getByType
in favor ofAssay.getAssays
. - Add typings for supported parameters of the
assay-assayList.api
endpoint.
- Add
PermissionTypes.EditSharedView
- Update typings for
fields
,fk
, andviewName
properties ofQuery.getQueryDetails
- Add support for
method
toQuery.getQueryDetails
- Add setEntitySequence, getEntitySequence methods to Experiment
- Remove setGenId, getGenId from Experiment
- Introduce
Utils.wafEncode()
which assists with obfuscating content that's often intercepted by web application firewalls that are scanning for likely SQL or script injection. - Utilize
wafEncode()
forquery-getData.api
,sql-executeSql.api
,sql-execute.api
, andquery-exportSql.view
. - Requires LabKey Server v23.09+
- Update filters to support newline delimiting as well as semicolon delimiting. Update constants and comments accordingly
- Support
plateMetadata
JSON property onAssayDOM.importRun
. - Rename
IImportRunOptions
toImportRunOptions
. - Extend
RequestCallbackOptions
to streamline usage of common request options. - Factor out superfluous
FormWindow
type. TypeScript typings for DOM libraries have improved since initial implementation.
- Fixes the implementation of
List.create()
to supportkeyName
andkeyType
as they were originally documented. - Deprecate
keyName
in favor of specifyingoptions.keyName
as specified onDomain.create()
. - Deprecate
keyType
in favor of specifyingkind
as specified onDomain.create()
. - Rename
ICreateOptions
toListCreateOptions
. - Update
ListCreateOptions
to extendCreateDomainOptions
and only support an extension of a subset ofDomainDesign
properties in favor of usingdomainDesign
directly.
- Add
renameContainer()
toSecurity
API
- Add skipReselectRows parameter to IQueryRequestOptions
- Add the
allowLookupByAlternateKey
param to theAssay.importRun()
API
- Package updates
- Extract jest configuration out of
package.json
and intojest.config.js
. - Add typings for
ResponseMetadata
andMetadataField
for query response. - Replace
[[Reference]]
syntax in docs with{@link Reference}
. - Export additional types so they're not hidden from implementors.
- Issue 47202: Options to reduce payload of getContainers.api response
- two new properties: includeWorkbookChildren and includeStandardProperties
- Add
comment
param todeleteContainer
fn
- Update
LineageItemBase
to optionally includecomment?: string
. - Update
LineageNodeBase
to optionally includeprotocol?: LineageItemBase
.
- Add the
AllInProject
andAllInProjectPlusShared
container filter types supported starting in v23.03.
- Add
PermissionTypes.SampleWorkflowDelete
- Add
PermissionTypes.CanSeeUserDetails
- Add
PermissionTypes.CanSeeGroupDetails
- Issue 47044: Decode the plus sign that may be part of a folder path
- Issue 47010: Add
includeViewDataUrl
andincludeTitle
parameters toQuery.getQueries()
. Setting these tofalse
(along with existing parameterincludeColumns
) can improve performance of getQueries() calls.
- Fix URI decoding for paths with encoded characters in container names
- Add PrimaryStorage as a new STORAGE_TYPE equivalent to Freezer for room-temp storage
- Add
PermissionRoles.EditorWithoutDelete
- Add support for creating Freezer Manager freezer hierarchies via StorageController APIs
- earliest compatible LabKey Server version: 22.10.0
- via Storage namespace: createStorageItem, updateStorageItem, deleteStorageItem
- Migrate the convertToTable and convertToExcel utilities from LABKEY.js.
- Add package dev dependency on
@labkey/eslint-config-base
. - Add
.eslintignore
and.eslintrc.json
linting configuration files. - Ran
npx eslint --fix /src
to perform lint of all current source files.
- Add excludeSessionView param for getQueryViews
- Add saveSessionView util
- Package updates.
- Issue 45592: Remove html encoding of name/value for form submission
- Issue 45270: Add AdminOperationsPermission
- Issue 45091: savePolicy update to support unwrapped policy object
- Adjust request to enable reading error messages on failed downloads
- Export
ActionURL.getPathFromLocation()
and update to accept input parameters forpathname
andcontextPath
. - Add
contextPath
as a part of the return value fromActionURL.getPathFromLocation()
. - Export
Project
interface.
- Add getLabKeySqlOperator to IFilterType
- Add new reader permission classes
- Add new storage permission classes
- Update interface of
Query.saveQueryViews
, fixing types and adding supported options
- Add setGenId, getGenId methods to Experiment
- Add validateNameExpressions, getDomainNamePreviews methods to Domain
- Package updates.
- Rehydrate
package-lock.json
. - Update configuration of TypeDoc to align with latest version. Breaking changes had been introduced with
v0.22.x
. - Issue 41034: Export most types defined by the package to improve documentation and support external usage of the types.
- Add
currentAndSubfoldersPlusShared
container filter type to enumeration. - Allow for
effectivePermissions
to be declared on aContainer
. Only relevant when supplied by certain endpoints, so it is marked as optional. - Export
Security
interfaces so they are published to public typings.
- Add SAMPLE_ALIQUOT_PROTOCOL const to Experiment
- importRun: Add support for workflowTask param.
- InsertRows/UpdateRows: Add capability to parse and transform row data into FormData when File data is present.
This is accessible via a configuration flag
autoFormFileData
.
- SaveRows: Update interface with schemaName/queryName (thanks @bbimber).
- QueryColumn: add
nameExpression
to interface
- Add the
allowCrossRunFileInputs
flag to theAssay.importRun()
API
- Add
includeTriggers
option toQuery.getQueryDetails
- Update PermissionTypes.DesignSampleSet
- Item 9807: Domain properties APIs:
Domain.getProperties()
,Domain.getPropertyUsages()
,Domain.updateDomain()
- Item 8958: Add permission classes for AddUserPermission and CanSeeAuditLogPermission
- Item 8709: Add permission class for managing sample picklists
- Item 8670: Add ontology based filters for data region filtering
- Item 8735: Allow for FormData to be passed via SendRequestOptions
- Add runProtocolLsid for Experiment.LineageOptions
- maxAllowedPHI renamed to maxAllowedPhi
- Add maxAllowedPHI to UserWithPermissions
- Add enumeration for Security.PermissionRoles
- Correct controller name "specimens-api" -> "specimen-api"
- Issue 41508: LABKEY.App change to use document.readyState and readystatechange to update isDOMContentLoaded prop.
- Support specimen feature migration rename of
study-samples-api
tospecimen-api
. - Fix for Query
Response
to support response whenincludeMetadata
flag is set to false. - Add "title" property to the Project interface
- Add optional fields to assay IImportRunOptions
- Add
ActionURL.getReturnUrl
- Add optional useAsync parameter to IImportDataOptions
- Update TypeDoc to
0.20.0-beta.26
and update ourtypedoc.js
to improve documentation layout. - Move "fieldKey" modules to top-level so they better align with how they're actually exported.
- Improve documentation for filters and their types. Done as part of an exercise to see how TypeDoc handled inline docs.
- Fix issues 42014 and 40724 with improvements to
Domain
documentation. - Package updates.
- 41969: Fix MultiRequest to return instance. Add unit tests.
- Add additional properties exposed via
getServerContext()
to typings
- Add optional auditUserComment parameter to request objects for inclusion in some audit log records
- Clean-up distribution
- Package updates.
- Replaces the original JavaScript API served under
LABKEY
global namespace on LabKey Server pages. - Universal module definition (UMD) published package targeting ES6.
- Full fidelity TypeScript definitions.
- getFiltersFromParameters: Use Object.keys instead of "for(paramName in params)".
- Package updates.
- Add
Security.getUsersWithPermissions()
which shares parameter parsing withSecurity.getUsers()
as they share payload processing on the server. - Split
User
interface intoUser
andUserWithPermissions
to better model server response shapes. - Publicly export
Container
,User
, andUserWithPermissions
interfaces. - Migrated
PermissionTypes
from@labkey/components
and switched it to an enum. DeprecatedeffectivePermissions
that was previously declared.
- Item 7373: Add "project" and "WebSocket" to LabKey typing, which will allow for main.d.ts file overrides to be removed in a few modules
- Introduce "App" module
registerApp
/loadApp
- Domain.getDomainDetails API support for domainKind parameter
- Module updates for
ParticipantGroup
andSpecimen
. - Utilize
RequestCallBackOptions
for option interfaces. - Rename interfaces away from
I<Name>
pattern to<Name>
. - Use common
getCallbackWrapper()
pattern allowing forscope
and additional arguments. Backwards compatibility wrapper for original scoping behavior (seeonSpecimenSuccess
). - Utilize
responseTransformer
argument ongetCallbackWrapper()
in lieu of custom "keyed" handling formerly done bygetSuccessCallbackWrapper()
which has been removed. - Package updates.
- Export SelectDistinctOptions, SelectDistinctResponse, SelectRowsOptions
- Add EXP_LINEAGE_OF filter type
- Adds
containerPath
property to allExperiment
module actions. - Improve typings for
Experiment.lineage()
andExperiment.resolve()
return types. - Rename
Experiment
interfaces away fromI<Name>
pattern to<Name>
.
- Module updates for 'Assay'.
- Fix for
ActionURL.queryString()
to no longer parse functions as URL parameters.
- Report.ts fix for populateParams() handling of inputParams as key value pairs on the execParams object instead of as a nested object within it
- Explicitly only support
[13.2, '13.2', 16.2, 17.1]
values forrequiredVersion
to process as aQuery.Response
.
- Module updates for
Exp
,Message
,Pipeline
, andReport
. - Fix for
Security.getSchemaPermissions()
to defensively copy configuration forgetSecurableResources
call.
ActionURL
- Fix container path encoding (match core behavior).
Domain
- Separate
get
fromgetDomainDetails
as they have different response shapes. @labkey-ians - Fix check for parameters to look at "options" and not "config" as originally supplied. This fixes support for multiple argument variants.
Experiment
saveMaterials
typings improved after updates to Query'sinsertRows
typings.
Query
- Add payload response typings for
getQueries
andgetQueryDetails
. - Update request-based interfaces to use
RequestCallbackOptions
. - Separate
selectRows
andselectDistinctRows
into own modules.Rows
now contains insert, update, delete, and save operations. - Remove duplicate
saveRows
implementation (oops!). - Add regression unit tests for old-style method signatures.
Query/Filters
- Add
EXP_PARENT_OF
filter type. - Fix
getSingleValueFilter
to match core behavior. - Rename
splitValue
toparseValue
to match core interface. @labkey-kevink - Add regression snapshot coverage for all provided filter types.
Utils
- Ensure scoping of callback is consistent with core behavior. Added regression tests.
- Remove
collapseExpand
,notifyExpandCollapse
, andtoggleLink
as these have been migrated to DOM-based implementation only. - Add private
DOMWrapper
utility to declare "stubbed" methods that are expected to have a concrete implementation provided by our DOM-based libraries. Allows for type signatures and fall through to a console warning.
General
- Match logical behavior when configuring parameter/data values. Some cases had been made more strict in
@labkey/api
than what core is doing (e.g. using=== true
when assigning to aboolean
type).
- Add optional auditBehavior parameter to IQueryRequestOptions
- Fix for typings of Security.getUserPermissions response.
- Feature parity with clientapi_core.
Experiment
- Adds and exports
exportRuns
method. - Replaces usages of local payload processor with
Utils.getCallbackWrapper
'sresponseTransformer
.
Filter
- Adds and exports
_define
method.
Utils
- Adds and exports
getMeasureAlias
method.
Visualization
- Adds and exports
save
method. - Exports
get
,getData
,getDataFilterFromURL
,getFromUrl
,getMeasures
, andgetTypes
. All of these were previously declared but needed to be exported in the top-level module. - Replaces usages of local payload processor with
Utils.getCallbackWrapper
'sresponseTransformer
. - Removes visualization's private
Utils
module which defined no longer usedgetSuccessCallbackWrapper
helper method.
Test
- Adds test to verify exported interface against a snapshot of "clientapi_core" as defined in LKS.
- Provides script used to generate API snapshot.
- Snapshot checked in as
core_api_snapshot.json
.
- Domain module updates.
- Security module updates.
- Utils module updates.
- Improve typings for success/failure/scope options.
- Document experimental flag.
- Query exports getDataViews, Response, Row.
- Package distribution as UMD.
- Remove rollup build configuration.
- Simplify jest configuration.
- Compile source maps from TypeScript.
- Removed console warning about jQuery.
- Package updates.
- See #43.
- Experiment module updates.
- Expose ExperimentalFeatures, getServerContext, and LabKey type.
- Declare Query.ContainerFilter as an enum. Deprecate Query.containerFilter.
- Fix value casing of Query.containerFilter
- Doc updates (migrated from legacy API)
- Item 6848: Add Domain.getDomainDetails and add support for domain kind options in Domain.save (#35)
- Add jest-teamcity-reporter for improved CI test reporting
- Package updates
- Remove docs custom theme
- Fix type signature for selectRows success and failure callbacks
- Add additional Domain and Run handling functions (Domain.listDomains, Domain.getProperties, Exp.loadRuns) (#26)
- Item 6654: Changes to SaveDomain Api to include Warnings
- Item 6759: Query.getServerDate() fix to include response object in success and failure functions (#32)
- Item 6571: Add optionalMessage property to the Security.createNewUser() API call (#29)
- Item 6506: Security.createNewUser() fix to include response object in success and failure function property definition (#28)
- Add registerFilterType (#27)
- Item 6508: Security api fixes for getPolicy and getRoles (#25)
- getPolicy was trying to create a SecurityPolicy object which is not a constructor
- savePolicy was returning incorrect typescript info for the success and failure functions
- Added
includeMetadata
flag to selectRows (#24)
- Export
getFiltersFromParameters
(#22) - Add
Query.truncateTable
- Migrate core/Experiment.js (#21)
- Update deployment docs (#20)
- Item 6033: add
saveDataAsFile
option to AssayDOM importRun (#19)
- Story 6033: Fixes for assay reimport and includeTotalCount (#18)
- Item 5718: add
queryDetailColumns
property to Utils.getQueries (#16)
- Item 5761: add missing
insertOption
prop to IImportDataOptions (#15)
- Add parameters to Domain success and failure callbacks (#14)
- Edit standard settings name/label/type (#12)
- Core updates through r63014 (#13)
- 37116: Multi-value foreign key filter broken in customize view
- assay-importRun.api: name and comment are optional (#10)
- Core updates through r61908
- Core updates through r61088
- Add AssayDesign
- Core updates through r60653
- 35265: Create alternate syntax for handling delimiters
- rename interfaces
Filter
toIFilter
- Core updates through r60120
- Package updates
- Initial documentation (#4)
- Add importUrl option to Query.importData() (#3)
- Initial documentation for experimental build
- 34761: Add saveToPipeline parameter to Query.js
- Add DOM.Utils package
- Core updates through 18.1
- Expose DOM packages via own namespace
- ActionURL.getController()
- package updates
- Security: update GetUsersOptions interface
- Add support for
Q
filter
- Update Domain interfaces
- Package updates
- Update tests for latest jest
- Introduce rollup for ES, CJS distributions
- Rename package to @labkey/api
- Remove babel
- Updates through 17.3
- Add Query importData, insert, update, delete APIs
- Add Utils.getDataViews
- Add Assay APIs
- Add DOM APIs and build as separate distribution
- Add Query APIs
- Add Visualization APIs
- Add Specimen APIs
- Add Report APIs
- Add List, MultiRequest APIs
- Add Query.getQueryDetails, getSchemas
- Add ActionURL, Utils
- Add GetData, ParticipantGroup
- Add Pipeline
- Add Messages
- Introduce Jest tests
- Add Security
- Add Domain, Query.executeSql, Query.selectDistinctRows
- Add Query Filter and FilterTypes
- Add Query FieldKey, SchemaKey
- Add Query selectRows