Introducing: Freelance Jobs
Hi all,
Today we’re introducing Freelance Jobs to ESI.
Now available in the API Explorer with today’s compatibility date, the new routes provide read access to:
All publicly available Freelance Jobs in New Eden.
For authorized characters, all their jobs and participation details.
For authorized Corporation Freelance Job Managers, all the corp’s jobs, their details, and participant information.
While we take some steps to improve the ease of discovering and joining lucrative opportunities for enterprising freelancers, our primary goal is to empower Corporation Freelance Job Managers to get a better view on the active freelance jobs in their corporations and make sure staffing and progress are on track.
Freelance Jobs and ACLs
A short while ago, Freelance Jobs received an update allowing you to add Access Control List (ACL) based restrictions to your jobs. This has some notable side effects for ESI.
From a technical perspective, ACLs are quite a complex problem to solve on the scale that ESI runs. As we mentioned during our EVE Amsterdam presentation, ESI sees requests for several hundred thousand different characters on a daily basis. Every character can be part of either the allow or the deny section of any of the several million ACL lists that exist in New Eden. Processing all this at the speed of ESI is a complicated problem that we’ll delve into in the future.
Because of this, we have chosen to take the following approach for Freelance Jobs:
The public listing of jobs (/freelance-jobs) will only contain jobs that have no ACL attached (this excludes an ACL with everyone on the allow list from being listed too).
Corporation listings for Freelance Jobs Managers (/corporations/{id}/freelance-jobs) will show jobs with and without ACLs, as ACLs do not apply at this stage; Freelance Job Managers are always able to see all the active jobs for their corporation. The same applies to the participants route (/corporations/{id}/freelance-jobs/{id}/participants).
Character listings, where you can see which jobs you are actively participating in (/characters/{id}/freelance-jobs), will show jobs with and without ACLs, as the ACL check has already passed. The same applies to the participation route (/characters/{id}/freelance-jobs/{id}/participation).
Freelance Job details are where things get a tiny bit more complicated. The details route (/freelance-jobs/{id}) will optionally take a valid token. If no token is passed, you are only able to request the details of public (without ACL) jobs.
If you do pass a token, the following logic applies:
If the job is public, you are able to see its details (just as without a token).
If you are actively participating in the job, you are able to see its details.
If you are a Freelance Job Manager and your corporation owns the job, you are able to see its details.
In all other cases, you will not be able to see the job.
This approach allows us to respect the restrictions set by the Managers with ACLs while maintaining access to the jobs freely available to all capsuleers.
Wrapping up
As always, we love hearing your feedback, especially on the shape of the data and how it fits into your apps. Join the official EVE Online Discord server to discuss the new features with us and your fellow developers. Huge thanks to EVE Partnership Program members for the early access feedback that helped shape this release.
Cheers,
Your friendly developers of the EVE Subcontracting Interface (working title)