Export Permission Implemented

We updated Kitely today, and now Kitely Market merchants can take advantage of the Export Permission to decide whether users who buy their products can take them to other OpenSim grids. We also fixed several problems that were reported by our users.

Export Permission

The Export Permission specifies whether objects and assets are allowed to leave the Kitely grid. Merchants can enable or disable the Export Permission for each of their products in the Kitely Market. This is a very powerful feature, as it gives content creators the flexibility to choose whether they want their products to be highly secure (by restricting them to the Kitely grid), or to sell them to anyone in the OpenSim metaverse.

The Export permission works differently from the standard OpenSim permissions (Move/Copy/Transfer): instead of setting it in the viewer, this permission is set in the Kitely Market. The Export permission isn’t shown in the viewer. Content creators that add a product to the Kitely Market can choose whether to enable Export on their product by clicking on a checkbox:

Export Permission Checkbox

When the Export permission is enabled, we show “E” next to all of the items in the product. This is simply a reminder that the items that the buyer receives will have the Export permission:

Export Permission in Items

If the merchant adds any No-Export items to the product then the product automatically becomes No-Export as well.

When users buy a product, the objects and assets that they receive are tagged with the product that they came from; this enables us to track them and enforce their export restrictions. When users attempt an export operation we prevent No-Export objects and assets from leaving Kitely. This check is very strict: if an object contains even one No-Export asset then the entire object becomes No-Export. Currently the only export operation is “Export OAR”, but in the future we’ll also allow transferring items to other grids; that’s also a type of export.

Export OAR Respects the Export Permission

Kitely has a long history of allowing our users a lot of flexibility, while maintaining strict content protections. We’re one of the few commercial grids that allow exporting OpenSim regions to OAR files; this has been available since 2011. The Export Permission didn’t exist until now, so previously we enforced content protection by making OAR exports respect copy and transfer permissions. Today we’ve made two big improvements to the Export OAR feature. First, as explained above, we now prevent No-Export items from being included in OAR files. Second, after Export OAR completes, we now create an Export World Report that summarizes the contents of the world and which objects (if any) weren’t saved to the OAR file. You can view this report by clicking on a link in the same dialog where you download the OAR file:

View World Report

Only objects that originated from the Kitely Market have an Export or No-Export Permission. Objects that weren’t bought in the Kitely Market can be exported if they have both Copy and Transfer permissions.

Here’s an example of a World Report:

Sample World Report

Other Improvements

We changed how we resize product images in the Kitely Market. Previously, if the images weren’t in the correct aspect ratio (4:3) then we cropped them on the sides. This was inconvenient for people who have images in other aspect ratios because they had to either accept this cropping, or resize the images before uploading them. We’ve therefore stopped cropping images: instead, we allow them to occupy only part of the picture area, with whitespace making up the missing parts. That said, it’s still recommended to upload images with 800×600 pixels because they’re the most eye-catching for potential buyers.

We increased the maximum length of a product description in the Kitely Market from 2000 characters to 5000 characters. We increased the maximum length of a store’s About text to 5000 characters as well.

Some users with large inventories had difficulty logging-in to virtual worlds. This happened because on login OpenSim searches the user’s entire inventory for Gestures, so the time it took to login was proportional to the size of the user’s inventory. We added an optimization that eliminates this slowdown.

The LSL function llRequestUrl didn’t work, because it requires a server name but we used to return an internal hostname that was inaccessible outside of Kitely. We now return a public hostname that works correctly.

The “Show Objects” feature didn’t work in megaregions. This is a feature in the “About Land” dialog that lists all the objects in a parcel according to their owner. It used to work only in non-megaregion mode, but now it works in our Advanced Megaregions as well.

A few people encountered a problem logging-in using Twitter because Twitter have changed their API. We updated to the new API (version 1.1), and now Twitter logins work again.

Viewers support displaying up to 8 textures per mesh. There used to be an OpenSim problem with storing more than 6 textures per mesh; that problem has now been fixed.