CasperUpdate

From CasperTech Wiki
Revision as of 00:40, 25 June 2015 by Sphynx soleil (talk | contribs) (Undo revision 7243 by Sphynx soleil (talk))
Jump to navigation Jump to search

CasperUpdate is a system which allows creators to make self-updating products. Once a product is sold to the customer, the product will check for an update every time it is rezzed (or at specific intervals). If an update is found, the customer is asked if they wish to receive the update (which will be delivered to them).

CasperUpdate is currently in PUBLIC BETA, with final release expected sometime in July 2015.


Features

CasperUpdate uses the CasperVend back end for its functions, so you will still need a CasperVend website account. However, you do not need to have - or be using - the vendors because CasperUpdate comes with its own DropBox.
  • Completely networked and automated.
  • No notecards to edit
  • Unintrusive - unlike competing systems, CasperUpdate allows customers to suppress further update notifications.
  • No-copy support - CasperUpdate can securely distribute updates for your no-copy products.
  • Efficient - Just a single script powers our DropBox (Compared to HippoUpdate's 28 script server).
  • Fast - Updates are delivered in a flash.
  • Unlimited number of products supported - Not "almost" limitless, *actually* limitless.
  • Any version format supported, including minor releases, code names and sub-versions.
  • Full statistics and reporting of updates delivered, including CSV export.
  • CasperVend integration - keep track of which products have been rezzed by the customer
  • Communications fully encrypted with SSL
  • A fully redundant, reliable network, as proven by the success of CasperVend itself
  • Free updates for life

Rules

In order to ensure that the service remains available and fast for everyone to use, we have a few limits and rules in place.

  1. The system must ONLY be used for its intended purpose - to provide product updates.
  2. Using the API commands for any other purpose is prohibitied and is grounds for service suspension.
  3. Each object may only check for updates - at most - once per hour. Exceeding this limit temporarily (such as for testing purposes) is OK.
  4. The server "rate-limits" requests. Currently these limits are set high, but we reserve the right to lower these limits if the service is being abused.

Instructions

CasperUpdate tightly integrates with CasperVend, and uses the CasperVend website.

If you have already set up your products in CasperVend, please skip to "Drop the CasperUpdate script into your object".

Set up your account

  1. Before you begin, rez the CasperUpdate crate and touch it to unpack.
  2. DO NOT open the crate manually, or your purchase may not be registered. If touching the crate does nothing, check that scripts are enabled on the parcel you are on.
  3. Choose a suitable location to rez your DropBox. Your DropBox must stay rezzed at all times, so choose somewhere that it can stay.
  4. Rez the DropBox in your chosen location. The DropBox will be named something like "CasperTech DropBox vX.XX".
  5. Touch the DropBox, which will bring up a blue dialog.
  6. If you don't get a blue pop-up dialog when you touch your dropbox, make sure your chosen location has scripts enabled.
  7. From the blue menu, choose "Admin". This will then show you a dialog menu asking you to visit a URL. Click "Go to URL".
  8. If you don't get a "Go to URL" dialog, you may have yourself muted (it sounds silly, but this is a very common problem). Please check your viewer's block list.
  9. Once you have loaded the website, you may be asked to choose a password. Do this now. If you have previously created an account, you will be asked to enter your password.
  10. Once successfully logged in, you should be presented with a page titled "Vendors", and you will see a few details about your DropBox.

Add Items to Your DropBox


Do not drag over any items which show (no transfer) next to them. You cannot transfer/send those to your customers, so they will not work in the DropBox either.
Do NOT delete the DropBox script or your updates will not be sent.
  1. Switch back to Second Life, and right-click the dropbox that you rezzed out.
  2. Choose "Edit".
  3. Click the "Contents" tab in the edit floater. You should see a script with the name CasperTech DropBox".
  4. Choose the product(s) in your inventory that will be delivered to your customers when they claim an update.
  5. Drag them from your inventory to the DropBox contents window.
  6. Wait for the DropBox to upload information about the items to our servers.
  7. DropBox will show hovertext saying "Box is live" when this process is complete, along with the number of items it counts as valid products.

Add products

  1. If you have closed the website, touch the DropBox again and choose "Admin", and follow the link it gives you.
  2. Once the site is open and you've logged in (if necessary), choose "Products" from the menu on the left.
  3. Repeat the following steps for each product that you wish to use with CasperUpdate.
  4. Click "List new product" at the top of the page.
  5. Fill out the information about your product.
  6. Most of the settings available to you here are only useful if you use CasperVend, or you plan to. You can ignore them all, except the following::
    • Item - This allows you to select an item from your dropbox to deliver to the customer when they update this product.
    • Name - This is the name of the product.
    • Price - This isn't used by CasperUpdate, but it's required so that CasperVend merchants don't accidentally give their products away for free!
    • Permissions - The "Copy" tickbox is important. This changes the behaviour of CasperUpdate based on whether your item is copy or no-copy.
    • Version
  7. Click "Save" at the bottom of the page.

Drop the CasperUpdate script into your object

Repeat the following steps for each product that you wish to use with CasperUpdate.

  • Rez the product on the ground.
  • Right click the product, go to "Edit", then switch to the "Contents" tab.
  • After reading the warning below, drag the "CasperUpdate vX.X" script into your object.
  • Make sure you use the correct script! DO NOT drag the "CasperUpdate No-Copy Protector" script into your object yet! This may destroy your object!
  • Leave the object rezzed and continue with the following steps

Set Permissions

Make certain that you set the correct permissions for both your object and the script inside. Not doing so may result in people being able to obtain your products without paying.

For objects with COPY permissions

For objects with COPY permissions, you MUST set:

  • The "CasperUpdate vX.XX" script permissions to "No Modify". If your object is "No Transfer", you MUST also set the script to No Transfer.

The object permissions don't matter for Copy products.

For objects with NO COPY permissions

For objects with NO COPY permissions, you MUST set:

  • The "CasperUpdate vX.XX" script permissions to "No Modify" and "No Copy".
  • The OBJECT permissions to "No Modify".

Once you have finished editing the script (as described below), and you have confirmed that the script is running, and you have taken a backup copy of your object.. and only then.. drop the "CasperUpdate No-Copy Protector" script into your object. LEAVE THE PERMISSIONS FOR THIS SCRIPT AS THEY ARE.

For no-copy objects, it is absolutely crucial that you set the object to "no-modify", and that the "CasperUpdate No-Copy Protector" script is set to "COPY". If you don't do this, people will be able to effectively make copies of your no-copy item.

Edit the script and set options

Inside each of the products, you should now have (at least) a "CasperUpdate v#.##" script. Double click the script in order to open the script editor window.

  1. Add your API key

    On the website, click the "Overview" button around the top left of the page.

    In the "API Configuration" box, you should see a line which reads "Full API Key".

    Your full API key is a 40-character long code which will look something like this:

    1ff379c6a13eb414877b8734781244dbb594e56d

    Look for the following line: <lsl>string APIKey = "";</lsl>

    You need to place your key between the " characters. So, in this case, it will end up look like this:

    <lsl>string APIKey = "1ff379c6a13eb414877b8734781244dbb594e56d";</lsl>
  2. Add your Product Update Key

    You can find this key by going to the Products section on the website, clicking Edit' next to the product you're currently working with, and scrolling down to "Update Key". Click the "Generate Key" button, and then copy the key into the script.

    In my case,

    <lsl>string ProductUpdateKey = "";</lsl>

    becomes

    <lsl>string ProductUpdateKey = "dd6ba159a09d3ceea613b5b7c80c01966557204b";</lsl>

  3. Set the version

    The "Version" parameter should be set to the same version that you set on the product's entry in the website.

    For example,

    <lsl>string Version = "";</lsl>

    might become

    <lsl>string Version = "1.0 BETA";</lsl>

  4. Save the script

    Click "Save" at the bottom of the script. After a few seconds, you should see "Save complete" at the bottom of the window. If you see something else, check that you have made the edits exactly as described above.

    Make sure the "Running" tickbox at the bottom of the script is TICKED.

Final Checks

Once done, you should check that your settings are correct.

For objects with COPY permissions

  1. Your object should contain the "CasperUpdate v#.##" script, which should be set to "NO MODIFY", "COPY" and, if your object is no transfer, then the script should also be set to NO TRANSFER.
  2. The script should contain your API key, the Product Update Key, and the Version, and it should be saved and RUNNING (check the running tickbox at the bottom).

For objects with NO COPY permissions

  1. Your object should contain the "CasperUpdate v#.##" script, which should be set to "NO MODIFY" and "NO COPY".
  2. The script should contain your API key, the Product Update Key, and the Version, and it should be saved and RUNNING (check the running tickbox at the bottom).
  3. Your object should be set to "NO MODIFY" and "NO COPY".
  4. Your object should contain the "CasperUpdate No-Copy Protector" script, which should be set to "NO MODIFY", "COPY", "TRANSFER".

Test!

We recommend that you send a copy of the product to a trusted friend or alt. If set up correctly, they SHOULD NOT receive any notices from the CasperUpdate script, UNTIL you update your product.

You may wish to follow the steps below to test the update process to make sure everything works.

When you update your product

  1. Remove the old item from your DropBox, and wait for it to update.
  2. Add the updated to your dropbox, and wait for it to update.
  3. Touch the DropBox, go to "Admin", and then follow the URL to take you to the website.
  4. Click "Products" on the left, and then click "edit" next to the product you are updating.
  5. Under "Item", you need to change the item to the new version (If the name hasn't changed, then leave as is.)
  6. Under "Version", give the product a new version.
  7. Save the product.

Troubleshooting

Not getting a dialog on rez?

Make sure that the product on the website has a different "version" number than is set in the script.

You can also temporarily change "integer Debug = FALSE" to "integer Debug = TRUE" in order to receive error messages, to make sure that your settings are correct.