We’ve officially released the Vault 2013 line of products, so I can now talk about the new API features. This has been another good release for the API, some very nice stuff has been added for you to do interesting things with. I’ll also list some of the more noticeable changes you will run into if you are coming from the Vault 2012 API.
In the coming weeks, I’ll be elaborating on most of these features, but for now I’ll just give you a high level view of the new API.
New Feature: Custom Entities
Vault Professional allows you do define your own entity types. You are no longer forced to use Files, Folders, Items and Change Orders for all your data. Custom entities support properties, categories, ACL security, links and lifecycles (the same engine that files use). The only behavior you might miss is versions and revisions.
Through the API you can create custom commands, custom tabs, custom new and delete behavior, and lifecycle events for you custom entity types.
New Feature: API Compatibility
Vault Server 2013 contains two sets of web services. Once set is the new 2013 services, but the 2012 services are still there too. This means that 2012 clients will still work with the 2013 server. No update required.
Note: Compatibility does not apply to plug-ins such as custom commands, job handlers and event hooks.
New Feature: Job Processor API
The IJobHandler interface has some new additions. You can now run code during startup and shutdown. You also have hooks for sleep, which is right before Job Processor goes idle, and wake, which is right after the idle period is over.
Job Processor itself has some enhancements. It can use Windows credentials for login (however a Vault license is still consumed). There are also new command line options for Job Processor so you can do service related operations, such as pause, resume and stop.
New Feature: Auto Ownership Transfer
Transferring entities in a replicated environment just got much easier. First transfers usually happen instantly instead of requiring you to wait for a few minutes. Also the WebServiceManager will automatically transfer ownership for you attempt to edit an entity that is owned by another workgroup.
New Feature: Impersonation
If your program is logged in as an administrator, it can switch its credentials to that of another user. This is useful for utilities that edit Vault data, but you want it to preserve the user that originally created the data.
Change: .NET 4.0
All the SDK DLLs have been moved over to .NET 4.0. Since 4.0 uses a new CLR, you can’t use projects that are 3.5 or earlier. All SDK samples have been updated to Visual Studio 2010.
Change: Strong named assemblies
All SDK DLLs now have a strong name. It’s recommended you strong name your project if possible.
Change: Autodesk.Connectivity.WebServicesTools.dll has been removed.
All the code has been moved into Autodesk.Connectivity.WebServices.dll. So no code change is needed, you just have one less assembly to link to and deploy. The WebServicesTools namespace has not changed.
Change: System Name control
You can now define the system name for objects created through the API. This gives you a reliable string that you can use to look up things like property definitions and categories.
Change: Lifecycle Service
The code for managing file lifecycles has been moved to the new lifecycle service. The functions have been genericized to use entities instead of files. This change was done to support lifecycles on Folders and Custom Entities.
Change: byte  has been changed to ByteArray
Web service functions have been updated to transfer a ByteArray object in most cases where byte  was used, for example, upload and download. This change was done to support the compression feature.
By default, compression is not used. However the option is there to use LZ4 compression when transferring binary data.