Difference between revisions of "Second Life Login API Strawman"

From Second Life Wiki
Jump to navigation Jump to search
Line 132: Line 132:
=== Optional Parameters ===
=== Optional Parameters ===
The "options" key points to an array of optional options.  Zero or more of the  following character strings may appear in any order in the array:
The "options" key points to an array of optional options.  Zero or more of the  following character strings may appear in any order in the array:
    { 'options' : ["inventory-root" | "inventory-skeleton" | "inventory-lib-root" | "inventory-lib-owner" | "inventory-skel-lib" | "gestures" | "event_categories" | "event_notifications" | "classified_categories" | "buddy_list" | "ui-config" | login-flags" | "global-textures"]+ }
'''inventory-root''' UUID of the root inventory folder in the client's inventory window
'''inventory-skeleton''' "starter kit" inventory: name, folder_id, parent_id, type_default, version of all folders
'''inventory-lib-root''' folder_id of library root inventory folder
'''inventory-lib-owner''' agent_id of owner for inventory lib 
'''inventory-skel-lib''' LL supplied library of inventory items: same as inventory-skeleton, except global inventory
'''gestures''' list of item_id, asset_id pairs for active gestures
'''event_categories'''  list of different event categories
'''event_notifications''' list of events for which you have notifications
'''classified_categories"''' return a list of classifieds categories
'''buddy-list''' agent_id, granted rights and given rights of everyone that is your buddy''' 
'''ui-config''' list of UI enabled/disabled states, currently: allow_first_life ('Y' or 'N') for teens   
'''login-flags''' if set, return 'stipend_since_login', 'ever_logged_in', 'gendered', and 'daylight_savings' values
'''global-textures''' Texture UUIDs for global textures
=== Required Response ===
The valid (non-error) value returned by the login call is in standard xmlrpc name, value format. The most important of these is the [[Current_login_protocols#Login_Seed-Capability|"Login Seed-Capability"]] discussed below (not to be confused with the new "seed capability" for the new login procedure):
{ "last_name" : lastname }
{ "sim_ip" : 64.129.40.58 }
{ "start_location" : last }
{ "seconds_since_epoch" : 1195447316 }
{ "message" : -=- http://blog.secondlife.com -=- Visit the Official Linden Blog for the latest world status updates! }
{ "first_name" : first_name }
{ "circuit_code" : 245160577 }
{ "sim_port" : 13005 }
{ "secure_session_id" : fdb501ca-22f1-4470-b515-2650f54b8117 }
{ "look_at" : [r-0.85717299999999996274,r0.51502899999999995906,r0] }
{ "agent_id" : d5f403c7-7981-425d-a0b5-c65a3d0a4693 }
{ "inventory_host" : inv12-mysql }
{ "region_y" : 244992 }
{ "region_x" : 247808 }
{ "seed_capability" : https://sim2054.agni.lindenlab.com:12043/cap/d373fdc9-d275-e484-3ad2-4a9b231f4e34 }
{ "agent_access" : M }
{ "session_id" : 65a7213a-723a-4fcf-baca-7b247c4b43c5 }
{ "login" : true }


== Optional Response ===
'''inventory-root''' UUID of the root inventory folder in the client's inventory window
'''inventory-root''' UUID of the root inventory folder in the client's inventory window
Response:
   {'inventory-root' => {folder_id' => 'UUID of Folder ID'} }     
   {'inventory-root' => {folder_id' => 'UUID of Folder ID'} }     


'''inventory-skeleton''' "starter kit" inventory: name, folder_id, parent_id, type_default, version of all folders
'''inventory-skeleton''' "starter kit" inventory: name, folder_id, parent_id, type_default, version of all folders
Response:
     {'inventory-skeleton' =>  {'name, folder_id, parent_id'},{'name, folder_id, parent_id'} ,{'name, folder_id, parent_id'} .... }  
     {'inventory-skeleton' =>  {'name, folder_id, parent_id'},{'name, folder_id, parent_id'} ,{'name, folder_id, parent_id'} .... }  


Line 145: Line 180:


'''inventory-lib-owner''' agent_id of owner for inventory lib   
'''inventory-lib-owner''' agent_id of owner for inventory lib   
Response:
   {'inventory-lib-owner' => {'agent_id' => 'agent id uuid '}}
   {'inventory-lib-owner' => {'agent_id' => 'agent id uuid '}}


'''inventory-skel-lib''' LL supplied library of inventory items: same as inventory-skeleton, except global inventory
'''inventory-skel-lib''' LL supplied library of inventory items: same as inventory-skeleton, except global inventory
Response:
     {'inventory-skeleton' =>  {'f.name, f.folder_id, f.parent_id, f.type_default, f.version '},  
     {'inventory-skeleton' =>  {'f.name, f.folder_id, f.parent_id, f.type_default, f.version '},  
                               {'f.name, f.folder_id, f.parent_id, f.type_default, f.version'} ,
                               {'f.name, f.folder_id, f.parent_id, f.type_default, f.version'} ,
Line 155: Line 188:


'''gestures''' list of item_id, asset_id pairs for active gestures  
'''gestures''' list of item_id, asset_id pairs for active gestures  
Response:
     {'gestures' => {gesture item_id, gesture asset_id}
     {'gestures' => {gesture item_id, gesture asset_id}
                   {gesture item_id, gesture asset_id}
                   {gesture item_id, gesture asset_id}
Line 161: Line 193:


'''event_categories'''  list of different event categories
'''event_categories'''  list of different event categories
Response:
     {'event_categories' => {category_id (int), category_name(string)},
     {'event_categories' => {category_id (int), category_name(string)},
                           {category_id (int), category_name(string)},
                           {category_id (int), category_name(string)},
Line 168: Line 199:


'''event_notifications''' list of events for which you have notifications
'''event_notifications''' list of events for which you have notifications
Response:
     {'gestures' => [event_id, event_name,event_desc, event_date, grid_x, grid_y, x_region, y_region ]
     {'gestures' => [event_id, event_name,event_desc, event_date, grid_x, grid_y, x_region, y_region ]
                   [event_id, event_name,event_desc, event_date, grid_x, grid_y, x_region, y_region ]
                   [event_id, event_name,event_desc, event_date, grid_x, grid_y, x_region, y_region ]
Line 174: Line 204:


'''classified_categories"''' return a list of classifieds categories
'''classified_categories"''' return a list of classifieds categories
Response:
     {'event_categories' => {[category_id (int), category_name(string)],
     {'event_categories' => {[category_id (int), category_name(string)],
                           [category_id (int), category_name(string)],
                           [category_id (int), category_name(string)],
Line 181: Line 210:


'''buddy-list''' agent_id, granted rights and given rights of everyone that is your buddy'''   
'''buddy-list''' agent_id, granted rights and given rights of everyone that is your buddy'''   
Response:
     {'buddy-list' => {buddy_id, buddy_rights_has, buddy_rights_given},
     {'buddy-list' => {buddy_id, buddy_rights_has, buddy_rights_given},
                     {buddy_id, buddy_rights_has, buddy_rights_given},
                     {buddy_id, buddy_rights_has, buddy_rights_given},
Line 187: Line 215:
              
              
'''ui-config''' list of UI enabled/disabled states, currently: allow_first_life ('Y' or 'N') for teens     
'''ui-config''' list of UI enabled/disabled states, currently: allow_first_life ('Y' or 'N') for teens     
Response:
     {'ui-config' => {'allow_first_life' => if allow first life} }
     {'ui-config' => {'allow_first_life' => if allow first life} }


'''login-flags''' unknown
'''login-flags''' if set, return 'stipend_since_login', 'ever_logged_in', 'gendered', and 'daylight_savings' values
* if exist get wearable_count from inventory database and check for daylight_savings
* push values into array 'rv' at key 'login-flags'
Response:
   {'login-flags' => {'stipend_since_login' => $stipend_since_login,  
   {'login-flags' => {'stipend_since_login' => $stipend_since_login,  
                       'ever_logged_in' => $ever_logged_in,
                       'ever_logged_in' => $ever_logged_in,
Line 199: Line 223:
                       'daylight_savings' => $daylight_savings
                       'daylight_savings' => $daylight_savings
                     }}
                     }}
''':• "global-textures" Texture UUIDs for global textures
'''global-textures''' Texture UUIDs for global textures
Response:
   {'global-textures' => {'sun_texture_id' => $sun_texture_id,
   {'global-textures' => {'sun_texture_id' => $sun_texture_id,
                         'moon_texture_id' => $moon_texture_id,
                         'moon_texture_id' => $moon_texture_id,
                         'cloud_texture_id' => $cloud_texture_id
                         'cloud_texture_id' => $cloud_texture_id
                         }}
                         }}
=== Response ===
The valid (non-error) value returned by the login call is in standard xmlrpc name, value format. The most important of these is the [[Current_login_protocols#Login_Seed-Capability|"Login Seed-Capability"]] discussed below (not to be confused with the new "seed capability" for the new login procedure):
::Note: Values associated with the optional string parameters are preceded by a "*".
:• last_name: lastname
:• sim_ip: 64.129.40.58
:• login-flags: [{'daylight_savings': 'N', 'stipend_since_login': 'N', 'gendered': 'Y', 'ever_logged_in': 'Y'}]
:• inventory-lib-root: [{'folder_id': '1c7a7fd0-104e-a8b1-51c6-32ea9b08e38b'}]
:• event_categories: [{'category_id': 18, 'category_name': 'Discussion'}, {'category_id': 19, 'category_name': 'Sports'}, {'category_id': 20, 'category_name': 'Live Music'}, {'category_id': 22, 'category_name': 'Commercial'}, {'category_id': 23, 'category_name': 'Nightlife/Entertainment'}, {'category_id': 24, 'category_name': 'Games/Contests'}, {'category_id': 25, 'category_name': 'Pageants'}, {'category_id': 26, 'category_name': 'Education'}, {'category_id': 27, 'category_name': 'Arts and Culture'}, {'category_id': 28, 'category_name': 'Charity/Support Groups'}, {'category_id': 29, 'category_name': 'Miscellaneous'}]
:• inventory-lib-owner: [{'agent_id': 'ba2a564a-f0f1-4b82-9c61-b7520bfcd09f'}]
:• start_location: last
:• seconds_since_epoch: 1195447316
:• message: -=- http://blog.secondlife.com -=- Visit the Official Linden Blog for the latest world status updates!
:• first_name: first_name
:• inventory-skeleton:
<pre style="overflow:auto"><nowiki>[{'parent_id': '547448bd-4b66-4bc9-bb87-2dc5c7a1fa8b', 'version': 6, 'name': 'Calling Cards', 'type_default': 2, 'folder_id': '072ce32a-e091-42d4-ae23-251553011f8b'}, {'parent_id': 'a78d58ec-a457-45f2-bec2-090a9f031dc2', 'version': 13, 'name': 'Male Gestures', 'type_default': -1, 'folder_id': '0d77a3c2-fbba-5172-bd23-cec8735fb029'}, {'parent_id': 'a78d58ec-a457-45f2-bec2-090a9f031dc2', 'version': 28, 'name': 'Common Gestures', 'type_default': -1, 'folder_id': '1be3f1d4-4db4-9849-8c5f-7d54d6866f93'}, {'parent_id': '547448bd-4b66-4bc9-bb87-2dc5c7a1fa8b', 'version': 7, 'name': 'Body Parts', 'type_default': 13, 'folder_id': '2271d4db-9254-49de-b544-d66eb1efd19a'}, {'parent_id': '547448bd-4b66-4bc9-bb87-2dc5c7a1fa8b', 'version': 4, 'name': 'Notecards', 'type_default': 7, 'folder_id': '2e706667-00c6-4a9a-95f1-83c65a08f893'}, {'parent_id': '547448bd-4b66-4bc9-bb87-2dc5c7a1fa8b', 'version': 8, 'name': 'Clothing', 'type_default': 5, 'folder_id': '3cbf18ff-ed8d-4e1b-ba25-9ee1
e4225b04'}, {'parent_id': '547448bd-4b66-4bc9-bb87-2dc5c7a1fa8b', 'version': 1, 'name': 'Scripts', 'type_default': 10, 'folder_id': '494154ea-ddc6-433d-a512-06a102218566'}, {'parent_id': '00000000-0000-0000-0000-000000000000', 'version': 2, 'name': 'My Inventory', 'type_default': 8, 'folder_id': '547448bd-4b66-4bc9-bb87-2dc5c7a1fa8b'}, {'parent_id': '547448bd-4b66-4bc9-bb87-2dc5c7a1fa8b', 'version': 1, 'name': 'Photo Album', 'type_default': 15, 'folder_id': '551c87dd-8479-4129-985e-ad5b3a956807'}, {'parent_id': '547448bd-4b66-4bc9-bb87-2dc5c7a1fa8b', 'version': 8, 'name': 'Landmarks', 'type_default': 3, 'folder_id': '7036e1f1-f45d-4dbf-9953-7fd039aaf372'}, {'parent_id': '547448bd-4b66-4bc9-bb87-2dc5c7a1fa8b', 'version': 1, 'name': 'Sounds', 'type_default': 1, 'folder_id': '854ad656-888d-4072-b21c-9f81ad4b573a'}, {'parent_id': '547448bd-4b66-4bc9-bb87-2dc5c7a1fa8b', 'version': 1, 'name': 'Lost And Found', 'type_default': 16, 'folder_id': '8af1b224-c0d4-4062-a57e-ceaa0b80739a'}, {'parent
_id': '3cbf18ff-ed8d-4e1b-ba25-9ee1e4225b04', 'version': 45, 'name': 'Male Shape & Outfit', 'type_default': -1, 'folder_id': '95da8586-07f4-1113-56c7-ae3c2f3fa0b7'}, {'parent_id': '547448bd-4b66-4bc9-bb87-2dc5c7a1fa8b', 'version': 3, 'name': 'Gestures', 'type_default': 21, 'folder_id': 'a78d58ec-a457-45f2-bec2-090a9f031dc2'}, {'parent_id': '547448bd-4b66-4bc9-bb87-2dc5c7a1fa8b', 'version': 29, 'name': 'Objects', 'type_default': 6, 'folder_id': 'aa8915e6-f0ea-4679-9c7a-d28f5eee2b22'}, {'parent_id': '547448bd-4b66-4bc9-bb87-2dc5c7a1fa8b', 'version': 1, 'name': 'Animations', 'type_default': 20, 'folder_id': 'bb4aa79e-0cd0-4284-bf77-321332d62739'}, {'parent_id': '547448bd-4b66-4bc9-bb87-2dc5c7a1fa8b', 'version': 4, 'name': 'Trash', 'type_default': 14, 'folder_id': 'e87e122f-8155-bf41-3a84-ad7614737b05'}, {'parent_id': '3cbf18ff-ed8d-4e1b-ba25-9ee1e4225b04', 'version': 22, 'name': 'sai', 'type_default': -1, 'folder_id': 'eef687d0-7493-3139-1644-1fe676e7fb86'}, {'parent_id': '547448bd-4b66-4
bc9-bb87-2dc5c7a1fa8b', 'version': 1, 'name': 'Textures', 'type_default': 0, 'folder_id': 'f8e3725c-a294-4fce-842e-27e1b830c32b'}]</nowiki></pre>
:• circuit_code: 245160577
:• sim_port: 13005
:• buddy-list: [{'buddy_id': '3163a2e6-0be1-4660-8412-61345692f55e', 'buddy_rights_given': 1, 'buddy_rights_has': 1}, {'buddy_id': '5b20e809-4ec4-47e2-9141-83bf7878afa7', 'buddy_rights_given': 1, 'buddy_rights_has': 1}, {'buddy_id': 'aaabdfb6-8438-4485-b98c-20b6416d0a69', 'buddy_rights_given': 1, 'buddy_rights_has': 1}, {'buddy_id': 'b3ff9eb4-ca7d-4dae-bd3c-bfbed6e3fbac', 'buddy_rights_given': 1, 'buddy_rights_has': 1}, {'buddy_id': 'eeaedeb6-c702-472a-b725-e4492095c69a', 'buddy_rights_given': 1, 'buddy_rights_has': 1}]
:• inventory-skel-lib:
<pre style="overflow:auto"><nowiki>[{'parent_id': '5b064c39-607c-2ced-d5d4-a124a267bbb7', 'version': 2, 'name': 'Sculpt Textures', 'type_default': -1, 'folder_id': '00a9afce-5661-a7a0-c9b6-a79ebc0aaa91'}, {'parent_id': 'afd25620-d379-4c16-ed03-b4a18967472c', 'version': 11, 'name': 'Misc Textures', 'type_default': -1, 'folder_id': '089ea65b-4ecf-f16d-1290-95d36588b80d'}, {'parent_id': 'c9ea5076-9334-d847-f072-1cf56a1d52d8', 'version': 1, 'name': 'Irish Lass', 'type_default': -1, 'folder_id': '15cafc5d-b7f9-75ad-938a-49aebd99c27c'}, {'parent_id': '6371a71c-7fc2-c38f-f87c-f0933868fd73', 'version': 1, 'name': 'Atoll continent stuff', 'type_default': -1, 'folder_id': '1a189e4c-71df-be20-f67d-93eea2170b09'}, {'parent_id': '2e4ded39-d0d7-87fb-27e9-ca1bd01fd6c0', 'version': 69, 'name': 'Other Gestures', 'type_default': -1, 'folder_id': '1ace1c79-4125-fcbe-bf02-cf84514e0f78'}, {'parent_id': '1c7a7fd0-104e-a8b1-51c6-32ea9b08e38b', 'version': 1, 'name': 'Animations', 'type_default': 20, 'folder_id': '1b80d6c4-9
64f-bece-8b2d-f8af13fb4915'}, {'parent_id': '1c7a7fd0-104e-a8b1-51c6-32ea9b08e38b', 'version': 6, 'name': 'Body Parts', 'type_default': 13, 'folder_id': '1bfc19fc-6a63-3dd6-ad50-161711941610'}, {'parent_id': '00000000-0000-0000-0000-000000000000', 'version': 92, 'name': 'Library', 'type_default': 8, 'folder_id': '1c7a7fd0-104e-a8b1-51c6-32ea9b08e38b'}, {'parent_id': '51ba6e1b-e503-9b98-d9df-b0664d5457d6', 'version': 16, 'name': 'Female Shape & Outfit', 'type_default': -1, 'folder_id': '1c7e4cf3-675d-97a5-7ea6-6c61e99e4a25'}, {'parent_id': '6371a71c-7fc2-c38f-f87c-f0933868fd73', 'version': 9, 'name': 'Landscaping', 'type_default': -1, 'folder_id': '1d92e88c-698b-1493-2d67-39e59536bd04'}, {'parent_id': 'afd25620-d379-4c16-ed03-b4a18967472c', 'version': 1, 'name': 'Road Textures', 'type_default': -1, 'folder_id': '1e986366-0cb1-c557-7784-914dfe334bc3'}, {'parent_id': '1bfc19fc-6a63-3dd6-ad50-161711941610', 'version': 1, 'name': "Hair - Women's", 'type_default': -1, 'folder_id': '1f10e3f5-
ed21-49f0-5eb7-c8e47f4e556d'}, {'parent_id': '51ba6e1b-e503-9b98-d9df-b0664d5457d6', 'version': 4, 'name': 'Nightclub Female', 'type_default': -1, 'folder_id': '21617ba6-3be6-ae19-5bea-187271ba98e6'}, {'parent_id': 'c9ea5076-9334-d847-f072-1cf56a1d52d8', 'version': 1, 'name': 'Ruth', 'type_default': -1, 'folder_id': '223e8dee-a7ce-ee79-6755-09c210ea6a73'}, {'parent_id': '51ba6e1b-e503-9b98-d9df-b0664d5457d6', 'version': 4, 'name': 'Cybergoth Female', 'type_default': -1, 'folder_id': '22bd7b4e-b32d-91a3-cd69-e50ed03ce4d8'}, {'parent_id': '6371a71c-7fc2-c38f-f87c-f0933868fd73', 'version': 1, 'name': 'Business', 'type_default': -1, 'folder_id': '240942f6-362d-59c3-412c-776e0e09c9af'}, {'parent_id': '68b1584f-bad8-6594-0dcb-3da2471c0ae2', 'version': 1, 'name': 'Particle System', 'type_default': -1, 'folder_id': '257acf7b-fc86-f4ef-8244-38245d609918'}, {'parent_id': '9732c8e2-3188-1e04-d0cf-6fe957ea4979', 'version': 1, 'name': 'Terrain Textures - Islands', 'type_default': -1, 'folder_id': '
269c4fca-c0fb-a765-2f2c-a2e09dfb4b32'}, {'parent_id': '6371a71c-7fc2-c38f-f87c-f0933868fd73', 'version': 4, 'name': 'Telehubs', 'type_default': -1, 'folder_id': '299124cf-b626-f13e-edb8-df6debc5e25a'}, {'parent_id': '6371a71c-7fc2-c38f-f87c-f0933868fd73', 'version': 1, 'name': 'Dominos', 'type_default': -1, 'folder_id': '2b28a8dc-6ced-600b-6158-26171a7b44ad'}, {'parent_id': '1c7a7fd0-104e-a8b1-51c6-32ea9b08e38b', 'version': 1, 'name': 'Sounds', 'type_default': 1, 'folder_id': '2bb04b35-a411-1682-85f1-ef97c0ab5621'}, {'parent_id': 'c9ea5076-9334-d847-f072-1cf56a1d52d8', 'version': 1, 'name': 'Little Red Riding Hood', 'type_default': -1, 'folder_id': '2dd24596-8706-1771-a383-865bcd82cfa4'}, {'parent_id': '1c7a7fd0-104e-a8b1-51c6-32ea9b08e38b', 'version': 8, 'name': 'Gestures', 'type_default': 21, 'folder_id': '2e4ded39-d0d7-87fb-27e9-ca1bd01fd6c0'}, {'parent_id': '51ba6e1b-e503-9b98-d9df-b0664d5457d6', 'version': 4, 'name': 'City Chic Female', 'type_default': -1, 'folder_id': '3092d8ff-0
d06-64b6-84b2-814e59523d81'}, {'parent_id': '5b064c39-607c-2ced-d5d4-a124a267bbb7', 'version': 3, 'name': 'Surface Textures', 'type_default': -1, 'folder_id': '311caaa4-5a1c-235a-5e1f-5e395bef71bc'}, {'parent_id': 'c9ea5076-9334-d847-f072-1cf56a1d52d8', 'version': 1, 'name': 'Groupie Chick', 'type_default': -1, 'folder_id': '31919c06-855f-509f-cd92-2588229593f4'}, {'parent_id': '2e4ded39-d0d7-87fb-27e9-ca1bd01fd6c0', 'version': 1, 'name': 'Male Gestures', 'type_default': -1, 'folder_id': '3550b164-9362-46b8-d377-f0064c8db3b8'}, {'parent_id': 'afd25620-d379-4c16-ed03-b4a18967472c', 'version': 23, 'name': 'Floor Tile', 'type_default': -1, 'folder_id': '38fc02ce-9a62-8f80-2dc6-1caaa92f52be'}, {'parent_id': '51ba6e1b-e503-9b98-d9df-b0664d5457d6', 'version': 4, 'name': 'City Chic Male', 'type_default': -1, 'folder_id': '41743b67-6cde-5496-6be4-4751c684f715'}, {'parent_id': '6371a71c-7fc2-c38f-f87c-f0933868fd73', 'version': 19, 'name': 'Sculpt Prims - Examples', 'type_default': -1, 'folder_i
d': '4341aa8e-970f-cd33-51fb-4cb5b02dd387'}, {'parent_id': '51ba6e1b-e503-9b98-d9df-b0664d5457d6', 'version': 4, 'name': 'Goth Female', 'type_default': -1, 'folder_id': '4ffd5f38-5c7a-3a73-505f-3575951d5240'}, {'parent_id': '1c7a7fd0-104e-a8b1-51c6-32ea9b08e38b', 'version': 87, 'name': 'Clothing', 'type_default': 5, 'folder_id': '51ba6e1b-e503-9b98-d9df-b0664d5457d6'}, {'parent_id': '1bfc19fc-6a63-3dd6-ad50-161711941610', 'version': 1, 'name': "Hair - Men's", 'type_default': -1, 'folder_id': '5603b09d-0579-b03a-6f5c-d5208e79415e'}, {'parent_id': 'afd25620-d379-4c16-ed03-b4a18967472c', 'version': 13, 'name': 'Dirt, Sand, Ground', 'type_default': -1, 'folder_id': '579b4127-d7df-c8bf-bb73-811a618661db'}, {'parent_id': 'afd25620-d379-4c16-ed03-b4a18967472c', 'version': 31, 'name': 'Atoll Textures', 'type_default': -1, 'folder_id': '588a92f7-1b3c-ff87-15cd-9045c3862d52'}, {'parent_id': 'afd25620-d379-4c16-ed03-b4a18967472c', 'version': 17, 'name': 'Wallpaper', 'type_default': -1, 'folder_id
': '58f5cec2-8392-ac4c-c453-cb2dee1241bb'}, {'parent_id': 'afd25620-d379-4c16-ed03-b4a18967472c', 'version': 1, 'name': 'Sculpt Textures', 'type_default': -1, 'folder_id': '5b064c39-607c-2ced-d5d4-a124a267bbb7'}, {'parent_id': 'c9ea5076-9334-d847-f072-1cf56a1d52d8', 'version': 1, 'name': 'Fireman', 'type_default': -1, 'folder_id': '5c096e4e-4a41-a4ee-cf4f-e07825ea4669'}, {'parent_id': '6371a71c-7fc2-c38f-f87c-f0933868fd73', 'version': 1, 'name': 'Household', 'type_default': -1, 'folder_id': '5df84333-610d-1737-eb9d-e64f873bc91c'}, {'parent_id': '51ba6e1b-e503-9b98-d9df-b0664d5457d6', 'version': 4, 'name': 'Female Shape & Outfit 3', 'type_default': -1, 'folder_id': '631ea3c6-db9a-952c-4248-9ff1b756e7ca'}, {'parent_id': '1c7a7fd0-104e-a8b1-51c6-32ea9b08e38b', 'version': 151, 'name': 'Objects', 'type_default': 6, 'folder_id': '6371a71c-7fc2-c38f-f87c-f0933868fd73'}, {'parent_id': 'afd25620-d379-4c16-ed03-b4a18967472c', 'version': 78, 'name': 'Fabric', 'type_default': -1, 'folder_id': '66f
abba2-ecae-bd3d-d426-8bdcd145c01c'}, {'parent_id': 'afd25620-d379-4c16-ed03-b4a18967472c', 'version': 10, 'name': 'Wood', 'type_default': -1, 'folder_id': '677ede83-2384-1d86-2b1f-29744dc216a6'}, {'parent_id': 'afd25620-d379-4c16-ed03-b4a18967472c', 'version': 1, 'name': 'Waterfalls', 'type_default': -1, 'folder_id': '68b1584f-bad8-6594-0dcb-3da2471c0ae2'}, {'parent_id': 'afd25620-d379-4c16-ed03-b4a18967472c', 'version': 51, 'name': 'Avatar Body and Clothing Templates', 'type_default': -1, 'folder_id': '6d83a4c1-98af-8912-3154-6028a4137467'}, {'parent_id': '2bb04b35-a411-1682-85f1-ef97c0ab5621', 'version': 1, 'name': 'Gesture sounds', 'type_default': -1, 'folder_id': '744aa72b-eb07-02ed-b344-0f81a16f073a'}, {'parent_id': '51ba6e1b-e503-9b98-d9df-b0664d5457d6', 'version': 4, 'name': 'Nightclub Male', 'type_default': -1, 'folder_id': '7f16b6a5-0958-3244-d90a-82def97efd57'}, {'parent_id': '9732c8e2-3188-1e04-d0cf-6fe957ea4979', 'version': 1, 'name': 'Terrain Textures - Default Set', 'type
_default': -1, 'folder_id': '809d37d7-9a9a-da85-08ea-254ba338bf3b'}, {'parent_id': '6371a71c-7fc2-c38f-f87c-f0933868fd73', 'version': 3, 'name': 'Orientation stations w/ notecards', 'type_default': -1, 'folder_id': '8100d5db-cb56-bc75-0710-aa6b6e1ae162'}, {'parent_id': '51ba6e1b-e503-9b98-d9df-b0664d5457d6', 'version': 7, 'name': 'Furry Male Outfit', 'type_default': -1, 'folder_id': '8166a9cc-443d-c43e-f7af-f3c627b40036'}, {'parent_id': '2e4ded39-d0d7-87fb-27e9-ca1bd01fd6c0', 'version': 37, 'name': 'Common Gestures', 'type_default': -1, 'folder_id': '86814812-7bce-bc61-2c33-d508ca7b8dcd'}, {'parent_id': '1c7a7fd0-104e-a8b1-51c6-32ea9b08e38b', 'version': 16, 'name': 'Landmarks', 'type_default': 3, 'folder_id': '88ede071-ba7c-8288-5f1d-4cbb202117a5'}, {'parent_id': 'afd25620-d379-4c16-ed03-b4a18967472c', 'version': 4, 'name': 'Hair Textures', 'type_default': -1, 'folder_id': '8bdc580f-d8e5-0cc8-a125-e4d1eda19c27'}, {'parent_id': '9732c8e2-3188-1e04-d0cf-6fe957ea4979', 'version': 1, 'name
': 'Terrain Textures - NW Coastal', 'type_default': -1, 'folder_id': '90c11ca9-fea3-58a2-72ad-07abeab0752e'}, {'parent_id': '51ba6e1b-e503-9b98-d9df-b0664d5457d6', 'version': 8, 'name': 'Furry Female Outfit', 'type_default': -1, 'folder_id': '964ef3b2-ff95-3f5f-f741-a5a093582b33'}, {'parent_id': 'afd25620-d379-4c16-ed03-b4a18967472c', 'version': 6, 'name': 'Terrain Textures', 'type_default': -1, 'folder_id': '9732c8e2-3188-1e04-d0cf-6fe957ea4979'}, {'parent_id': '51ba6e1b-e503-9b98-d9df-b0664d5457d6', 'version': 10, 'name': 'Male Shape & Outfit', 'type_default': -1, 'folder_id': '9b6dfef7-544d-bc06-c29a-32635c929396'}, {'parent_id': '9732c8e2-3188-1e04-d0cf-6fe957ea4979', 'version': 1, 'name': 'Atoll terrain textures', 'type_default': -1, 'folder_id': 'a18b5df1-f967-084d-f680-82b501018b1c'}, {'parent_id': '2e4ded39-d0d7-87fb-27e9-ca1bd01fd6c0', 'version': 1, 'name': 'Female Gestures', 'type_default': -1, 'folder_id': 'a3cb2e10-cf0a-8bf5-e495-16f1c4e2c30b'}, {'parent_id': '68b1584f-bad8
-6594-0dcb-3da2471c0ae2', 'version': 6, 'name': 'Particle System', 'type_default': -1, 'folder_id': 'a5012dce-abfd-8f90-ef84-61c79552054a'}, {'parent_id': '1c7a7fd0-104e-a8b1-51c6-32ea9b08e38b', 'version': 9, 'name': 'Accessories', 'type_default': -1, 'folder_id': 'abdace20-c471-df45-e6f8-731df6454547'}, {'parent_id': '1c7a7fd0-104e-a8b1-51c6-32ea9b08e38b', 'version': 270, 'name': 'Textures', 'type_default': 0, 'folder_id': 'afd25620-d379-4c16-ed03-b4a18967472c'}, {'parent_id': '51ba6e1b-e503-9b98-d9df-b0664d5457d6', 'version': 4, 'name': 'Male Shape & Outfit 3', 'type_default': -1, 'folder_id': 'b0529a99-bd7d-f75c-e982-a691f50fdf3d'}, {'parent_id': '9732c8e2-3188-1e04-d0cf-6fe957ea4979', 'version': 1, 'name': 'Terrain Textures - Winter', 'type_default': -1, 'folder_id': 'be1efbab-4aec-686f-9740-20bc7ffab541'}, {'parent_id': '51ba6e1b-e503-9b98-d9df-b0664d5457d6', 'version': 4, 'name': 'Cybergoth Male', 'type_default': -1, 'folder_id': 'be5a13e9-4d1b-745e-5144-b46550317e84'}, {'parent_
id': '9732c8e2-3188-1e04-d0cf-6fe957ea4979', 'version': 1, 'name': 'Terrain Textures - Primitive Island', 'type_default': -1, 'folder_id': 'c1b1d0cd-87a3-aafb-e0e7-681bafddd66e'}, {'parent_id': 'c9ea5076-9334-d847-f072-1cf56a1d52d8', 'version': 1, 'name': 'Prince Charming', 'type_default': -1, 'folder_id': 'c6d679a4-9cee-0bb7-17c1-fe94f1e701db'}, {'parent_id': '51ba6e1b-e503-9b98-d9df-b0664d5457d6', 'version': 5, 'name': 'More Outfits', 'type_default': -1, 'folder_id': 'c9ea5076-9334-d847-f072-1cf56a1d52d8'}, {'parent_id': '6371a71c-7fc2-c38f-f87c-f0933868fd73', 'version': 5, 'name': 'Trees, plants and grasses', 'type_default': -1, 'folder_id': 'cd29debb-868e-35c8-41a2-93594c54d772'}, {'parent_id': '51ba6e1b-e503-9b98-d9df-b0664d5457d6', 'version': 4, 'name': 'Goth Male', 'type_default': -1, 'folder_id': 'd05cd8f5-381e-fd60-8778-4d2974219319'}, {'parent_id': '51ba6e1b-e503-9b98-d9df-b0664d5457d6', 'version': 6, 'name': 'Harajuku Female', 'type_default': -1, 'folder_id': 'd0a747f1-f7c3-
8c0c-be12-20df046f2277'}, {'parent_id': 'afd25620-d379-4c16-ed03-b4a18967472c', 'version': 20, 'name': 'Buildings', 'type_default': -1, 'folder_id': 'd6666744-7931-9888-027f-61f90186eb1e'}, {'parent_id': 'c9ea5076-9334-d847-f072-1cf56a1d52d8', 'version': 1, 'name': 'Gi', 'type_default': -1, 'folder_id': 'd902ac38-479c-245b-22f0-fdc3ea2ffcd0'}, {'parent_id': '1c7a7fd0-104e-a8b1-51c6-32ea9b08e38b', 'version': 26, 'name': 'Notecards', 'type_default': 7, 'folder_id': 'dc306e42-78b7-8e3c-e8d0-69aad9a9f39b'}, {'parent_id': '51ba6e1b-e503-9b98-d9df-b0664d5457d6', 'version': 3, 'name': 'Harajuku Male', 'type_default': -1, 'folder_id': 'e09c947b-0a2a-c383-d55a-68f93ec9d4f2'}, {'parent_id': '6371a71c-7fc2-c38f-f87c-f0933868fd73', 'version': 1, 'name': 'Walkways', 'type_default': -1, 'folder_id': 'e7b66ed2-a8ce-3e59-1f3e-83788e1fe866'}, {'parent_id': '1c7a7fd0-104e-a8b1-51c6-32ea9b08e38b', 'version': 24, 'name': 'Photo Album', 'type_default': 15, 'folder_id': 'eb2010ea-1f78-a93b-ae89-217345b47fd1
'}, {'parent_id': 'afd25620-d379-4c16-ed03-b4a18967472c', 'version': 1, 'name': 'Rock', 'type_default': -1, 'folder_id': 'ede89e78-9eed-d4a4-c320-2db92649eba5'}, {'parent_id': '1c7a7fd0-104e-a8b1-51c6-32ea9b08e38b', 'version': 1, 'name': 'Scripts', 'type_default': 10, 'folder_id': 'f7cfde4d-3b16-54b3-2169-72d390d1065e'}, {'parent_id': '2e4ded39-d0d7-87fb-27e9-ca1bd01fd6c0', 'version': 4, 'name': 'Speech Gestures', 'type_default': -1, 'folder_id': 'fd05f2bf-5d8a-ffb3-40d4-48a9b9084c3c'}]</nowiki></pre>
:• secure_session_id: fdb501ca-22f1-4470-b515-2650f54b8117
:• look_at: [r-0.85717299999999996274,r0.51502899999999995906,r0]
:• classified_categories: [{'category_id': 1, 'category_name': 'Shopping'}, {'category_id': 2, 'category_name': 'Land Rental'}, {'category_id': 3, 'category_name': 'Property Rental'}, {'category_id': 4, 'category_name': 'Special Attraction'}, {'category_id': 5, 'category_name': 'New Products'}, {'category_id': 6, 'category_name': 'Employment'}, {'category_id': 7, 'category_name': 'Wanted'}, {'category_id': 8, 'category_name': 'Service'}, {'category_id': 9, 'category_name': 'Personal'}]
:• gestures:
<pre style="overflow:auto">[{'asset_id': '43417d10-a2f7-7727-6fd4-dd7f04ad7a13', 'item_id': '0405171b-190e-6e35-dedb-8be1eddfe609'}, {'asset_id': 'af2b8320-e579-2c41-b717-969759aeb3ca', 'item_id': '06d995f7-8184-d4c8-51d2-f99faadf6dd3'}, {'asset_id': '40b92916-8055-2562-008f-58924bd0e03c', 'item_id': '0ff437b5-4362-814e-7759-b2cdac564afd'}, {'asset_id': '76f7ced2-4f91-31c8-ff7d-e76b19abfa40', 'item_id': '220fef18-4ab8-2575-f6c1-af3f0d8160f8'}, {'asset_id': 'fb262981-4295-f048-c280-629081bf3b6b', 'item_id': '2628556d-57b0-3a26-fa79-b517ef16192f'}, {'asset_id': '6212ffdd-d447-a92f-18f3-8cb94a799d83', 'item_id': '347dc0a9-4272-399b-450e-15d4d78c52d6'}, {'asset_id': 'c63ac707-6325-14c8-d681-54b81d0dff77', 'item_id': '34f897bf-8922-1e8c-fdac-98a0f5a9eb0b'}, {'asset_id': 'd918a0d8-7291-ce83-762f-3f68dcc7402d', 'item_id': '37e5c513-149a-1a0a-ef47-c831548a30dd'}, {'asset_id': 'dbd054f1-132b-cc22-e46a-bad83c230c91', 'item_id': '3db7f1b9-b1f9-9fd2-3f65-d3e21d24b58c'}, {'asset_id': '0247dbfa-f37e-64ab-d09f-267888
4c7f4a', 'item_id': '3e65ec68-bdba-af60-d798-841a075cf17f'}, {'asset_id': '5a68100b-e6ba-5170-649c-80beddc67035', 'item_id': '44bf7318-21f4-32ad-d185-4e49e1a321de'}, {'asset_id': '865c5fe0-aafb-671a-8ad5-778beb24b6f8', 'item_id': '47a5b60f-0a2e-fda6-4bf4-1ff4566cf16a'}, {'asset_id': 'ea9ab69b-c2c7-3e18-a50b-37a9cfe457cd', 'item_id': '49b0ef41-9a33-067b-e9b7-dd2623db29eb'}, {'asset_id': '8868cfa3-5b82-97ab-dc38-ded906f7fd90', 'item_id': '634264c1-e98e-09a8-4782-c94bd2860c49'}, {'asset_id': '0401dc30-0fdd-1fc3-3e51-c683fe117184', 'item_id': '640b7215-02a9-e514-52c5-82a142f2e905'}, {'asset_id': '00b48fa0-ac43-fadf-d061-6b726a24a90a', 'item_id': '680923c5-100c-36b7-c644-c0d7a05913a0'}, {'asset_id': '52d9684f-2dcf-c252-2360-186b4236d07e', 'item_id': '6a972484-7490-fe5c-e526-ba75c111e37c'}, {'asset_id': '8b753e16-bd7d-2bb3-7765-671b7b31e77c', 'item_id': '6e548cd2-9c74-6112-ef7c-fdc38db91770'}, {'asset_id': 'f2483d55-bc31-38c0-65b2-9f7e87fce5c4', 'item_id': '7d65f0e3-1fd9-c81f-a61e-5de356f0eb
47'}, {'asset_id': '0eeb5ef7-10dd-4e4a-11a5-d053011fcdf2', 'item_id': '7e783987-2367-5276-bd27-78ac2667fef9'}, {'asset_id': '4b30f435-499f-32fe-f2a0-7e7bce8d881d', 'item_id': '7f05c4bf-a75c-847a-c018-bca16800b400'}, {'asset_id': 'aca78492-0487-03ec-4eb5-5c8e76c837e1', 'item_id': '7fffb1ef-38b5-82da-3076-4e9c0f443b2e'}, {'asset_id': '76d30ee1-c369-12ec-8dbc-9cf2f51120ff', 'item_id': '80f8c94a-a2d2-01eb-32bd-4cf1fe830383'}, {'asset_id': '0813d01a-d3d3-32a4-48a3-26b6e1e01e39', 'item_id': '83c4e26a-99e2-8f5e-1763-033a3a55d4f1'}, {'asset_id': 'fc3de4b8-bd3e-662b-934c-b72714dab5bf', 'item_id': '88754d75-93c6-c8e6-5fe8-7b9421b977b3'}, {'asset_id': 'b5ea617e-47cf-612b-2d99-8c6f6dcac218', 'item_id': '9148e1eb-e00c-2ef2-8bde-c3906baf885c'}, {'asset_id': 'a6a09cb1-0845-5ec0-051e-16bb79b30ddf', 'item_id': '97484726-f41d-9108-7678-93ba974d81c7'}, {'asset_id': 'ba38eeb2-d35f-0a07-0c04-0eb42fcc6010', 'item_id': '9ac86c71-c02b-ed95-6577-36eee67b7b73'}, {'asset_id': 'b57c996d-cb06-43c8-749d-e9ce361f172
e', 'item_id': '9bbbb8a1-2c75-87de-beed-eb15f5d74294'}, {'asset_id': '0a3336cf-3ad1-012a-91c2-5b5620aaaef3', 'item_id': '9bc6a34e-50a0-2248-2717-8a5524910ad0'}, {'asset_id': '1910ffbd-096c-5eb7-19f5-8c99ab6a748c', 'item_id': 'a6087696-9d56-e1c6-eca2-8bacdbf71e3c'}, {'asset_id': '04608b19-1668-399c-5790-b7df8d9dc9cf', 'item_id': 'a9d1a261-9632-6920-c0d7-2b3dfd9442c0'}, {'asset_id': '66ecd9bd-22e1-2633-f41e-ad1a38205662', 'item_id': 'ada896bc-52ae-f237-2a75-4e75179cceb1'}, {'asset_id': 'e7584536-86f2-c962-405d-d14adff71f38', 'item_id': 'adc59624-b875-de11-2bfe-236a2c610b8f'}, {'asset_id': '97c5742d-1d74-9408-2bae-9738a9e9d084', 'item_id': 'b1342b43-060d-492c-41a6-be0439839564'}, {'asset_id': '44a87e64-2d78-14b7-1cde-ac0f5031621f', 'item_id': 'c5853f4c-855f-4013-ce92-aabc59f1b9d8'}, {'asset_id': '2d03fd78-92fc-ca52-aabb-a4904e1339d1', 'item_id': 'e6fe4144-926c-ef17-c009-93227c7b159a'}, {'asset_id': 'b6f560d1-e2ad-24df-344c-2943c47a6775', 'item_id': 'f6f78510-02e7-526c-b35d-53cfd0b30361'},
{'asset_id': 'fa743da9-7e6e-d88e-3e4f-143dcb4fc01b', 'item_id': 'f92824f0-8129-b36d-f5b2-652762433e0a'}, {'asset_id': '0ce71257-7a07-257f-f023-fd68575a3a4e', 'item_id': 'fa184fed-6946-ec33-5fef-bcea29e2c8d7'}]</pre>
:• inventory-root: [{'folder_id': '547448bd-4b66-4bc9-bb87-2dc5c7a1fa8b'}]
:• agent_id: d5f403c7-7981-425d-a0b5-c65a3d0a4693
:• inventory_host: inv12-mysql
:• ui-config: [{'allow_first_life': 'Y'}]
:• global-textures: [{'sun_texture_id': 'cce0f112-878f-4586-a2e2-a8f104bba271', 'cloud_texture_id': 'fc4b9f0b-d008-45c6-96a4-01dd947ac621', 'moon_texture_id': 'd07f6eed-b96a-47cd-b51d-400ad4a1c428'}]
:• region_y: 244992
:• region_x: 247808
:• seed_capability: https://sim2054.agni.lindenlab.com:12043/cap/d373fdc9-d275-e484-3ad2-4a9b231f4e34
:• agent_access: M
:• session_id: 65a7213a-723a-4fcf-baca-7b247c4b43c5
:• event_notifications: []
:• login: true


[[Category: AW Groupies]]
[[Category: AW Groupies]]

Revision as of 19:48, 27 February 2008

Second Life Login API Strawman

This is a work in progress. Also see a similar Strawman by AWG: AWG_flows_login Innitial meeting with AWG to request feedback on protocol: Feedback Chat-log, 19 Feb 2008

Introduction

This page attempts to merge Authentication_Flow with Current_login_protocols and adds additional protocol changes to fit with Agent_Domain#How_login_works. The goal is to expose a protocol allowing login to a separate region domain while making incremental, small changes to the current protocol.

Summary

  1. *Viewer sends credentials to the Login Service #Login_Web_Service
  2. Login Service authenticates and sets up and queries for presence:
    • Queries the agent data from the Agent Store.
    • Finds an agent host, POST's agent presence checking for already online
    • grants seed capability, which lives on an agent host
  3. *Viewer requests capabilities needed for login via received seed capability. #Seed_Capability
  4. *(future) Viewer Polls Agent Host for messages via long-poll #poll_for_messages_Capability
  5. *(future) Viewer can send instant messages before being in world. #instant_message_Capability
  6. *Viewer invokes legacy_login capability #legacylogin_Capability
    • Initialization data returned by login
    • Sets up agent presence
    • Forwards location request to region domain, finding a region to rez the avatar
    • Establishes session with region host, which gives back a seed capability to the client
  7. *Viewer invokes region seed capability

Definitions

Seed Capability

The current Login Seed Capability is a Capability associated with the simulator you are logging into. It should not be confused with the Seed-Capability proposed for the new protocols.

Agent Seed Capability

This is a newly introduced capability associated with the agent host as part of the agent domain. This is different from the previously mentioned seed-capability, which associates with the sim host as part of the region domain.

Conventions

On this page the following conventions are used:

"in quotes is a literal string"
[ represents a list of choices | separated by a vertical bar ]
< represents a value which can be substituted by an appropriate string described inside >
'represents a string that must be quoted, but how will be implementation specific' for example in LSL "" denotes a string and " will be used in place of the single quote (').
+ means to concatenate the two parts, though how will be implementation specific, for example + can be used to concatenate strings.

Login Web Service

Client --> public Login Server: "Here is my credential, and optional agent identity desired" Second Life Login Server: https://login.agni.secondlife.com/app/login/

Required Parameters

   { 'credential': { 'type': 'agent',
                     'first_name': <first>,
                     'last_name': <last>,
                     'password': '$1$' + <passwd_md5> } }

OR (future)

   { 'credential': { 'type': 'account',
                     'account_name': <IBM>,
                     'password': '$1$' + <passwd_md5> } }

OR (future)

   { 'credential': { 'type': 'openid',
                     'url': <URL> } }

OR (future)

   { 'credential': { 'type': 'agent',
                     'first_name': <first>,
                     'last_name': <last>}}

which will need to a challenge from the auth system.

Optional Parameters

Optionally, specify which account you want this credential to log you into

   { 'credential': { 'type': 'agent',
                     'first_name': <first>,
                     'last_name': <last>,
                     'password': '$1$' + <passwd_md5> },
     'first_name': <first>,
     'last_name': <last> }

Response

Response Codes : Response 200 : Successful authentication.

   { 'agent seed-capability' : <url> -- agent domain seed capability] }

4xx : If this credential has more than one account linked to it, and no specific account was specified in the optional parameters, the response will list a set of accounts to choose from.

   { 'reason': 'select account',  -- reason why authentication failed
     'accounts' : [ { 'first_name' : <first>, 'last_name' : <last> },
                    { 'first_name' : <first>, 'last_name' : <last> },
                    ... ] }

4xx : Unsuccessful authentication due to need for more information.

   { 'reason': 'tos'|'critical'|'more info',  -- reason why authentication failed
     'redirect' : <url>  } -- URL to visit to get more information on how to proceed

Other reasons:

   * no agent
   * bad identity and authentication information
   * agent not enabled (banned)

5xx : Server unavailable.

   { 'reason': 'generic' }

Seed Capability

Client -> Agent Host (via seed cap): "I want cap X"

  • This service supports named capabilities for the agent domain requested by the client

Required Parameters

Map of named capabilities to Options

   { <capability name> : { 'enabled' : 'true' | 'false' },
     <capability name> : { 'enabled' : 'true' | 'false' },
     ..., etc. ]
   <- Ok, here's the cap to do X
   -or-
   <- Bzzzp, you don't get to do X

Response

Map of capability name to capability URL:

   { <capability name> : <url>, <capability name> : <url>, ... etc. }

Example: Basic Login Capabilities

POST data:

   { 'establish_presence' : { 'enabled' : 'true' },
     'inventory' : { 'enabled' : 'true' },
     'non_existent_cap' : { 'enabled' : 'false' },
     'be_in_world' : { 'enabled' : 'true' } }

Response value:

   { 'establish_presence' : <cap GO>, 'inventory' : <cap I>, 'be_in_world' : <cap CTR> }

legacy_login Capability

  • Viewer -> Agent Host (via cap LL): "I'd like to log in using the legacy login protocols"

Required Parameters

   { 'start': ["first" | "last" | uri:<existing region name>&<x>&<y>&<z> ],
     "channel": <channel>,
     "version": <client version>,
     "platform": ["Lin" | "Mac" | "Win"]
     "mac": <MAC Address>,
     "options": <array of strings>,
     "id0": <uuid>,
     "agree_to_tos": ["true" | "false" | ""],
     "read_critical": ["true" | "false" | ""],
     "viewer_digest": <uuid>,
     "options" : <array of strings> }

start -- attempt to log in to this sim, though if it is full or not available, or the agent is not allowed, another sim will be selected by the grid from its list of choices. "First" means home location. If home is filled then the grid will try last. If last is filled and home is set, the grid will try home. In either case the last choice will be from a list of telehubs. channel the name of the client. Used to differentiate official viewers from third party clients. options (See below) id0 hardware hash (based on the serial number of the first hard drive in Windows) used for uniquely identifying computers. viewer_digest MD5 hash of the viewer executable, only relevant when the channel is set to an official Second Life viewer.

Optional Parameters

The "options" key points to an array of optional options. Zero or more of the following character strings may appear in any order in the array:

   { 'options' : ["inventory-root" | "inventory-skeleton" | "inventory-lib-root" | "inventory-lib-owner" | "inventory-skel-lib" | "gestures" | "event_categories" | "event_notifications" | "classified_categories" | "buddy_list" | "ui-config" | login-flags" | "global-textures"]+ }

inventory-root UUID of the root inventory folder in the client's inventory window inventory-skeleton "starter kit" inventory: name, folder_id, parent_id, type_default, version of all folders inventory-lib-root folder_id of library root inventory folder inventory-lib-owner agent_id of owner for inventory lib inventory-skel-lib LL supplied library of inventory items: same as inventory-skeleton, except global inventory gestures list of item_id, asset_id pairs for active gestures event_categories list of different event categories event_notifications list of events for which you have notifications classified_categories" return a list of classifieds categories buddy-list agent_id, granted rights and given rights of everyone that is your buddy ui-config list of UI enabled/disabled states, currently: allow_first_life ('Y' or 'N') for teens login-flags if set, return 'stipend_since_login', 'ever_logged_in', 'gendered', and 'daylight_savings' values global-textures Texture UUIDs for global textures

Required Response

The valid (non-error) value returned by the login call is in standard xmlrpc name, value format. The most important of these is the "Login Seed-Capability" discussed below (not to be confused with the new "seed capability" for the new login procedure): { "last_name" : lastname } { "sim_ip" : 64.129.40.58 } { "start_location" : last } { "seconds_since_epoch" : 1195447316 } { "message" : -=- http://blog.secondlife.com -=- Visit the Official Linden Blog for the latest world status updates! } { "first_name" : first_name } { "circuit_code" : 245160577 } { "sim_port" : 13005 } { "secure_session_id" : fdb501ca-22f1-4470-b515-2650f54b8117 } { "look_at" : [r-0.85717299999999996274,r0.51502899999999995906,r0] } { "agent_id" : d5f403c7-7981-425d-a0b5-c65a3d0a4693 } { "inventory_host" : inv12-mysql } { "region_y" : 244992 } { "region_x" : 247808 } { "seed_capability" : https://sim2054.agni.lindenlab.com:12043/cap/d373fdc9-d275-e484-3ad2-4a9b231f4e34 } { "agent_access" : M } { "session_id" : 65a7213a-723a-4fcf-baca-7b247c4b43c5 } { "login" : true }

Optional Response =

inventory-root UUID of the root inventory folder in the client's inventory window

  {'inventory-root' => {folder_id' => 'UUID of Folder ID'} }    

inventory-skeleton "starter kit" inventory: name, folder_id, parent_id, type_default, version of all folders

   {'inventory-skeleton' =>  {'name, folder_id, parent_id'},{'name, folder_id, parent_id'} ,{'name, folder_id, parent_id'} .... } 

inventory-lib-root folder_id of library root inventory folder

   {'inventory-lib-root' => 'folder_id'}

inventory-lib-owner agent_id of owner for inventory lib

  {'inventory-lib-owner' => {'agent_id' => 'agent id uuid '}}

inventory-skel-lib LL supplied library of inventory items: same as inventory-skeleton, except global inventory

   {'inventory-skeleton' =>  {'f.name, f.folder_id, f.parent_id, f.type_default, f.version '}, 
                             {'f.name, f.folder_id, f.parent_id, f.type_default, f.version'} ,
                             {'f.name, f.folder_id, f.parent_id, f.type_default, f.version'} .... } 

gestures list of item_id, asset_id pairs for active gestures

   {'gestures' => {gesture item_id, gesture asset_id}
                  {gesture item_id, gesture asset_id}
                  {gesture item_id, gesture asset_id} ....}

event_categories list of different event categories

   {'event_categories' => {category_id (int), category_name(string)},
                          {category_id (int), category_name(string)},
                          {category_id (int), category_name(string)},
                          {category_id (int), category_name(string)}....}

event_notifications list of events for which you have notifications

   {'gestures' => [event_id, event_name,event_desc, event_date, grid_x, grid_y, x_region, y_region ]
                  [event_id, event_name,event_desc, event_date, grid_x, grid_y, x_region, y_region ]
                  [event_id, event_name,event_desc, event_date, grid_x, grid_y, x_region, y_region ] ....}

classified_categories" return a list of classifieds categories

   {'event_categories' => {[category_id (int), category_name(string)],
                          [category_id (int), category_name(string)],
                          [category_id (int), category_name(string)],
                          [category_id (int), category_name(string)]....}

buddy-list agent_id, granted rights and given rights of everyone that is your buddy

   {'buddy-list' => {buddy_id, buddy_rights_has, buddy_rights_given},
                    {buddy_id, buddy_rights_has, buddy_rights_given},
                    {buddy_id, buddy_rights_has, buddy_rights_given},....}  
           

ui-config list of UI enabled/disabled states, currently: allow_first_life ('Y' or 'N') for teens

   {'ui-config' => {'allow_first_life' => if allow first life} }

login-flags if set, return 'stipend_since_login', 'ever_logged_in', 'gendered', and 'daylight_savings' values

  {'login-flags' => {'stipend_since_login' => $stipend_since_login, 
                     'ever_logged_in' => $ever_logged_in,
                     'gendered' => $gendered, 
                     'daylight_savings' => $daylight_savings
                    }}

global-textures Texture UUIDs for global textures

 {'global-textures' => {'sun_texture_id' => $sun_texture_id,
                        'moon_texture_id' => $moon_texture_id,
                        'cloud_texture_id' => $cloud_texture_id
                        }}