- Package updates
- Always use container relative URLs
- Remove ExperimentalFeatures.containerRelativeURL
- Update tests to assume container relative URLs
- Add justfile
- Update Array filter multi-value delimiter to ';' to match IN/NOT IN filter types to allow filter type conversion
- Package updates
- Add Array filter types
- ARRAY_CONTAINS_ALL, ARRAY_CONTAINS_ANY, ARRAY_CONTAINS_EXACT, ARRAY_CONTAINS_NOT_EXACT, ARRAY_ISEMPTY, ARRAY_ISNOTEMPTY
- Lineage: add "restricted" property
- Package updates
- Command and QueryRequestOptions: add auditDetails parameter
- Issue 53449: resolve lineage items from container path
- Support
Filevalues directly inAssay.importRun()forbatchPropertiesand (run)properties - Can only be run with corresponding server-side changes in LabKey v25.09
- Issue 53243: add "includeEmptyPermGroups" to getGroupPermissions
- Package updates
- Update ESLint configuration
- Specify
containerPathonQuery.Command. Already supported by server-side.
- Update
isBooleanto directly check for boolean type and be tolerant of undefined/null value. - Switch
isArrayto beArray.isArray. Deprecate. - Switch
isNumberto beNumber.isNumber. Deprecate. - Update
isDateto act as aDatetype check returningvalue is Date.
- Add
auditUserCommenttoDomain.dropandDomain.save
- ActionURL.queryString: Add support for numbers, booleans, and mixed arrays
- Package updates
- Add file support to
Query.saveRows
- Remove
javascriptErrorServerLoggingfromExperimentalFeaturesenumeration.
- Command: add auditBehavior, auditUserComment, skipReselectRows
- Package updates
- Add "saveMatchingColumnDataOnly" property to ImportRunOptions
- Add "isArchived" to Container interface
- Issue 51293: remove typings reference to
useExperimentalCoreUIexperimental flag
- Add "includeInheritableFormats" property to GetContainersOptions
- Add "inheritable" property to VisualizationGetResponse
- Issue 50628: Switch our "Content-Disposition" header parsing to utilize the
@tinyhttp/content-dispositionpackage. - 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
resultsFilesto ImportRunOptions and importRun() in Assay.ts
- Package updates
- Add
MoveEntitiespermission type
- Issue 49870: Add "login" and "PasswordGauge" to LabKey typing
- Add PermissionTypes.ShareReportPermission
- Update VisualizationGetResponse to include canDelete, canEdit, and canShare
- Update
IImportDataOptionsandImportRunOptionsto include optionalauditUserComment
- Add Container.formats.timeFormat
- Support filter 'time' JsonType
- Add
moveRowstoQuerymodule, along with related types:MoveRowsOptionsandMoveRowsResponse
- Fix
Utils.encodeHtmlby adding necessary semicolon
Security.getUsersWithPermissions(): Add includeInactive
- Update parsing for Content-Disposition header
- Expose
Assay.getAssaysand update documentation. - Deprecate
Assay.getById,Assay.getByName, andAssay.getByTypein favor ofAssay.getAssays. - Add typings for supported parameters of the
assay-assayList.apiendpoint.
- Add
PermissionTypes.EditSharedView
- Update typings for
fields,fk, andviewNameproperties ofQuery.getQueryDetails - Add support for
methodtoQuery.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
plateMetadataJSON property onAssayDOM.importRun. - Rename
IImportRunOptionstoImportRunOptions. - Extend
RequestCallbackOptionsto streamline usage of common request options. - Factor out superfluous
FormWindowtype. TypeScript typings for DOM libraries have improved since initial implementation.
- Fixes the implementation of
List.create()to supportkeyNameandkeyTypeas they were originally documented. - Deprecate
keyNamein favor of specifyingoptions.keyNameas specified onDomain.create(). - Deprecate
keyTypein favor of specifyingkindas specified onDomain.create(). - Rename
ICreateOptionstoListCreateOptions. - Update
ListCreateOptionsto extendCreateDomainOptionsand only support an extension of a subset ofDomainDesignproperties in favor of usingdomainDesigndirectly.
- Add
renameContainer()toSecurityAPI
- Add skipReselectRows parameter to IQueryRequestOptions
- Add the
allowLookupByAlternateKeyparam to theAssay.importRun()API
- Package updates
- Extract jest configuration out of
package.jsonand intojest.config.js. - Add typings for
ResponseMetadataandMetadataFieldfor 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
commentparam todeleteContainerfn
- Update
LineageItemBaseto optionally includecomment?: string. - Update
LineageNodeBaseto optionally includeprotocol?: LineageItemBase.
- Add the
AllInProjectandAllInProjectPlusSharedcontainer 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
includeViewDataUrlandincludeTitleparameters 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
.eslintignoreand.eslintrc.jsonlinting configuration files. - Ran
npx eslint --fix /srcto 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 forpathnameandcontextPath. - Add
contextPathas a part of the return value fromActionURL.getPathFromLocation(). - Export
Projectinterface.
- 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
currentAndSubfoldersPlusSharedcontainer filter type to enumeration. - Allow for
effectivePermissionsto be declared on aContainer. Only relevant when supplied by certain endpoints, so it is marked as optional. - Export
Securityinterfaces 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
nameExpressionto interface
- Add the
allowCrossRunFileInputsflag to theAssay.importRun()API
- Add
includeTriggersoption 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-apitospecimen-api. - Fix for Query
Responseto support response whenincludeMetadataflag 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.26and update ourtypedoc.jsto 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
Domaindocumentation. - 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
LABKEYglobal 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
Userinterface intoUserandUserWithPermissionsto better model server response shapes. - Publicly export
Container,User, andUserWithPermissionsinterfaces. - Migrated
PermissionTypesfrom@labkey/componentsand switched it to an enum. DeprecatedeffectivePermissionsthat 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
ParticipantGroupandSpecimen. - Utilize
RequestCallBackOptionsfor option interfaces. - Rename interfaces away from
I<Name>pattern to<Name>. - Use common
getCallbackWrapper()pattern allowing forscopeand additional arguments. Backwards compatibility wrapper for original scoping behavior (seeonSpecimenSuccess). - Utilize
responseTransformerargument 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
containerPathproperty to allExperimentmodule actions. - Improve typings for
Experiment.lineage()andExperiment.resolve()return types. - Rename
Experimentinterfaces 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 forrequiredVersionto process as aQuery.Response.
- Module updates for
Exp,Message,Pipeline, andReport. - Fix for
Security.getSchemaPermissions()to defensively copy configuration forgetSecurableResourcescall.
ActionURL
- Fix container path encoding (match core behavior).
Domain
- Separate
getfromgetDomainDetailsas 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
saveMaterialstypings improved after updates to Query'sinsertRowstypings.
Query
- Add payload response typings for
getQueriesandgetQueryDetails. - Update request-based interfaces to use
RequestCallbackOptions. - Separate
selectRowsandselectDistinctRowsinto own modules.Rowsnow contains insert, update, delete, and save operations. - Remove duplicate
saveRowsimplementation (oops!). - Add regression unit tests for old-style method signatures.
Query/Filters
- Add
EXP_PARENT_OFfilter type. - Fix
getSingleValueFilterto match core behavior. - Rename
splitValuetoparseValueto 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, andtoggleLinkas these have been migrated to DOM-based implementation only. - Add private
DOMWrapperutility 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/apithan what core is doing (e.g. using=== truewhen assigning to abooleantype).
- Add optional auditBehavior parameter to IQueryRequestOptions
- Fix for typings of Security.getUserPermissions response.
- Feature parity with clientapi_core.
Experiment
- Adds and exports
exportRunsmethod. - Replaces usages of local payload processor with
Utils.getCallbackWrapper'sresponseTransformer.
Filter
- Adds and exports
_definemethod.
Utils
- Adds and exports
getMeasureAliasmethod.
Visualization
- Adds and exports
savemethod. - 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
Utilsmodule which defined no longer usedgetSuccessCallbackWrapperhelper 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
includeMetadataflag to selectRows (#24)
- Export
getFiltersFromParameters(#22) - Add
Query.truncateTable
- Migrate core/Experiment.js (#21)
- Update deployment docs (#20)
- Item 6033: add
saveDataAsFileoption to AssayDOM importRun (#19)
- Story 6033: Fixes for assay reimport and includeTotalCount (#18)
- Item 5718: add
queryDetailColumnsproperty to Utils.getQueries (#16)
- Item 5761: add missing
insertOptionprop 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
FiltertoIFilter - 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
Qfilter
- 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