Workspace service release notes¶
VERSION: 0.15.0 (Released TBD)¶
BACKWARDS INCOMPATIBILIES:
The Docserver now logs to standard out in the same way as the workspace server.
UPDATES:
The MongoDB clients have been updated to the most recent version and the service tested against Mongo 7.
Gradle has replaced Ant as the build tool. As a consequence, all the built artifacts are now located in Gradle build directories, including the
update_workspace_database_schema
script.Client and test shadow jars have been published on jitpack.io. * The shadow jar is intended for supporting tests in other repos.
This allows for starting the workspace service from a single jar in other applications. All dependencies are included in the jar in shadow namespaces so they don’t conflict with different versions of the dependencies in the application under test.
VERSION: 0.14.2 (Released 11/9/2023)¶
UPDATES:
Added the
alter_admin_object_metdata
method.Added the
get_admin_role
method.Added the
infostruct
toggle toget_objects2
andget_object_info3
methods that controls returning the object information as a struct or a tuple. The struct also contains additional information.Update to using Java 11 for building, running, and testing the workspace.
VERSION: 0.14.1 (Released 6/21/2022)¶
UPDATES:
Updated the S3 client; no user visible changes.
VERSION: 0.14.0 (Released 6/10/2022)¶
BACKWARDS INCOMPATIBILIES:
The workspace now logs to standard out rather than syslog.
The
KB_SERVICE_NAME
environment variable is now ignored.
UPDATES:
The
auth-service-url
configuration parameter has been removed.
VERSION: 0.13.2 (Released 6/1/2022)¶
UPDATES:
Type delegation has been added. See Workspace scaling for more information.
The
get_func_info
andget_all_func_info
methods are deprecated.
VERSION: 0.13.1 (Released 4/27/2022)¶
UPDATES:
save_objects
will no longer throw an error if an emptyProvenanceAction
is included in the call. Rather, emptyProvenanceAction
instances will be silently omitted from the list.
VERSION: 0.13.0 (Released 4/13/2022)¶
BACKWARDS INCOMPATIBILIES:
The workspace now requires version 0.1.1 of the Sample service.
Fixed a bug that would only count the first instance of an object in a data request when checking against the maximum data return size. Now if the same object appears twice in a data request it will be counted twice as expected.
get_objects2
,get_objects
,get_object_subset
,get_referenced_objects
, andget_object_provenance
now only allow a maximum of 10,000 objects in the input list. Note the last 4 methods are deprecated and will be removed in a future release.Provenance
ProvenanceAction
,ExternalDataUnit
andSubAction
structures now check that input URLs are valid URLs and require that at least one field is present.
UPDATES:
Added a dynamic configuration feature - see Managing the dynamic configuration
Dynamic configuration allows setting a scaling parameter that specifies how many parallel connections can be made to the
S3
orGridFS
backend when getting objects.The sample service ACL update mechanism has been changed to use a bulk interface for updating ACLs rather than updating ACLs one at a time, which should speed up fetching objects with
@id sample
annotations.The
batch_external_system_updates
option has been added toget_objects2
.Fixed a bug where, in the administration
getObjects
call, the copy source for an object would always be inaccessible unless the source workspace was public.Error handling for saving objects has been improved for some cases and provides more information about the nature and source of the error.
Added the
mongodb-retrywrites
configuration setting indeploy.cfg
, defaulting tofalse
.
VERSION: 0.12.1 (Released 1/25/2022)¶
UPDATES:
The
skip_external_system_updates
option has been added toget_objects2
.Added the
--print-stacktrace
option to the schema updater.
VERSION: 0.12.0 (Released 11/16/21)¶
ADMIN NOTES:
A database schema update is required. See Upgrading to version 0.12.0.
MongoDB 3.6+ is now required.
Shock is no longer supported as a data backend.
The Sample service is no longer supported as a KBase dynamic service, only as a core service. As such, the
sample-service-tag
configuration key has been removed.The SearchPrototypeEventHandlerFactory has been removed. The workspace will not start if the search prototype event handler is configured.
The MongoDB driver API has been updated from the 2.X driver legacy interface to the new interface introduced in the 3.0 driver. This change is invisible other than the
sorted
key inGridFS
file documents has been moved to the newmetadata
field from the root of the document. Since theGridFS
backend is not recommended for production use and no known productions installations exist, a schema updater for the GridFS backend is not provided.The
KB_SERVICE_NAME
environment variable has been deprecated and will be removed in a future version.
BACKWARDS INCOMPATIBILITIES:
list_objects
now requires that at least one and no more than 10000 workspaces are specified.As such, the
excludeGlobal
andperm
parameters no longer have any use and are deprecated.The WorkspaceEventListener interface now includes a setObjectHidden method. Code using this interface must be updated to implement this method.
UPDATES:
list_objects
now supports thestartafter
parameter. See Paging workspace objects.The workspace now emits events when an object is hidden or unhidden. See Kafka listener.
VERSION: 0.11.5 (Released 4/27/21)¶
UPDATES:
The workspace now recognizes the
@id sample
annotation and links samples in the KBase sample service to objects with that annotation in the type. See Sample service integration with the workspace service for operations and Configuration parameters for new configuration parameters:sample-service-url
,sample-service-admin-token
, andsample-service-admin-tag
.
VERSION: 0.11.4 (Released 1/6/21)¶
UPDATES:
Added an option to trust all SSL certificates to the S3 backend (default false). See the
deploy.cfg.example
file for details.
VERSION: 0.11.3 (Released 10/15/20)¶
UPDATES:
Fixed a bug that would cause the workspace to eventually hang when using the S3 backend configuration.
VERSION: 0.11.2 (Released 3/23/20)¶
UPDATES:
The workspace now emits several new workspace level events for the Kafka based notifier. See Kafka listener.
The workspace is now tested on OpenJDK 8 and 11.
Modified the
status()
API method so it doesn’t spam the handle service logs.
VERSION: 0.11.1 (Released 8/20/19)¶
UPDATES:
Fixed a bug introduced in 0.9.0 where older objects saved before handle service integration in release 0.3.0 would not be retrievable and would fail with a null pointer exception.
VERSION: 0.11.0 (Released 7/25/19)¶
BACKWARDS INCOMPATIBILITES:
The workspace is no longer compatible with the old Perl-based handle service, and must use https://github.com/kbase/handle_service2.
VERSION: 0.10.1 (Released 7/11/19)¶
DEPRECATIONS:
Shock support has been deprecated and will be removed in a future version.
UPDATES:
The docs server (at /docs) now returns the Content-Type header as expected.
VERSION: 0.10.0 (Released 7/2/19)¶
BACKWARDS INCOMPATIBILITES:
Shock nodes included in workspaces objects as
@id bytestream
annotations must now be owned by the user or by the workspace service. If the user owns the node, the node’s owner will be changed to the workspace service and write and delete ACLs will be cleared. The node is no longer copied.
UPDATES:
Storage systems that support the AWS S3 API can now be used as backend file storage systems as an alternative to Shock or GridFS.
VERSION: 0.9.1 (Released 4/18/19)¶
UPDATES:
Fixed a bug where objects with maps embedded within maps would always be sorted, even if they were already sorted as received.
VERSION: 0.9.0 (Released 4/10/19)¶
BACKWARDS INCOMPATIBILITIES:
The configuration that was previously stored in the workspace MongoDB database has been moved to the
deploy.cfg
file. The new configuration parameters aremongodb-type-database
,backend-type
,backend-url
, andbackend-user
. Correct values for these parameters can be determined for existing installations by examining the contents of thesettings
collection in the MongoDB workspace database (although note thatshock
andgridFS
are now capitalized asShock
andGridFS
).
Warning
Setting these values incorrectly can cause unexpected and undesired behavior, including data corruption.
Due to the configuration changes, the
initialize.py
script is no longer needed and has been removed.The
globus-url
configuration parameter has been replaced by theauth2-service-url
parameter.
UPDATES:
Workspace objects may now contain Shock IDs (via the
@id bytestream
annotation) which will ensure that the Shock nodes will be readable for any user that retrieves the object. This feature is disabled by default.The KBase Authentication server may now be used to specify workspace administrators, and supports read only administrator access as well as full access.
Added a Kafka event listener. See the administration documentation for configuration instructions.
Event listeners now send the user name of the user that triggered the event. In the case of an administrator impersonating another user, the impersonated name is sent. If the administrator is not required to impersonate another user, null is sent.
Updated to the 3.x version of MongoDB Java driver. As such, the
mongo-retry
configuration item has been removed as the driver now handles this internally.
VERSION: 0.8.2 (Released 12/3/18)¶
Workspace descriptions are now measured in Unicode code points rather than Java characters.
Added the setWorkspaceDescription administration command.
Added the getWorkspaceDescription administration command.
VERSION: 0.8.1 (Released 4/24/18)¶
UPDATED FEATURES / MAJOR BUG FIXES:
Added a workaround for a bug where, when using Shock as a file backend, MIME headers would very rarely (~1/100,000 saves) be appended to the data, corrupting it. The current workaround checks that the Workspace MD5 and the Shock MD5 are equal, and if not, deletes the newly created Shock node and starts over. The root cause of the data corruption is as yet unknown.
VERSION: 0.8.0 (Released 1/30/18)¶
BACKWARDS INCOMPATIBILITIES:
The
undelete_workspace
method has been removed. Workspaces are now considered to be permanently deleted.Building and running the service now requires Java 8.
The
getPermissions
administration command, like theget_permissions
method, is now deprecated.
ADMIN NOTES:
- Two new indexes have been added to the workspace versions mongo collection:
the index
{savedby: 1}
with no optionsthe index
{ws: 1, id: 1, ver: -1}
with{unique: 1}
The workspaces collection name index has been made sparse. The index must be changed before deploying this version.
Added docker file & code for pushing docker image in a travis build.
Updated repo to automatically build deployable docker images and push them to dockerhub
Deployable docker images run in tomcat, not glassfish
Documentation on how to run workspace under tomcat
NEW FEATURES:
Adds a workspace event listener API. Event listeners must implement the
us.kbase.workspace.listener.WorkspaceEventListenerFactory
andWorkspaceEventListener
interfaces. Specify listeners to be loaded on start up in thedeploy.cfg
file (seedeploy.cfg.example
for an example). Seeus.kbase.workspace.test.listener.NullListenerFactory
for an example implementation.Added the
list_workspace_ids
method.Added the
listWorkspaceIDs
administration command.Added the
getPermissionsMass
administration command.Added the
getWorkspaceInfo
administration command.Added the
listObjects
administration command.Added the
getObjectInfo
administration command.Added the
getObjectHistory
administration command.Added the
getObjects
administration command.list_objects
will now sort the output if no filters other than the object id filters are applied. The sort order is workspace id ascending, object id ascending, and version descending.
UPDATED FEATURES / MAJOR BUG FIXES:
A user name is now optional for the
getPermissions
administration command.Fixed a bug where the administrator
setWorkspaceOwner
command in very specific cases could allow setting an illegal workspace name.Fixed a bug where an admin could delete a locked workspace.
Removed
kbase-admin
credentials from thedeploy.cfg
file as they’re obsolete after the conversion to auth2.The credentials for the Handle Manager service in the
deploy.cfg
file now require a token.The credentials for the file backend in the
deploy.cfg
file now require a token.Fixed a bug where performing a permissions search for a readable, deleted object with an incoming reference from a readable, non-deleted object would fail with a deleted object exception.
Fixed a bug that could cause workspace clones to fail under certain conditions.
VERSION: 0.7.1 (Released 6/22/17)¶
UPDATED FEATURES / MAJOR BUG FIXES:
Updated the auth client to version 0.4.4 to fix the NoSuchMethod error.
VERSION: 0.7.0 (Released 5/5/17)¶
BACKWARDS INCOMPATIBILITIES:
It is now required to provide either an object name or an object id when saving an object.
NEW FEATURES:
deleteWorkspace
andundeleteWorkspace
commands have been added to the administration interface.
UPDATED FEATURES / MAJOR BUG FIXES:
When attempting to save an object with metadata containing a null key or value a more illuminating error is thrown.
The administration script now uses the authentication service url set in the deploy.cfg file as opposed to a hard coded url.
VERSION: 0.6.0 (Released 12/9/16)¶
BACKWARDS INCOMPATIBILITIES:
The
kb|ws...
style of addressing workspaces or objects has been removed.A bug allowed workspace names of the form user:X where X is an integer > ~2^32. This style of name is temporarily allowed for backwards compatibility reasons but is deprecated and will be removed in a future release.
NEW FEATURES:
The
ObjectSpecification
structure now provides afind_reference_path
field that allows specifying that the permissions for an object should be automatically looked up via a search through the object reference graph.The resolved (e.g. all references are absolute) path through the object reference graph from an accessible object to the target object is now returned with
get_objects2
and the new methodget_object_info3
.Added a new method,
get_object_info3
that returns the path from an accessible object to the target object, but is otherwise equivalent toget_object_info_new
.get_object_info_new
is now deprecated.Objects containing a semicolon separated reference path rather than just embedded references can now be saved. If the reference path is valid and the head of the path accessible, the references will be rewritten to the absolute reference of the object at the end of the path.
Similarly, provenance references can now contain reference paths rather than just single references.
UPDATED FEATURES / MAJOR BUG FIXES:
The
ObjectSpecification
structure now allows several new ways to provide reference paths into the object graph.Fixed a bug where integers > ~2^32 were allowed as workspace and object names.
Fixed a bug in
register_typespec_copy
where any types in common between the new and previous version of the spec would be unregistered.
VERSION: 0.5.0 (Released 8/12/16)¶
BACKWARDS INCOMPATIBILITIES:
The
skip
parameter oflist_objects
has been removed.In order to save an object that contains handles to shock nodes, the user must own the shock nodes. Previously, the user only needed read permissions.
Handle Service version b9de6991b851e9cd8fa9b5012db565f051e0894f+ is now required.
Handle Manager version 3e60998fc22bb331e51b189ae1b71ebd54e58b90+ is now required.
Shock version 0.9.6+ is now required.
NEW FEATURES:
The
status
method now returns JVM memory stats and the status of MongoDB, Shock, and the Handle service and manager (if using the latter three).
UPDATED FEATURES / MAJOR BUG FIXES:
clone_workspace
now preserves object IDs from the source workspace such that the object name -> id mapping is identical for both workspaces at the completion of the clone (unless changes are made to the source workspace while the clone is in progress). Due to this change, the maximum object ID returned in aworkspace_info
tuple may be larger than the number of objects in the new workspace. The documentation has been clarified to reflect this.clone_workspace
now prevents the new workspace from being accessed in any way while the clone is in progress.clone_workspace
can now exclude user specified objects from the clone.Fixed several bugs where various failures could leave temporary files on disk.
Fixed a bug where accessing an object with handles to shock nodes anonymously would cause a null pointer error.
A temporary file is created and deleted at startup to ensure the temporary files directory is readable.
Fixed a bug where under certain circumstances more data than allowed could be stored in memory or on disk and returned in a get_objects call.
The authorization URLs used by the server may now be configured.
All configuration user id / password combinations may now be alternately fulfilled with a token.
The initialization script now takes a token rather than a user id and password for the shock user account.
VERSION: 0.4.1 (Released 5/27/16)¶
BACKWARDS INCOMPATIBILIES:
Java users will need to switch from the
ObjectIdentity
to theObjectSpecification
class when callinggetObjectInfoNew
. The interface is a superset ofObjectIdentity
and so is a simple name swap.The text of some error messages has changed.
NEW FEATURES:
Added the
get_objects2
method. This method combines the functionality ofget_objects
,get_object_provenance
,get_object_subset
, andget_referenced_objects
and as such those methods are deprecated. In particular, a user can now get a subset from a referenced object or get only the provenance from a referenced object.get_objects2
also allows for returning nulls instead of throwing an error when an object is inaccessible in the same way asget_object_info_new
.
UPDATED FEATURES / MAJOR BUG FIXES:
get_object_info_new
can now follow object references likeget_objects2
andget_referenced_objects
.Fixed an exploit where an attacker, for an arbitrary workspace, could determine the number of objects in that workspace, the number of versions of each object, and whether a particular object name exists in the workspace.
Added the
custom
,subactions
, andcaller
fields toProvenanceAction
.Added original workspace ID to the data returned by
get_objects*
methods.Unix epoch times are now accepted and emitted where possible (e.g. not in tuples) as well as string timestamps.
list_referencing_object_counts
has been deprecated.
VERSION: 0.4.0 (Released 2/2/16)¶
BACKWARDS INCOMPATIBILITIES:
the
list_objects()
skip
parameter is now deprecated and will be removed in a future version. Additionally, thelist_objects
method’s behavior has changed.list_objects
is now guaranteed to return either all the remaining objects that match the filters orlimit
objects.skip
now behaves in an unintuitive way in that the same object may appear inlist_objects
results even when theskip
parameter setting should ensure that each set of returned objects is disjoint with all the others.Module names and type names are now limited to 255 bytes.
Metadata keys and values are limited to 900B for the total of each pair of key and value.
NEW FEATURES:
Added
get_permissions_mass
function.Added
get_names_by_prefix
function.A documentation server now provides all available workspace documentation at the
/docs
endpoint.list_objects
output may now be filtered by minimum and maximum object IDs.
UPDATED FEATURES / MAJOR BUG FIXES:
Updated for compatibility with Shock 0.9.6 (tests only), 0.9.12, and 0.9.13.
Removed internal data subsetting (intended for indexing of data contents) code. No plan to use this code and drastically increases database size and codebase complexity. All workspace mongo database
type_[MD5]
collections may be deleted after upgrading.Improved logging for the
administer()
method.Fixed a bug where mongo connections would not be released when redeploying the server in an already running glassfish instance.
Fixed a bug where objects from deleted workspaces could be listed in
list_objects
output.get_permissions
no longer requires authentication.the admin user specified in the
deploy.cfg
file can no longer be removed by other admins.
VERSION: 0.3.5 (Released 5/15/15)¶
BUG FIXES:
Updated auth library dependency that prevented validating user names not in the KBase group, which was preventing sharing with a subset of real and active KBase users.
VERSION: 0.3.4 (Released 4/10/15)¶
NEW FEATURES:
Added CLI command for listing properly configured Narratives
UPDATED FEATURES / MAJOR BUG FIXES:
Updated to the new auth client. Globus APIs changed in a way that broke sharing with multiple users at the same time.
Added required fields to the deploy.cfg file for user credentials to use when querying user data. These creds must be for an administrator of kbase_users so that all users are visible to the workspace service when attempting to share workspaces.
Empty strings are now accepted as map keys
Fixed a NPE when calling list_referencing_object_counts with a non-existent object version
Fixed a race condition that could occur when operating on an object that’s in mid save
‘strict_maps’ and ‘strict_arrays’ properties are now present in ‘get_object_subset’ method
Slashes are now supported in paths used in ‘get_object_subset’ method
VERSION: 0.3.3 (Released 10/28/14)¶
NEW FEATURES:
Object references and types are now logged for many methods.
VERSION: 0.3.2 (Released 10/20/14)¶
UPDATED FEATURES / MAJOR BUG FIXES:
The ProvenanceAction data structure now has fields for entering external data sources.
The workspace client now has streaming mode off by default. To turn it back on, do setStreamingModeOn(true).
Fixed a bug that would cause calls to the handle service or handle manager to fail every other call if they were not behind nginx and the call frequency was between 1-4s.
VERSION: 0.3.1 (Released 10/1/2014)¶
UPDATED FEATURES / MAJOR BUG FIXES:
Fixed a bug where adding an @id annotation to the key of a mapping would result in a minor version increment vs. the expected major version increment.
Fixed a bug where a bad workspace @id (unparsable, deleted object, etc) with allowed types specified in the typespec would cause a NPE rather than a useful typechecking error.
VERSION: 0.3.0 (Released 9/2/2014)¶
NEW FEATURES:
The major change in this release is a major refactoring of the ID handling system. ID handling has been generalized to allow for custom ID handlers per ID type (e.g. the @id [ID_type] annotation).
The workspace now supports the @id handle annotation, which allows for embedding HandleService handle IDs in workspace objects. When the object is retrieved from the workspace, the user retrieving the object is given read access to any data referenced by handles in the object.
There is now a limit of 100,000 IDs in objects per save_objects call. IDs duplicated in the same object do not count towards this limit.
Any IDs extracted from an object are returned in get_objects, get_referenced_objects, get_object_subset, and get_object_provenance.
The source of a copied object, if visible to the user, is now exposed in the various get_objects* methods.
New command line scripts added: ws-diff to compare (client side) two workspace objects and ws-typespec-download to automatically download registered typespecs and automatically resolve dependencies.
Support added for the @metadata ws annotation to automatically extract ws metadata from the object data. String/float/int fields in objects or subobjects can be selected in addition to the length of lists and mappings.
Support for @range annotation to set limits (inclusive or exclusive) on int and float values.
UPDATED FEATURES / MAJOR BUG FIXES:
Users with write permissions to a workspace can now view permissions for all users to that workspace.
X-Forwarded-For and X-Real-IP headers are now taken into account when logging the IP of method calls. Set dont_trust_x_ip_headers=true in deploy.cfg to ignore them.
Updated timestamp format in ws-list and ws-listobj to display readable local time by default instead of the ISO timestamp.
get_object_subset no longer generates an error if a selected field or mapping key is not found, which provides better support for optional fields. Errors are still generated if an array element does not exist.
VERSION: 0.2.1 (Released 7/11/14)¶
NEW FEATURES:
get_object_provenance returns the object provenance without the data.
added get_all_type_info and get_all_func_info to return all type/function information registered for a specified module
a parsed structure of type and function defintions were added to TypeInfo and FuncInfo
the owner of a module now can determine the released versions of a types and and functions (released version info was added to TypeInfo and FuncInfo)
Java client now has a method to deactivate SSL certification validation (primarily for use with self-signed certs)
UPDATED FEATURES / MAJOR BUG FIXES:
the initialization script will no longer allow setting the mongo typedb name to the workspace type db name, and the server will refuse to start up if such is the case.
configuration of the default URL for the CLI is handled properly; in 0.2.0 the ws-url command needed to be called prior to other commands
improved documentation and other minor error handling in the CLI
again allows IRIS deployment of ws-workspace and ws-url
fixed a bug that could cause date parsing errors on valid incoming date strings
date strings now may contain ‘Z’ for the timezone
kbase user is now configurable for deploy-upstart target
there is now an option in deploy.cfg to specify the number of times to attempt to contact MongoDB on startup
VERSION: 0.2.0 (Released 5/18/14)¶
PREAMBLE:
v0.2.0 is a complete rewrite of the data path through the workspace, including type checking, sorting, data extraction, and object retrieval, for the purpose of controlling memory usage.
BACKWARDS INCOMPATIBLITIES:
deploy.cfg has several new parameters, most of which have acceptable defaults. However temp-dir needs to be set before starting the new version.
NEW FEATURES:
a new function, list_all_types, returns all the types in the workspace.
ScriptHelpers workspace library ported to python (from perl) by Mike Mundy.
UPDATED FEATURES / MAJOR BUG FIXES:
The max object size has been returned to 1GB.
start_service no longer requires user-env.sh to be sourced.
Nulls will now pass type checking where an int, float, or string is expected.
Fixed a bug where get_object_subdata would return the same subdata if two different paths through the same object were specified.
Command-line interface default URLs are configurable via the makefile.
ws-workspace and ws-url now work against the User and Job State Service when in IRIS.
The characters . and - are now allowed in workspace names.
Parallel GC has been re-enabled.
Updating a searchable ws or id annotation in a type definition now results in a major version increment instead of a minor version increment.
Fixed a bug where get_referencing_objects would throw an error if an object has no references.
VERSION: 0.1.6 (Released 3/3/14)¶
NEW FEATURES:
Get objects by reference, which allows retrieval of any objects that are referenced by objects to which the user has access.
A new version of get_object_info, get_object_info_new, allows ignoring errors when listing object information. get_object_info is deprecated in favor of this method.
Get the number of objects that reference an object via provenance or object- to-object references, including inaccessible objects.
UPDATED FEATURES / MAJOR BUG FIXES:
Filter list_objects and list_workspace_info by date
Optionally exclude globally readable objects from list_objects
list_objects now takes skip and limit parameters and returns at most 10000 objects. list_workspace_objects returns at most 10000 objects.
A user can reduce their own permissions on any workspace.
Workspace and object names can now be up to 255 characters in length.
Workspace mod dates are now updated on a save/copy/revert/delete/rename of an object.
Fixed a bug that caused object checksums to be calculated incorrectly. Note that any checksums calculated before this version are incorrect.
Fixed a bug where trying to copy an object to an object with a version > than the maximum existing version would fail. The incoming copy target version number should be ignored.
Fixed a bug where trying to copy an object to a deleted object would fail.
Clarified some exceptions / error messages.
VERSION: 0.1.5 (Released 2/5/14)¶
Hotfix to use updated auth libs with 60d token lifetime.
VERSION: 0.1.4 (Released 1/30/14)¶
NEW FEATURES:
Get the version of the workspace server.
Set metadata on a workspace and search workspaces by metadata.
UPDATED FEATURES / MAJOR BUG FIXES:
On startup the WSS attempts to create a node in shock to test for shock misconfiguration (shock client change)
VERSION: 0.1.3 (Released 1/24/14)¶
UPDATED FEATURES / MAJOR BUG FIXES:
Fixed a bug where get_module_info and get_type_info reported removed types.
Scripts now allow IDs or object references to be used in place of object and workspace names.
VERSION: 0.1.2 (Released 1/23/14)¶
Hotfix release to disallow integer object and workspace names.
VERSION: 0.1.1 (Released 1/21/14)¶
BACKWARDS INCOMPATIBILITIES:
The maximum object size is temporarily limited to 200MB.
The maximum JSON string size received by the server is temporarily limited to 250MB.
NEW FEATURES:
Add owners to modules so that multiple users can upload typespecs.
Option to list only deleted objects or workspaces.
Filter objects or workspaces list by permission level.
Filter workspaces list by owner.
Filter object list by the person who saved the object.
Filter object list by user metadata.
Return a list of objects that reference another object, either in the object data or the provenance data.
UPDATED FEATURES / MAJOR BUG FIXES:
Module owners can now see unreleased modules and types.
Turned off parallel garbage collection - was locking the server when processing large objects.
Fixed bug in WS ID relabeling in values of mappings when keys contain forward slash character
Retrieving subset of an object that includes an array element out of the array index range now generates an error instead of returning a subset with null values in the array
First error encountered during type checking halts type checking, meaning that only the first error is shown to you even if multiple errors exist
VERSION: 0.1.0 (Released 1/9/2014)¶
PREAMBLE:
0.1.0 is a complete rewrite of the workspace service and thus has many changes to the API. A function change list is below.
NEW FEATURES:
The WSS is configurable to save TOs in MongoDB/GridFS or Shock.
Load, compile, and view KIDL typespecs.
Objects are type checked against a KIDL typespec before saving.
Save provenance information with an object.
References to other workspace objects in a TO or TO provenance are confirmed accessible and type checked before saving.
A list of references from a TO or TO provenance to other workspace objects is saved and retrievable.
Hide objects. Hidden objects, by default, do not appear in the list_* methods.
Lock a workspace, freezing it permanently. Locked, publicly readable workspaces are published.
Workspaces and objects have a permanent autoincrementing ID as well as a mutable name. An object may be addressed by any combination of the workspace and object name or id plus a version number, or the KBase ID kb|ws.[workspace id].obj.[object id].ver.[object version].
Workspaces may have a <1000 character description.
Workspace names may be prefixed by the user’s username and a colon. This provides a unique per user namespace for workspace names.
Return only a user specified subset of an object.
UPDATED FEATURES / MAJOR BUG FIXES:
Many methods now operate on multiple objects rather than one object per method call.
list_objects can list objects from multiple workspaces at once.
Rename an object or workspace.
FUNCTION CHANGE LIST:
Deprecated functions, and their replacement
Functions with an altered api. Please see the API documentation for details
Removed functions
New functions
VERSION: 0.0.5 (Released 11/19/2013)¶
NEW FEATURES:
Type compiler provided embedded authorization works
Connect to mongodb databases requiring authorization
Optionally exclude world readable workspaces from the output of list_workspaces()
UPDATED FEATURES / MAJOR BUG FIXES:
Authentication is required for all writes, including workspace creation. The ‘public’ user is now no different from any other user
Workspace default permissions are now limited to none and read only
A user must have at least read access to a workspace to get its metadata
Only the user’s own permission level is now returned by get_workspacepermissions() if a user has read or write access to a workspace
Only the workspace’s owner can change the owner’s permissions
Type names are now limited to ascii alphanumeric characters and _
Object names are now limited to ascii alphanumeric characters and .|_-
Object names must now be unique per workspace, even if the objects are different types
Object and workspace names may not be integers
Removed one of the two python clients in lib/, as it was not being updated on a make while the other was
VERSION: 0.0.4 (Released 8/13/2013)¶
NEW FEATURES:
Connect to mongodb databases requiring authorization
get_objects() method
VERSION: 0.0.3 (Released 1/1/2012)¶
NEW FEATURES:
Added functions to manage the addition and removal of types.
Added functions to handle job management to support running jobs on local clusters
Added “instance” argument to “get_object” to enable users to access all object instances
Created a complete set of command line scripts for interacting with workspace
UPDATED FEATURES / MAJOR BUG FIXES:
Added ability to retrieve specific instances of objects
Fixed bug in deletion of workspaces
Fixed bug in object reversion
Fixed bug in object retrieval
Fixed bug in management of persistant state in workspace
VERSION: 0.0.2 (Released 11/30/2012)¶
NEW FEATURES:
This is the first public release of the Workspace Services.
adjusted functions to accept arguments as a hash instead of an array
added ability to provide authentication token in input arguments
VERSION: 0.0.1 (Released 10/12/2012)¶
NEW FEATURES:
This is the first internal release of the Workspace Service, all methods are new.