These forums have been archived and are now read-only.

The new forums are live and can be found at https://forums.eveonline.com/

EVE Technology Lab

 
  • Topic is locked indefinitely.
12Next page
 

Some questions in prep for the CREST beta for developers

First post First post
Author
CCP Seagull
C C P
C C P Alliance
#1 - 2012-05-14 17:48:19 UTC
Hi devs!

We're prepping for letting you get access to the CREST API documented here https://forums.eveonline.com/default.aspx?g=posts&m=1023703#post1023703 , but we have some questions around how to best do this without causing confusion. We'd love some input from you.

So, we want to get access to the CREST API in the hands of a decent size group of developers - pretty much anyone who's interested and willing to put up with the quirks or the beta should be able to participate. We want you to be able to try things out, experiment with how to integrate CREST APIs in your applications, and generally help us iron out any weird stuff with the API from your perspective.

Question 1: If every player can access CREST stuff through your beta integrations, well, then that's a public release of CREST rather than a beta. Do you guys have some suggestions on how to restrict access so that we don't release access for every player, but you guys can still try things out in a sensible way? Would it for example make sense if you supplied a list of user accounts that you'd like to be able to test CREST from? And then only characters on those accounts would be able to get access tokens?

Question 2: When it comes to the user experience in applications, we're in for a bit of an interesting ride, as users will have to deal with 3 different API authentication methods: Old API keys, Customizable API keys, and then CREST application permissions. Do any of you have thoughts on how you would handle this? Are you thinking to do optional CREST authentication in addition to the API keys for example? We'd like a better idea of this, so that we can figure out how to best spend our efforts in smoothing the transition.

Any thoughts and input appreciated. We'll have more concrete info soon, the current plan (that might change, can't commit to it here) is to roll out the beta with a point release after Inferno - in late June or so.

Senior Producer, EVE Online Development CCP Games Reykjavik

Kronus Heilgar
Science and Trade Institute
Caldari State
#2 - 2012-05-14 17:55:37 UTC
Good questions. I think that access-by-request would work well. The other option might be to temporarily set it up for Singularity data only (like you did when testing the CAK system).

To deal with the many authentication methods, my first thought would be to finally put an end to the old Limited/Full API keys (all developers have had nearly a year now to modify their apps, and since you can't create new ones anyways they're probably used very little now). That alone would reduce the confusion by 33%.

This is not the signature you're looking for.

Captain Thunk
Explode. Now. Please.
Alliance. Now. Please.
#3 - 2012-05-14 17:56:18 UTC  |  Edited by: Captain Thunk
1) Access tokens for specified accounts sounds fine.
2) Probably add in support for all 3 myself

On the legacy API issue, I understand these are being phased out next spring.

However, currently you can do 'more' withe legacy keys than you can with the new style.

You can't create a key that does all character accounts AND any corps with the new keys. You can only do either all characters or one corp. This means to replicate functionality of a Full Legacy API key you can need upto 4 new keys. It'd be nice if there was an everything option for the new keys.

PS, to the guy above, you can create old keys still if you know the right page. I insist on old keys because for my purposes they are far superior.
Dern Morrow
Dreddit
Test Alliance Please Ignore
#4 - 2012-05-14 17:59:54 UTC
Re #1) honestly, if it's just the contact list updating that is mentioned in the link you gave, then I don't have much reason to play around with CREST right now.

At best, I could make some sort of "go to this web site and we will automatically add all of the PL supercap pilots to your address book!" system, but nobody will want to give me write access to their account for this, so the implementation isn't very worth it. Possibly I could build an alliance standings management application so that people who are in High Command of IRC, but not necessarily directors of the executor corporation, can affect alliance standings. But I'm not even sure if I can do that with CREST, because I'm not directly familiar with how alliance standings are drawn.

For #2) It has been long enough that you are justified in killing off the original API keys, IMO. There will naturally be some unrest but I don't think it will be too bad. :-)

For CREST's permissions, honestly I would have suggested you go with something like OAuth. It's already a well established protocol and users are familiar with it. "I went to foo.com and then they sent me to eveonline.com to grant access." It's the same sort of thing as "this web site is requesting access to my Facebook account" and given Facebook's ubiquity, you'd be well placed to capitalize on that user knowledge.

Granted, the advantage to API keys is that you can cut and paste them, which OAuth doesn't really handle as it is built for a web environment. This is an argument for maintaining the "API Keys" system + allow OAuth, so that people can do one or the other depending on what they need...

Anyway. Some thoughts.
CCP Seagull
C C P
C C P Alliance
#5 - 2012-05-14 18:07:21 UTC
Dern Morrow wrote:

Re #1) honestly, if it's just the contact list updating that is mentioned in the link you gave, then I don't have much reason to play around with CREST right now.


Yup we know - that's why it's a beta at first - rather than a full release. We don't expect people to write amazing applications just having access to contacts - but rather it's enough of an example to use for trying integration with CREST. So you should probably come on board later than the beta. :)

Dern Morrow wrote:
R

For CREST's permissions, honestly I would have suggested you go with something like OAuth.


CREST is using oAuth. http://wiki.eveonline.com/en/wiki/CREST_Documentation#Authorization

Senior Producer, EVE Online Development CCP Games Reykjavik

Dern Morrow
Dreddit
Test Alliance Please Ignore
#6 - 2012-05-14 18:20:18 UTC
CCP Seagull wrote:
Yup we know - that's why it's a beta at first - rather than a full release. We don't expect people to write amazing applications just having access to contacts - but rather it's enough of an example to use for trying integration with CREST. So you should probably come on board later than the beta. :)


Roger that. If you can ever do some Industry stuff with CREST though, I will be your ... uh, you can flog me to test it hard. My corporation handles much of the logistics (including production) for IRC and it's very effort intensive.



Nooooooooo~~ reading comprehension fail! My bad. Thanks. :)
Shellac Brookdale
Cutting Edge Incorporated
#7 - 2012-05-14 21:01:33 UTC
Question 1:
If its just the CREST part you need to restrict access to (oauth might be different), the easiest way to do this is probably to introduce some kind of beta key, that will be send as an additional http header along with the request and is bound to a single character after the first call.
This would allow devs to deal with the question whom to whitelist and you guys at ccp just generate new keys as needed. It would also be much easier to track applications this way, as you could tie them to beta keys.
Trenker
#8 - 2012-05-15 11:29:21 UTC
CCP Seagull wrote:
We're prepping for letting you get access to the CREST API documented here https://forums.eveonline.com/default.aspx?g=posts&m=1023703#post1023703


YEEESSS ... I'm getting a geek boner. That's the coolest thing I've seen since node.js.

CCP Seagull wrote:
Question 1: If every player can access CREST stuff through your beta integrations, well, then that's a public release of CREST rather than a beta. Do you guys have some suggestions on how to restrict access so that we don't release access for every player, but you guys can still try things out in a sensible way? Would it for example make sense if you supplied a list of user accounts that you'd like to be able to test CREST from? And then only characters on those accounts would be able to get access tokens?


List of user accounts should work fine. Only problem I can see: People who are not a director of a corp / alliance (like me) may cannot use and test the full feature set. So how about providing some dummy characters inside a dummy corp?

CCP Seagull wrote:

Question 2: When it comes to the user experience in applications, we're in for a bit of an interesting ride, as users will have to deal with 3 different API authentication methods: Old API keys, Customizable API keys, and then CREST application permissions. Do any of you have thoughts on how you would handle this? Are you thinking to do optional CREST authentication in addition to the API keys for example? We'd like a better idea of this, so that we can figure out how to best spend our efforts in smoothing the transition.


How about combining the generation of API keys with OAuth. An Auth request could (optionally) include the request for an API key with a given bitmask. If the user grants access to the app, this key is accessible via a GET, or directly as parameter in the return URL.

Peter Powers
Terrorists of Dimensions
#9 - 2012-05-15 11:38:31 UTC
CCP Seagull wrote:

Question 1: If every player can access CREST stuff through your beta integrations, well, then that's a public release of CREST rather than a beta. Do you guys have some suggestions on how to restrict access so that we don't release access for every player, but you guys can still try things out in a sensible way? Would it for example make sense if you supplied a list of user accounts that you'd like to be able to test CREST from? And then only characters on those accounts would be able to get access tokens?

that would be totally fine with me.
another option would be a sisi rollout. this would be kinda public too, but people wouldn't be working with live data. This would help both sides (you and us) to collect a bit of data on a more realistic usage scale (if we can gather enough users to try it out)

CCP Seagull wrote:

Question 2: When it comes to the user experience in applications, we're in for a bit of an interesting ride, as users will have to deal with 3 different API authentication methods: Old API keys, Customizable API keys, and then CREST application permissions. Do any of you have thoughts on how you would handle this? Are you thinking to do optional CREST authentication in addition to the API keys for example? We'd like a better idea of this, so that we can figure out how to best spend our efforts in smoothing the transition.

My stance on this is:

Old API Keys: i don't support 'em anymore, and i believe most other apps have switched too.
Crest Auth: we are speaking about the OAuth2 approach here, right? this will be my preferred way of identifying users as soon as its up and running.
Customizeable Keys: generally speaking of Auth API keys where never a good way to auth someone, so this "option" with all the tricks that needed to be done to be sure that the key owner owns the account will be dropped by my apps asap.
Since there is still a need for the keys though, i've looked into a few ideas.

There are a few options on how to migrate, and it depends a lot on what you guys are going todo.
For example one option that involves more work on your end, but would be very nice for the user would be that the OAuth part allows to give access to specific keys through Crest for an application, meaning If i auth through oauth and allow a specific application the right "retrieve key x", and then through crest could get this key so i can use it to access the old API, this would make transition very smooth. But i kinda doubt it fits in your timeframe to do such thing?

One of the things on my private todo list is to create a "Proxy" which accesses the old API but provides the information in CREST style, allowing apps to migrate fully to one access library, and to develop future applications without taking too much care about the legacy API. Now if you cant/wont do the feature i mentioned earlier, one of the services i could provide would be an Authed key storage that works together with that Proxy, so people don't have to enter their custom keys everywhere - however, that will always have the user-trust-issue, so having taken care of OAuth to customkey on your side would take alot of problems out for us app developers.


chat me up if you want more input on any of my suggestions,

regards,
PP

3rdPartyEve.net - your catalogue for 3rd party applications

Dragonaire
Here there be Dragons
#10 - 2012-05-17 04:44:15 UTC
I think for the initial testing us suppling you with a list of user accounts is probably the best/easiest for everyone. I know personally I would probably only be using 2-3 for anything I'll be doing with the limit stuff that will be available to us at this point.

Best thing for all the key stuff would be to drop the legacy keys as even most of the older third party projects that had been dropped by the original developers have been brought back to life by someone else and updated them to work with CAKs. I would put out with the next big release to everyone that the legacy keys will be turned off in like 3 month from that time to give the last couple of hold outs time to do what the rest of us did months ago and switch over. I don't know if anyone at CCP has looked at how many requests with old keys you still get but I would think by this time the numbers should be pretty low. I'd say if less then 10% are from the old keys it's time to pull the plug on them as that will be the only way people will stop using them and update.

On having both Crest with OAuth and current API data and keys in the same application/libraries I think it will be done for a while anyway until Crest is able to cover at least 75% of the same data as is available from the current APIs then we'll see things moving over to pure Crest. Only reason it would take longer is if some of the more important stuff is left until last to be done and then the CCP developers will get to hear from the third party developers a lot in that case Blink

Finds camping stations from the inside much easier. Designer of Yapeal for the Eve API. Check out the Yapeal PHP API Library thread.

Two step
Aperture Harmonics
#11 - 2012-05-18 04:42:35 UTC
Is there a reason you can't just connect up CREST to Sisi for the beta? Then you don't need to mess around with lists of allowed accounts and whatnot. I don't actually see a reason to do a real beta, just enable CREST on Sisi and let people play with it. It will give you guys a chance to test all of your stuff, including the application registration process.

I also agree with pulling legacy API key support. I can't imagine there are any apps out there that don't support the new style keys, even if some folks above apparently prefer them.

CSM 7 Secretary CSM 6 Alternate Delegate @two_step_eve on Twitter My Blog

CCP Nullarbor
C C P
C C P Alliance
#12 - 2012-05-22 22:02:52 UTC
I want to bump this thread with another question, from the current API what would be your priority order for porting them over to CREST? In particular highlight any where having read capability for data already exposed might be super beneficial.

CCP Nullarbor // Senior Engineer // Team Game of Drones

Splodger
Brutor Tribe
Minmatar Republic
#13 - 2012-05-22 22:33:24 UTC
Question 1: Open public release on Sisi - Honestly only dev's are really going to use it and if non-dev player does well thats just a bonus really.

Question 2: Get rid of legacy keys, and build crest authentication into Customizable API keys. (use what you have).

Question 3: Priority :
1) Is there a need? (if only read data is needed then I would not convert to crest)
2) Is added functionality worth it to ratio of users that will benefit
3) Time factor and work load to make it happen.
Marcel Devereux
Aideron Robotics
Aideron Robotics.
#14 - 2012-05-23 01:17:49 UTC
#1 Beta is meant for public consumption but with the understanding that things can and will change. Is it enough to just limit the developers that have access rather than their users? I am willing to suffer through any API changes on your side as long as we get a heads up about the changes.

#2 and #3 Most of us have already required our users to move to the new customizable API keys. What would be awesome if we could just move our users over CREST auth and away from API keys. If you can provide a bridge between for the old API through CREST then we could switch over fully to using CREST.
Trenker
#15 - 2012-05-23 17:37:55 UTC
CCP Nullarbor wrote:
I want to bump this thread with another question, from the current API what would be your priority order for porting them over to CREST? In particular highlight any where having read capability for data already exposed might be super beneficial.


Functions used to monitor things that affects my char / corp while not logged in, i.e: Skill Queue, Market Orders, Transactions or Notifications (may we have the text snippets for this one? As part of the dump or as additional fields. The current output can only be used in a meaningful way if you do a lot of research and trial 'n' error).

Also the char sheet would be helpful as it is often used for checking characters after their application.
Sakari Orisi
Doomheim
#16 - 2012-05-23 17:46:09 UTC
CCP Nullarbor wrote:
I want to bump this thread with another question, from the current API what would be your priority order for porting them over to CREST? In particular highlight any where having read capability for data already exposed might be super beneficial.


Things that'd allow me to build stuff without having to use the old API at all, it'd be the only reason for me to start porting.I don't want to maintain access to two different systems.

Basics like character sheet, are obviously on top of this list. Things like the skills the character has are also pretty interesting as a lot of stuff can be done with it.

other than that, I guess I'd port the APIs over that have the biggest amount of hits at this moment on the old API ?
ShadowMaster
#17 - 2012-05-23 23:23:02 UTC
CCP Nullarbor wrote:
I want to bump this thread with another question, from the current API what would be your priority order for porting them over to CREST? In particular highlight any where having read capability for data already exposed might be super beneficial.


My priority request would be as others have suggested getting all the previous functionality running on CREST. I really don't want to have to maintain both authentication methods. I would much rather being able to just switch everything over to CREST and then grow to new things once that is done.
Peter Powers
Terrorists of Dimensions
#18 - 2012-05-24 14:45:29 UTC
CCP Nullarbor wrote:
I want to bump this thread with another question, from the current API what would be your priority order for porting them over to CREST? In particular highlight any where having read capability for data already exposed might be super beneficial.


most api pages are only relevant in package with a few others.
the priority put on 'em also depends alot on the usecase.

i'll see if i can compile you such list by my usecases during the weekend,
but this will mostly benefit a special subgroup of devs and not everyone,
since for example i wont care about factional warfare stuff, however
someone doing that would probably put those pages on top of the list.

3rdPartyEve.net - your catalogue for 3rd party applications

Desmont McCallock
#19 - 2012-05-24 14:54:30 UTC
CCP Nullarbor wrote:
I want to bump this thread with another question, from the current API what would be your priority order for porting them over to CREST? In particular highlight any where having read capability for data already exposed might be super beneficial.

  1. CharacterSheet
  2. SkillQueue
  3. MarketOrders
  4. IndustryJobs
  5. WalletJournal
  6. WalletTransactions
  7. EverythingElse
Tonto Auri
Vhero' Multipurpose Corp
#20 - 2012-05-24 18:19:01 UTC
Desmont McCallock wrote:
CCP Nullarbor wrote:
I want to bump this thread with another question, from the current API what would be your priority order for porting them over to CREST? In particular highlight any where having read capability for data already exposed might be super beneficial.

  1. CharacterSheet
  2. SkillQueue
  3. MarketOrders
  4. IndustryJobs
  5. WalletJournal
  6. WalletTransactions
  7. EverythingElse

I'd stick Notifications before IndustryJobs.
Other than that, the list looks right.

Two most common elements in the universe are hydrogen and stupidity. -- Harlan Ellison

12Next page