SeAT - โš™-development - Page 1

Astral 6 Apr 2023 20:17
Sorry just got internet back and hopefully it stays back
Warlof Tutsimo 6 Apr 2023 21:39
any feedback for that one ? https://github.com/eveseat/eseye/pull/80 initially, purpose was to simplify the fetch to cache logic - but since we bump php version, I also upgrade phpunit, unit testing and switch travis workflow to github action
Astral 6 Apr 2023 21:44
It won't need to be updated for the depends_on part and the depends on just tells a container to start those services before itself
Warlof Tutsimo 6 Apr 2023 21:45
ah, right, container vs service, that's the thing ๐Ÿ™‚
why not a docker-compose.override.yml instead ?
Astral 6 Apr 2023 21:51
Well I mean you could use that but it's just going override those values if they are set if they aren't they'll default to the part on :-
yml
version: "3.2"
services:
  mariadb:
    container_name: ${mariadb_name:-mariadb}
  redis:
    container_name: ${redis_name:-redis}
  traefik:
    container_name: ${traefik_name:-traefik}
  seat-web:
    container_name: ${seat-web_name:-seat-web}
  seat-worker:
    container_name: ${seat-worker_name:-seat-worker}
  seat-cron:
    container_name: ${seat-cron_name:-seat-cron}
I mean yeah it could be via that
Warlof Tutsimo 7 Apr 2023 10:06
oh no, if using override, I was thinking about putting changes inside it instead of altering the .env file
just looking for the best and more logic option
also thinking about extracting traefik outside main compose and using override capability
Astral 7 Apr 2023 17:04
``${VAR:-default}`` -> value of ``VAR`` if set and non-empty, otherwise ``default``
Metrafaze 8 Apr 2023 00:47
Is it possible to get a "Doesn't Contain" option?
image: image.png
Astral 8 Apr 2023 01:44
Isn't ``Is not`` That?
Raven 8 Apr 2023 02:36
I've had issues with Scopes and the "Is not" feature actually matching correctly.
Astral 8 Apr 2023 03:08
What are you going for in the end?
Metrafaze 8 Apr 2023 03:36
Is and Is Not do not appear to have the same results. I'm attempting to ensure the Guest Squad I have created is only applying to members who have authed using the Guest SSO policy I have created. As it stands, members with high sec alts are also being added to the Guest Squad.
By adding a "Doesn't Contain" scope into the Guest Squad filter, I would be able to ensure those who have signed in with my Guest SSO policy are separated from fully authed members with HS or out of corp alts.
And my members alts should be kept out of the Guest squad. (I'm hoping)
End goal is to have anyone who signs in with my Guest SSO policy added to a Squad only they are in which is heavily restricted despite what other alts they have.
Astral 8 Apr 2023 04:06
I just have my guest squad set as "Are they not in X Alliance" If they aren't they are a guest
Metrafaze 8 Apr 2023 06:15
Wouldn't that apply to out of corp alts?
Astral 8 Apr 2023 06:17
I mean in the end you have the guest group classified so nobody can see the list of who's in it.. and even if it did they still would have access to the discord connector that you are giving in the guest squad..
You could also just set Is not for some random scope
Warlof Tutsimo 8 Apr 2023 06:45
Scope is a list, it needs contains as operator
Metrafaze 8 Apr 2023 11:55
Is not for a random scope doesn't seem to work. I need to be able to ensure that corp members are not authenticating using the Guest SSO profile and gaining access to my Discord without being fully authed.
For the time being, I have removed a fairly un-useful scope from all of the SSO profiles and added it to the Guest SSO profile. This enables me to us the Contains "specified scope" on the Guest Squad filter which does the trick.
Crypta Electrica 8 Apr 2023 13:51
A good scope to do this with it publicData
Astral 8 Apr 2023 16:46
Discord connector won't do anything unless they are in the ACL for the connector, If they're not in the ACL it'll let them join but your discord should be setup properly so stuff is locked behind roles.. if it's not that's on you.
Metrafaze 8 Apr 2023 21:17
Discord is setup fine. My work around seems to do the trick for the time being seeming as there isn't a "Doesn't Contain" option.
Maybe plugin devs too tbh
Seb 14 Apr 2023 14:47
Hello @user_614098468218339348 I am going to start looking at seat-inventory and add a market source, do you know if there is a library, or plugin, that can help me to check the market sell orders for an item ? I want to look at a player owned citadel
recursive_tree 14 Apr 2023 15:23
yes, you basically implement a job that fetches this. Then there are two options: directly store it in an inventory source or store it in a table more optimized for orders, then copy the data over to inventory sources.
additionally, you might want to look at seat-treelib, it currently fetches public orders
also check if seat doesn't already fetch your citadel orders
Seb 14 Apr 2023 15:26
if seat can fetch the citadel orders, then that's the way to go I think, I will only copy the data over to inventory sources then
such functionality exists in seat ? because it require the access to the citadel
so it need to use the auth of one character that have access to it
recursive_tree 14 Apr 2023 15:32
take a look at the eveapi package
Seb 14 Apr 2023 15:51
thank you
so it doesn't look like it can pull orders from a structure, only player own orders : https://github.com/eveseat/eveapi/tree/master/src/Jobs/Market
image: image.png
I see you pull public orders yes here : https://github.com/recursivetree/seat-treelib/blob/master/src/Jobs/Orders.php So I basically do the same, but for a player owned citadel. I will check if the API is the same.
both are really really close APIs /markets/structures/{structureid}/ on the left /markets/{regionid}/orders/ on the right
image: image.png
๐Ÿ‘
it's better if you can use the work I do @user_614098468218339348 You want me to try to add a job and migration to seat-treelib or to seat-inventory ? What would make more sense for you ?
Warlof Tutsimo 14 Apr 2023 16:59
Wuuuut > 500 days of data When in the life did they think it would be a good design option ๐Ÿ˜ฎ You even can't load that old for wallet transactions, common
Regarding ESI orders, maybe that would even be better if it lived in eveapi ๐Ÿ˜›
Seb 14 Apr 2023 17:09
It's also a possibility but I need a bit of guidance because it's a bigger package
Warlof Tutsimo 14 Apr 2023 17:13
Only talked about the orders job
So mostly clone the existing job, update endpoint, adapt needs
The hardest part will probably be to determine if you can run the job for the structure - not sure we store structure ACL currently And we shouldn't make invalid calls against esi
recursive_tree 14 Apr 2023 17:25
a month ago you didn't want to merge order loading into seat 4. If you change your mind, I can put the PR back up :)
we don't store acls and there is no way to figure the acls out. It's basically the same as with the structure loading PR for seat 5
however, you can find characters that are likely to have access, for example by looking if they have assets or jump clones there
if you add order loading from esi, please add it to treelib, so all order loading code not from core is in treelib.
Warlof Tutsimo 14 Apr 2023 17:31
Wuw, did I ? ๐Ÿ˜ฎ
Said SeAT 4 as I want to get rid of it and release the 5 one ๐Ÿ˜…
recursive_tree 14 Apr 2023 17:33
maybe I misunderstood it. Anyways
What is holding seat 5 back from being released?
Warlof Tutsimo 14 Apr 2023 17:35
No clue, didn't play with SeAT ๐Ÿ˜…
If there are non blocking issues, I can tag stuff anytime probably
recursive_tree 14 Apr 2023 17:36
I went through the repos, these PRs might still be relevant: https://github.com/eveseat/web/pull/635 - qu1ck/anyone else? at the same time, it's not very important https://github.com/eveseat/eseye/pull/80 - I think it can be merged https://github.com/eveseat/seat-docker/pull/21 - docker stuff, need to look at the details https://github.com/eveseat/seat-docker/pull/20 - docker stuff, need to look at the details https://github.com/eveseat/notifications/pull/60 - native discord notification. not completely done, maybe better for seat 6 or something like 5.1 Also I think @user_301981661761896449 was talking about some docker stuff that isn't in any PR yet
Warlof Tutsimo 14 Apr 2023 17:37
First is for @user_398925835794645002 Sec stuff is him
recursive_tree 14 Apr 2023 17:40
I think we also need to rebase, there are some bugfixes like the one with sde tables that aren't included yet
Warlof Tutsimo 14 Apr 2023 17:49
There will be a merge
leonjza 14 Apr 2023 18:09
for the arguments one i think were good. i couldnt find an obvious way to abuse it
Seb 14 Apr 2023 18:48
I will put into treelib then if it's more consistent with the rest ๐Ÿ™‚
but I need to play around a bit before because it's all new for me currently, I need to build experience
Crypta Electrica 14 Apr 2023 22:41
For me the only current blockers are updating seat-docker with changes to rerduce boot up time by not needing to run the permissions fix. This goes hand in hand with not running as root within the container, but is not as functional as I thought I had it. The only other thing I can thing of (and probably not needed for an RC) would be an update of the analytics code. This I have started, moving from UA over to GA4. But apologies not been able to get this across yet
recursive_tree 23 Apr 2023 12:24
Is there any documentation on how to create a skin for seat? Do I need to manually do everything or is there something like a generator?
VeritasLuxMea 23 Apr 2023 15:06
Currently no, I had worked on a customized dark version a few years ago but dropped it. The more difficult part is SeAT does not dynamically build the skin list.
recursive_tree 23 Apr 2023 17:57
the second thing is not an issue. I can create a PR to change it.
Warlof Tutsimo 23 Apr 2023 20:45
it is bootstrap based, I don't know what kind of doc you want else of this ๐Ÿ™‚
css
Raven 23 Apr 2023 22:00
I mean, there are two files in the codebase that reference "Jet", pretty easy to make a dark mode skin and add it to the hardcoded php settings file.
Anthony Kane 23 Apr 2023 23:43
User > Profile > SeAT Skin
I imagine a global option could be added to Settings that populates from a directory of stylesheets and the option in User could be a Light/Dark mode toggle. Granted if a theme doesn't include a dark mode version it should be disabled.
If it didn't require me to learn PHP and probably multiple new libs Id give it a crack myself :/
Warlof Tutsimo 24 Apr 2023 06:16
I think I draft something for dynamic settings and their default value while pocing for 6.x, but not sure it's been pushed
Related to skins, we might mimic what WordPress is doing in order to load skins dynamically based on css header block
css
/**
 * @name Jet
 * @author Warlof Tutsimo <warlof@eveseat.net>
 */
Then, required the css file is published against a specific directory (as actual affaict), and simply use a provider to copy the css file from the package to the directory when installed
Either this or use the provider to seed config with elements
recursive_tree 24 Apr 2023 07:17
I think it's easier to implement just skins like we have it right now. If you want dark mode, you select a dark mode skin, if you want light mode, you select a light mode skin.
there seems to be some interest in more skins, should I target seat 5 or 4?
Warlof Tutsimo 25 Apr 2023 06:38
Would need an update into services package aswel
recursive_tree 25 Apr 2023 07:17
For what?
Just noticed it. I changed Profile locally but didnโ€™t realize it is in services
Seb 26 Apr 2023 19:15
I want to create a job to get StructureMarket orders. It will target /v1/markets/structures/{structure_id}/ and it is an auth one. So I am extending AbstractAuthCharacterJob. I see that Seat use a Bus to fire all the jobs regarding characters for Example (Seat\Eveapi\Bus\Character) Is that the right way to get a good token for my job to run against ? $token = RefreshToken::find('character_id'); Do I understand right if I say that Seat\Eveapi\Commands\Seat\Buckets is in charge of refreshing api tokens for all characters registered to seat so I can use RefreshToken safely ?
recursive_tree 26 Apr 2023 19:37
yes, that's generally the way. I'm not sure it belongs into Bus tho, we don't need to fetch it with every character every time we try to pull data. Also you need to check what happens if ACLs don't allow you to access a particular structure. You don't need to worry about refreshing tokens as long as you use a job like AbstractAuthCharacterJob. Just pick a token and schedule the job.
Seb 26 Apr 2023 19:44
ok because I get an error right now
aaaaand the problem was somewhere else as usual haha
now I get orders that's fine ๐Ÿ™‚
recursive_tree 26 Apr 2023 19:48
nice
https://github.com/eveseat/web/pull/647 can be merged, the PR to services is done
Someone asked me to improve the moon reporter tool. What is a ore moon? And shouldn't Gas be R4?
image: Bildschirmfoto_2023-04-27_um_21.24.44.png
Anthony Kane 27 Apr 2023 19:33
When was the last time the code for that was touched? On 3/30/2020 CCP removed asteroid ores from moons so if the code is from before that time the ORE bit might be leftover, and yeah I think Gas would be R4.
Moppa 4 Apr 2024 13:03
@user_301981661761896449 Can you take a look at the other Citadel PR as well when you merge?
Would pull me off having to run a franken-merge Dev install in my live environment ๐Ÿ™‚
Crypta Electrica 4 Apr 2024 13:05
I'll have to do that tomorrow now sorry. And I want to check the ci set up again as something went wrong just then with the auto docker builds and I had to do it myself.
Moppa 4 Apr 2024 13:06
All good
Crypta Electrica 4 Apr 2024 13:07
Initial reaction, as you multiply by a decimal does it make the const a float? If so it probably makes no difference, but just something I tend to avoid normally as in my other endeavours floats slow things down a lot.
But that's not related to me merging it. Just my weary overthinking brain
Wibla 4 Apr 2024 13:08
reminds me of programming old PLCs ๐Ÿ™‚
"DO NOT USE REAL, save the analog values as INT with a 10x multiplier out of the scaler"
"remember to divide by 10 on the HMI"
๐Ÿฅณ
recursive_tree 4 Apr 2024 13:09
We could just convert it to a int after the multiplication. it doesn't really matter if it rounds 52.0001 to 52 or 53, both values are good enough
Wibla 4 Apr 2024 13:09
that works ๐Ÿ™‚
Moppa 4 Apr 2024 13:10
I tried to specify the const as an int but got red squigglies and was not certain of the syntax.
(Really rusty in PHP still ๐Ÿคฃ )
recursive_tree 4 Apr 2024 13:11
(int)($base*0.65)does it I think
but also, const in PHP sometimes doesn't allow things that could be const
Moppa 4 Apr 2024 13:12
This was where I felt a little off the path ๐Ÿ˜…
Wibla 4 Apr 2024 13:12
why that multiplier?
recursive_tree 4 Apr 2024 13:14
because 65% of another value
Moppa 4 Apr 2024 14:36
Casting is not supported for a constant. "Constant expression contains invalid operations" We could do const RATE_LIMIT = parent::RATE_LIMIT - 30 instead which would avoid casting it. Or just plain const RATE_LIMIT = 50.
Crypta Electrica 4 Apr 2024 21:12
Haha I didn't mean to change anytjing sorry!!! It was just my brain on a late night
recursive_tree 5 Apr 2024 20:46
@user_301981661761896449 @user_76781846418956288 fix so that new instances work again: https://github.com/eveseat/eveapi/pull/401
Moppa 5 Apr 2024 21:37
I ran into this today as well ๐Ÿ‘† I... uhmmm.... accidentally mixed up two WSL2 commands and wiped my whole dev environment ๐Ÿ˜ถ So when I did a fresh install I got the same problem that others has been reporting.
recursive_tree 5 Apr 2024 22:11
welcome in the club. I usually end up wiping my development install's database because I managed to do stupid things on average around once every 3 months
Moppa 5 Apr 2024 22:20
Yeahh.... This was the entire Linux dist ๐Ÿคฃ With like 4 active pet projects needed to be restored ๐Ÿ˜ซ
That's when you thank your lucky star that you are using Docker and have automated scripts with DB init and everything
Warlof Tutsimo 6 Apr 2024 06:10
Available, thanks for the diag
Moppa 10 Apr 2024 08:33
I've been keeping an eye on the Redis fork landscape after the licence change. The Valkey https://github.com/valkey-io/valkey project is the fork that has been adopted by Linux Foundation and has one of the 5 previous maintainers of Redis helming the initiative. It's already backed by Amazon Web Services (AWS), Google Cloud, Oracle, Ericsson and Snap Inc. Microsoft recently released their own Redis client compliant Cache server which they will be focusing on going forward https://github.com/microsoft/garnet Worth to note is that Snap Inc (Snapchat) who has been backing and maintaining one of the other big contenders KeyDB https://docs.keydb.dev/ which supports multi threading for Redis is also one of the backers of Valkey. This might be an isssue in the long term because why would they put full max effort into two competing similar projects.
Wibla 10 Apr 2024 13:36
reminds me we should do some performance profiling of both ๐Ÿ˜„
Dr. Spodumain ๐Ÿ‘พ 12 Apr 2024 10:47
In the Market Prices table, what're the average and adjusted prices?
Well, I guess they're the CCP provided average and adjusted prices, but what even are those? Average over how long, adjusted how?
nvm got answer elsewhere, tl:dr its a sekret
recursive_tree 12 Apr 2024 11:08
pretty much, they are just two values somehow related to prices
I'd recommend to use the price provider system if you are writing a plugin, or the sell and buy orders columns
Dr. Spodumain ๐Ÿ‘พ 12 Apr 2024 12:15
I'm doing something far more terrible than that.
Jay's 18 Apr 2024 10:44
Quick question, to get the latest eveapi on my server, do I have to wait for an update on the docker image ? Is there a way to update it ?
Crypta Electrica 18 Apr 2024 10:45
In theory yes it is possible to update it, but the correct approach is to wait for the docker image...
Its coming shortly
Jay's 18 Apr 2024 10:45
Oh okay no problem I can wait
I was just surprised to still see the previous one after rebuilding my container, but no issue i'll wait ^^
(I thought it was updated like the plugins are)
Crypta Electrica 18 Apr 2024 10:46
hehe yeah it wont be there yet as I only just tagged a new eveapi, and have yet to build the container as I am putting a few other things in first
And no, core will not by default update on down/up
That is so that any give core image is at least semi repeatable
Jay's 18 Apr 2024 10:48
Yes I see it makes sense
Crypta Electrica 18 Apr 2024 11:21
docker building now.. So about an hour away from completion
Jay's 18 Apr 2024 11:23
Great !
Raiden 30 Apr 2024 01:01
So if i wanted to edit how the embed displays killmails in notifications would i need to set up a dev container or can i just edit it and save ?
Crypta Electrica 30 Apr 2024 12:25
Should do a dev install otherwise your changes will be lost each time you reboot.
Warlof Tutsimo 30 Apr 2024 17:24
Alternatively, you can make your changes and submit them as a PR to core and sharing changes across the world ๐Ÿ‘Œ
Raiden 30 Apr 2024 18:39
I would definitely think about it if I can contribute anything useful. For now I'm just looking at cosmetic changes
recursive_tree 30 Apr 2024 19:00
even cosmetic improvements are appreciated
iulixxi 1 May 2024 06:33
You can also add the custom-layout.css file. While this is not ideal you can change A LOT of stuff this way. This is how mine looks now
image: image.png
just a couple of screens as an example...
image: image.png
Raiden 1 May 2024 06:36
Wow I love that look. Did you edit the .css or is that the default custom -layout
iulixxi 1 May 2024 06:36
yes
Haven't finished up everything yet as as started a few days back
here's my custom styling - copy do not use the remote url in you app please
Raiden 1 May 2024 06:38
Thank you I will check it out
iulixxi 1 May 2024 06:38
The advantage is that if they change something on the logic (blades) nothing will be impacted, some styling may be broken but your app will work just fine. You can always remove the custom styling and will fallback to original
Hereโ€™s another EVE project I played with a few years backโ€ฆ itโ€™s still online lol http://www.eveshipsdb.com/
The webgl / canvas is a bit buggy as this is a React project but will regenerte the ship if you refresh ๐Ÿ˜‰ eg: http://www.eveshipsdb.com/ship/22448
Asrik 1 May 2024 20:10
How would you load it if someone is using a docker container?
iulixxi 1 May 2024 20:18
https://eveseat.github.io/docs/styling/
I just folowed these steps
Akov 2 May 2024 09:29
Thank god for you
seriously
have my children
iulixxi 2 May 2024 09:31
Bare in mind that the file is work in progress... I am working on it and will take a while as the styling is all over the place currently, there's a ton of inconsistencies that are quite difficult to sort out without breaking something elsewhere.
Akov 2 May 2024 09:31
its so good though
iulixxi 2 May 2024 09:31
It will get better ๐Ÿ˜‰
Akov 2 May 2024 09:31
just popp'd it on my v5 test instance
made my entire body relax its so good lol
iulixxi 2 May 2024 09:32
I hated the original skin so I built my own hehe
Just check the file once in a while as I am updating it whenever I got the time
Making changes to it daily, adding missing elements, etc so bare with me hehe
recursive_tree 2 May 2024 11:34
You might want to look into publishing it as a plugin providing it as a skin. I think I did the work so that plugins can publish skins, but then I never wrote the skin.
iulixxi 2 May 2024 11:54
I might look into this later onโ€ฆ
Technically this is not a skin tho ๐Ÿ˜ sorta
At least at the moment I mean
It would be nice to have a way to easily override the blades thoโ€ฆ thereโ€™s so much that can be improvedโ€ฆ data is all in there - you can do whatever you want on the FE
There's a ton of data that's in there and not used at all...
recursive_tree 2 May 2024 13:18
The skins are pretty much a css file that is included after the default stylesheet. So it is not at all different from a style override
nunu 3 May 2024 09:44
Sorry, I'm new here and I'm having trouble updating the seat.
Wibla 3 May 2024 09:44
#channel_821361546608508938
nunu 3 May 2024 09:45
front-1 | front-1 | INFO Routes cached successfully. front-1 | front-1 | front-1 | INFO Running migrations. front-1 | front-1 | 2020_03_26_110237_convert_to_seat_400 ............................. 1ms FAIL front-1 | front-1 | In Connection.php line 829: front-1 | front-1 | SQLSTATE[42S22]: Column not found: 1054 Unknown column 'group_id' in 'field front-1 | list' (Connection: mysql, SQL: select distinct groupid from seatconne front-1 | ctorusers order by groupid asc limit 1000 offset 0) front-1 | front-1 | front-1 | In Connection.php line 423: front-1 | front-1 | SQLSTATE[42S22]: Column not found: 1054 Unknown column 'group_id' in 'field front-1 | list' front-1 | front-1 |
thanks
Wibla 20 May 2024 10:25
I installed SeAT 5 with keydb replacing redis yesterday. Seems to work really well, but it DOES have the same issues redis has (it can spiral out of control when jobs fail). I didn't have to make any config changes, it just workedโ„ข๏ธ out of the box
with redis changing the licensing as of late, it might be worth looking at alternatives
it's also faster
by a little bit
image: 68747470733a2f2f646f63732e6b657964622e6465762f696d672f626c6f672f323032302d30392d31352f6f70735f636f6d70617269736f6e2e706e67.png
recursive_tree 20 May 2024 10:28
I tend to agree, but also with the little time that is currently spent on seat development, I'm not sure it has that high of a priority. Additionally, the license changes doesn't affect us. Also, let's wait a bit to see which fork will survive and become the new de-facto standard
Wibla 20 May 2024 10:29
indeed
I will keep things on keydb on my install for the time being
it's bare metal
4000+ tokens
looks like there are a few other alternatives, too
Crypta Electrica 22 May 2024 22:23
@user_169137647225143296 Have you seen the same fault on the assets job? I ran it briefly on a new test instance and didnt observe a failure, but not sure if there is a condition I am not meeting.
I have a fix regardless that will no longer use the mapping to modify the timestamp, but its embedded in a larger change that I need to be at my home pc to push ( 18h minimum)
Kiba 22 May 2024 22:36
If it didnโ€™t run at least an hour after an asset job entered the queue you might have inadvertently missed it, it sits in pending and retries for an hour before the job itself fails, but the laravel log shows the error immediately.
tmas 23 May 2024 00:22
@user_301981661761896449 I submitted a PR with a fix for the assets job
Crypta Electrica 23 May 2024 04:12
Hey mate! That looks good to me. Could you update the PR though to make the same change to the Corp assets job?
Yeah my error... I tested the initial pull. Mind blank because this change was related to unchanged items.
Herpaderp Aldent 23 May 2024 11:38
Have you looked into Kvrocks? Since it does not rely on the memory but the DB this could be the better angle?
Wibla 23 May 2024 11:39
nope
I just tried a slot-in replacement for shits and giggles since it's multithreaded
not like SeAT really pushes redis hard
swapped back to redis because of some citadel errors ... but those remained with redis
so that'll be fun
I suspect that's a legitimate bug
Herpaderp Aldent 23 May 2024 11:46
you can use kvrocks as drop-in replacement as well, but as said it does nto use the memory but has a persistent volume. This is actually what borked redis with a corrupt memory dump in the past
Wibla 23 May 2024 14:52
yeah... I have enough memory, I want to reduce disk trashing
recursive_tree 3 Jun 2024 21:27
Regarding @user_98470336932093952 issue in #channel_821361546608508938 : https://discord.com/channels/821361165791133716/821361546608508938/1247297270861402163 It seem like it has recently been introduced by https://github.com/eveseat/docs/pull/168 It has several changes and additions referencing a .env.example file in https://github.com/eveseat/seat-docker, but that file doesn't seem to exist there. Any context on this @user_301981661761896449 @user_164076488294006785
Jay's 3 Jun 2024 22:51
.env.example is not on the master branch, it's on the 5.X branch
recursive_tree 3 Jun 2024 22:52
but the docs reference master
also, seat-docker is the only module where the seat 5 code is in master
seat-docker:5.0.x is outdated
Jay's 3 Jun 2024 22:54
the pr should have been on master
Asrik 10 Jun 2024 18:04
By chance, do you have an updated version?
iulixxi 10 Jun 2024 18:05
Those is the latest versionโ€ฆ havenโ€™t done much on it, just go to that url and refresh
Crypta Electrica 10 Jun 2024 23:46
I will move the details across tonight
leonjza 11 Jun 2024 19:58
will need to keep an eye on fuzzworks sde dumps, and if it changes, adapt.
recursive_tree 12 Jun 2024 17:50
the good thing about fuzzworks dumps is that he tries to keep the stable even if the sde changes. Already now, the tables don't map 1:1 to the sde and some data, like repackaged volumes of ships, is introduced from other sources
@user_131158012831203328 can I get the horizon page of one of your failed citadel jobs? I do have a new theory about what could be causing them
Wibla 16 Jun 2024 15:03
I uh
I'll have a look
I did an update, added a plugin from crypta with citadels etc, so I blew the cache away
got some
@Wibla can I get the horizon page of
Mctwisp (John) 18 Jun 2024 23:56
is it possible change the display date format in the table wallet->journal??
image: image.png
Ncc-1709 19 Jun 2024 00:22
thats iso date format
Cindar of Gol 19 Jun 2024 01:00
Does that mean no?
Crypta Electrica 19 Jun 2024 01:28
Currently not changeable
Wibla 19 Jun 2024 03:47
I'd rather see the date and time than xx minutes ago
recursive_tree 21 Jun 2024 13:14
@user_131158012831203328 @user_155822088693743616 Can you guys test this PR? It should reduce the citadel load a bit: https://github.com/eveseat/eveapi/pull/407
Wibla 21 Jun 2024 13:17
interesting
ok so I'm going to ask a really stupid question here
the citadel jobs look up structure names?
or am I missing something?
recursive_tree 21 Jun 2024 13:34
Yes, that is its main purpose
Wibla 21 Jun 2024 13:34
oh boy
you don't need to check that per charid yeah
haha
taking a backup now, then I'll test
testing
still getting a ton of citadel errors hm
replaced the old files with new in vendor/eveseat/eveapi/src/Jobs/Universe/Structures
and restarted all the things
Ncc-1709 21 Jun 2024 22:06
i think ive added it
image: image.png
erm, getting 404 page not found
had to remove it, was causing 404?
sry each attempt to add it causes 404
Crypta Electrica 22 Jun 2024 00:24
It won't make the errors go away. The citadel issue with ESI means it will always be there. This should just decrease the rate
The reason why multiple ids were (and will be, just spaced out) checked is that we have know way of knowing who can access that citadel information.
It doesn't get added as a plugin is why, the code would need to be added as a dev install for docker
Ncc-1709 22 Jun 2024 00:30
i aint at that level yet. adding stuff to env is about my limit
Wibla 24 Jun 2024 17:28
seems to work now though... errors are steadily dropping
recursive_tree 2 Jul 2024 09:01
Is there a reason we only schedule one director per corporation?: https://github.com/eveseat/eveapi/blob/5.0.x/src/Commands/Seat/Buckets/Update.php#L111
What is the best approach to add translation to a html text fragment containing links? For example:
html
Edit and create roles on the <a href="{{ route('seatcore::configuration.access.roles') }}">access management</a> page and automate role assignment using <a href="{{ route('seatcore::squads.index') }}">squads</a>.
I could split it into multiple trans() calls for each text segment, but that is difficult to understand when looking at the translation file. Also in my experience, other languages sometimes reorder things in sentences and then this structure is too inflexible. The other option is to have html in the translation and put it into the browser unescaped, but I don't like that either.
Marc 4 Jul 2024 18:29
Could you have placeholders in the trans call for the links like and replace them again afterwards?
recursive_tree 4 Jul 2024 18:52
probably something like that if it there is nothing from laravel
Wibla 6 Jul 2024 21:17
so for structures, I'd probably do something like ... "ok this character works -> put it as the first on the list for refreshing a structure"
in a database table, not in redis ๐Ÿ˜›
Crypta Electrica 6 Jul 2024 23:50
Redis vs db aside for blacklist. Once a structure has been resolved at all, it is not refreshed.
Ncc-1709 6 Jul 2024 23:55
is there any way we can get the assets fails to try twice then wait a day? instead of trying over and over? 95% of our fails atm are assets failing
Crypta Electrica 6 Jul 2024 23:56
Failed jobs or logs you are looking at?
Ncc-1709 6 Jul 2024 23:56
jobs
Crypta Electrica 6 Jul 2024 23:56
But no there is no way to do that atm
There is some logic in the latest update that will reduce the time spent on failing jobs, but it won't reduce the number of jobs that fail in theory
Ncc-1709 6 Jul 2024 23:57
been 22h since i did the update and some are already on attempt 20
feels like its adding to server overhead without acheving anything
Crypta Electrica 7 Jul 2024 00:00
Attempt 20 can be deceptive though... The attempt count gets incremented for any reason if the job is put back on the queue.
Ie if the error rate limiter kicks in and delays the job, that counts as an attempt even though the job was never run
Marc 17 Jul 2024 10:02
Guess who is making about 15000 api requests every morning to check the lowest price of a bpc in jita ๐Ÿ‘€
Wibla 17 Jul 2024 10:02
that makes an in-memory cache a bit more valuable heh
ahahahah
yeeeah
so fucking dumb
"oh yeah we had to scrap the XML API because of load on the monolith"
what about... no you didn't
you could have put into place the same abstraction layer with XML
you just wanted to do something fancy and modern and aaaaaaaaaaaaaaaaaaaaaa get fucked
(there were other issues with the old XML API, don't get me wrong, but it was trivially simple to work with)
ok I guess that became a monologue / rant
sorry about that ๐Ÿ˜„
Crypta Electrica 17 Jul 2024 10:10
I understand how esi is better for the monolith than xml was. I understand some of the practices they attempted to institute. And most of all I am vaguely aware of intracies of the monolith that dictate some of the design of esi that are often seen as undesirable. But I think the biggest thing that plagues esi is stagnation.
Wibla 17 Jul 2024 10:32
I wonder how much they pay in egress fees
to AWS or whoever is hosting the ESI shit
@user_301981661761896449 just a thought, but if you have any ideas for database performance profiling that you want to test out on a 4300+ token install, I'd be happy to help
could be there are some low-hanging fruit there that is easier to spot on a busy install
Warlof Tutsimo 18 Jul 2024 18:07
Esi was a cool thing when there was a team working on it Aka snowedin and others
Last time I play with it, it was aws stuff
Crypta Electrica 20 Jul 2024 08:56
At the very least the load balancer is AWS as that's the layer that strips off the user agent.
Wibla 25 Jul 2024 00:54
9 days, 5.5TBW on the ZFS SLOG drive
image: smart_nvme0-pinpoint17210767141721860686.png
๐Ÿ’€
Moppa 27 Jul 2024 17:28
Any chance the https://github.com/eveseat/notifications/pull/101 and https://github.com/eveseat/notifications/pull/102 could get merged? I noticed today that StructureUnderAttack which is also used in the Skyhook PR failed if the agressor was not in an Alliance
recursive_tree 27 Jul 2024 19:12
@user_301981661761896449
Moppa 27 Jul 2024 20:26
*Noticed and fixed in my PR
Cindar of Gol 19 Aug 2024 23:23
Feature Request: BPO, BPC library and/or request system
recursive_tree 20 Aug 2024 06:55
That sounds more like a plugin than a core feature
Cindar of Gol 20 Aug 2024 12:38
Very likely true
It's also something NO ONE is doing as far as I can tell and there is a lot of need for something like that.
recursive_tree 20 Aug 2024 17:49
Depending on how important it is to you, you can complain about the lack of a plugin, or take it into your hands and get a plugin made.
You can: 1) learn to program yourself 2) convince someone in your corp/alliance to do it 3) convince someone from the seat community to do it 4) hire someone to do it and pay him, be it ISK or $. IDK if this works and how expensive it would be but no plugin programs itself from nothing
@user_301981661761896449 Is there a reason we don't have all migrations when running the tests?
FeiBam 22 Aug 2024 09:44
@user_76781846418956288 I'm trying to write a new connector plugin for seat-connector and I don't know how to solve this problem.
image: image.png
image: image.png
recursive_tree 22 Aug 2024 11:23
What were you trying to do when this happens?
Also, the composer.json doesnโ€™t matter for starting up the docker seat stack
FeiBam 23 Aug 2024 04:14
I have successfully let Seat load my plugin, but is there no way to hot update SeatDocker?
@user_614098468218339348 why my i18n not working...
image: image.png
you need the locale middleware on your routes I think. https://github.com/recursivetree/seat-billing/blob/main/src/Http/routes.php#L6
FeiBam 23 Aug 2024 07:34
ok thank
wait it i already use it..
image: image.png
recursive_tree 23 Aug 2024 07:37
you might need to php artisan config:cache or something like that
and route:clear
FeiBam 23 Aug 2024 07:48
image: image.png
image: image.png
same ...
Whatever, I've already implemented the registration logic, so I'll just leave it at that for today.
image: image.png
But thank you anyway
recursive_tree 23 Aug 2024 18:29
Did you manage to get it working? If it is on github i can also take a detailed look
FeiBam 24 Aug 2024 04:15
At least the controller looks fine, but there is still a problem with i18n. I will upload it to github. Can you help me solve the i18n problem?
@user_76781846418956288
Are you there?
FeiBam 24 Aug 2024 10:13
so connector_type mast be lowercase?
image: image.png
Because when I use uppercase characters, I can't find the Driver Class
Can you help me with the i18n issue? Here is the github address
recursive_tree 26 Aug 2024 15:50
Seems to work for me
image: Bildschirmfoto_2024-08-26_um_17.49.50.png
have you tried to restart the docker stack?
FeiBam 26 Aug 2024 16:20
I have fixed the bug yesterday, I just released the first version and submitted a pull request to seat doc
recursive_tree 26 Aug 2024 18:02
great!
Moppa 6 Sep 2024 08:43
@user_301981661761896449 Any ETA on publishing a new docker release with the stuff merged yesterday? Or should I run dev-install on them in the meantime?
Crypta Electrica 6 Sep 2024 08:43
Tonight
Moppa 6 Sep 2024 15:16
Awesome! Thanks!
Toxa 6 Sep 2024 20:40
Some bugs..
image: image.png
image: image.png
Wibla 9 Sep 2024 09:06
hmmmm
Found 1 security vulnerability advisory affecting 1 package:
+-------------------+----------------------------------------------------------------------------------+
| Package           | twbs/bootstrap                                                                   |
| Severity          | medium                                                                           |
| CVE               | CVE-2024-6531                                                                    |
| Title             | Bootstrap Cross-Site Scripting (XSS) vulnerability                               |
| URL               | https://github.com/advisories/GHSA-vc8w-jr9v-vj7f                                |
| Affected versions | >=4.0.0,<=4.6.2                                                                  |
| Reported at       | 2024-07-11T18:31:14+00:00                                                        |
+-------------------+----------------------------------------------------------------------------------+
Found 4 abandoned packages:
+-----------------------------------------+----------------------------------------------------------------------------------+
| Abandoned Package                       | Suggested Replacement                                                            |
+-----------------------------------------+----------------------------------------------------------------------------------+
| web-token/jwt-checker                   | web-token/jwt-library                                                            |
| web-token/jwt-signature-algorithm-ecdsa | web-token/jwt-library                                                            |
| web-token/jwt-signature-algorithm-hmac  | web-token/jwt-library                                                            |
| web-token/jwt-signature-algorithm-rsa   | web-token/jwt-library                                                            |
+-----------------------------------------+----------------------------------------------------------------------------------+
Crypta Electrica 9 Sep 2024 09:25
Does not affect seat core at this time
Yeah they have been that way for a while. Doesn't stop them functioning for us
Wibla 9 Sep 2024 09:27
nope, but abandoned packages are a possible security risk
Crypta Electrica 9 Sep 2024 09:32
Only in that security vulnerabilities are not fixed if found. Until such time they are no greater risk than a current package. I'm not saying we shouldn't move away, and I plan to. But it's not something that is simple swap out either
Actually that's not the package I was thinking of... Its just been renamed I think..
Wibla 9 Sep 2024 09:40
Yeah ๐Ÿ™‚
Crypta Electrica 9 Sep 2024 09:44
Kind of.. More to it than a simple change
Wibla 9 Sep 2024 09:58
as long as it's not forgotten, as they say ๐Ÿ™‚
Crypta Electrica 9 Sep 2024 09:59
It's on the list... But so is a lot of things with an absence of time to do them
Akov 9 Sep 2024 17:00
How would yall feel about a PR that added iulixxi's skin?
recursive_tree 9 Sep 2024 17:32
what is iulixxi's skin?
but in general, yes
been running his 2.0 version for a while and havent seen any broken stuff
Wibla 11 Sep 2024 16:55
https://devdocs.io/ y'all seen this?
leonjza 29 Sep 2024 14:40
what would the id value be?
Crypta Electrica 29 Sep 2024 14:44
This is the bit you didn't like above, probably a map key returned from eseye when eveapi configures that cache within eseye. So flow would be like When eseye singleton is inited by eveapi For each cache eveapi wants, tell eseye to create that cache Eseye creates the cache the same way it does now but stores it in a map, returning the key to the map. Eveapi stores that key for later use. When making a withCache call pass the key to select the cache. To handle the case of no key given, a default is setup at the beginning. Invalid keys result in exceptions.
That's my current thinking anyway...
But what has me thinking also is about that tempCache internal variable that would be needed withCache to be able have a check in invoke to use that cache. As I'm not sure how the singleton could allow that variable to lead across and smear cache changes across calls.
So perhaps instead of withCache builder method, as you said earlier maybe an alternate invoke method that takes an extra argument to choose the cache
But yes lot of testing required definitely
From your first option of having multiple eseye objects, is that something that would be expensive to have do you think? I'm not sure on the size of the object.
Wibla 29 Sep 2024 14:57
File cache is one thing, can I wish for a look at how the Redis cache keys are handled with TTL and such so that I don't have to run a cronjob every 24H to clear the cache?
crontab -l -u www-data
* * * * * php /var/www/seat/artisan schedule:run >> /dev/null 2>&1
55 23 * * * cd /var/www/seat && php artisan cache:clear  >> /dev/null 2>&1
currently have this abomination in my crontab
Crypta Electrica 29 Sep 2024 14:58
I have looked at the ttl.... It's using the etag expiry, so will stabilise on roughly the timebase of a full bucket cycle (plus a bit of overhead)
And these changes will affect all caches not just file
Which to me appears apparent that your redis cache is stabilising before you clear it https://discord.com/channels/821361165791133716/821361546608508938/1283015248923590758
Wibla 29 Sep 2024 15:06
somewhat, I've set it to evict keys based on volatlile-lru
I'll suspend the crontab cache clear tonight and see how it fares over >24 hours
Crypta Electrica 29 Sep 2024 15:08
Now is also probably a bad time to test.. As redis is eaten up by failed jobs.... And esi is not behaving.
Wibla 29 Sep 2024 15:08
very true
reverting that change
๐Ÿ˜„
image: image.png
used to sit around 300k
image: image.png
now it's ... oof ๐Ÿ™‚
leonjza 29 Sep 2024 15:17
I dont think its expensive to be honest. Especially because the object only really holds references to other things. In fact, I ask about the singleton because maybe its time to init per worker? At least that is something I think would be an interesting test. It also means you dont have to hack anything eseye and just config the cache the worker wants.
Yeah its a tricky, and complex design I think. Wonder if per worker init is not the way go, assuming my init time/load assumptions are true ofc.
Wibla 12 Oct 2024 10:10
https://i.imgur.com/cukoItF.png hello there zen5
Raiden 15 Oct 2024 16:45
is it possible to pass the token myself to seat ? for instance if i wanted a front page for my alliance. with differnt eve applicatons. but only want them to login to eve once.
Akov 15 Oct 2024 16:59
So the refresh token can change when ever you fetch a new access token, it happens periodically and unpredictably (afaik) but that makes multiple services which use the refresh tokens pretty hard to do
also, there is not a way to do it by default with seat, but you could do some voodoo combining the user api end point to createusers and then artisinally inserting their tokens into the db...but you are going to have sketchie issues
Raiden 15 Oct 2024 17:03
ok. doesnt sound like its worth it to do.
Akov 15 Oct 2024 17:03
You'd also have to create some sort of central service which syncs the refresh tokens across all your apps
I think you'll find nothing that needs the access token will play nice with that sort of auth
but for things that dont need any scopes, its pretty easy to do
(not a seat thing though)
Raiden 15 Oct 2024 17:05
they will all need scopes. I will just make them login twice lol
Akov 15 Oct 2024 17:06
whats the other app?
Raiden 15 Oct 2024 17:06
pathfinder
Akov 15 Oct 2024 17:06
oh yea, super low bar then ๐Ÿ˜›
Raiden 15 Oct 2024 17:06
yep
Ariel Rin 16 Oct 2024 02:39
You should not be sharing tokens between applications
This is a core tenant of the design of ESI and should be clear in the third party developer agreement
Akov 16 Oct 2024 06:01
theres nothing specifically about a single developer using tokens in multiple disclosed usages. Just undisclosed stuff. if you created a page that said "login to seat and pathfinder" that would satisfy the requirements just fine. It isnt how ever a clean cut easy solution from a technical perspective
Wibla 16 Oct 2024 06:05
Yeah
Ariel Rin 16 Oct 2024 06:26
don't be the guy that ccp says we all are
recursive_tree 16 Oct 2024 10:29
Did anybody receive a structure lost armor or structure lost shield notification recently and is willing to dig it out from the DB? I do need one to do some testing, but I don't own any citadels to test with
Moppa 16 Oct 2024 10:49
I'll dig Sorted ๐Ÿ‘
Raiden 13 Nov 2024 19:50
So I've been thinking about doing a personal project for eve. Just for fun. I have no idea on how to handle login/token information. Any recommendations or websites that you guys know of that would help would be appreciated
Crypta Electrica 13 Nov 2024 22:50
Well SeAT is one example! Though the code for various parts of the flow are scattered across eseye and web packages.
Have you had a look at the eve docs?
Raiden 13 Nov 2024 23:19
I've only had time to glance . I'll dive deeper into it. Any chance you know where I can look in seat for how to handle the tokens ?
Crypta Electrica 13 Nov 2024 23:20
Which part of handle the tokens is the question? But best place to start would probably be eseye (handles using them once you have a refresh token)
Raiden 13 Nov 2024 23:22
Awesome . Thank you
I'm looking for how to get them to login and return the token so I can pass that to the esi. And how to do it securely
Crypta Electrica 13 Nov 2024 23:28
OK so for that side of it that is handled in the Web repo for seat
Have a look in the SsoController
Raiden 13 Nov 2024 23:32
Thank you again. For now it's just for fun. But if I create anything useful I'll be sure to post
Crypta Electrica 13 Nov 2024 23:33
Enjoy it!
Also keep in mind seat is built around laravel which does a lot of work for us. And any different languages will handle things slightly differently, but the basics are the same being oauth
Raiden 13 Nov 2024 23:35
๐Ÿ‘
Is python a good choice ?
Crypta Electrica 14 Nov 2024 00:00
It's definitely not a bad choice in my mind.
If you want to have a look at a good web app in python and django, check out AllianceAuth
Ariel Rin 14 Nov 2024 02:27
Hi
Raiden 14 Nov 2024 02:37
Thank you. I will check it out
Wibla 15 Nov 2024 07:38
@user_301981661761896449 that's a very well put together roadmap document
Crypta Electrica 15 Nov 2024 08:00
Was an excuse to practice LaTeX
Wibla 15 Nov 2024 08:08
it's better put together than some stuff I've seen at work...
Raiden 18 Nov 2024 18:20
is there an easy way to generate a correct redirect url ?
when creating a redirect url i dont understand what to put as the state parameter. is there a list somehwere ?
state=<something-unique>
recursive_tree 18 Nov 2024 19:54
https://docs.esi.evetech.net/docs/sso/web_based_sso_flow.html contains some guidance and a link as a starting point for your own research
Raiden 18 Nov 2024 19:56
yea ive been reading this. im just having a hrdtime understadning the state parameter
Moppa 18 Nov 2024 20:48
It's to prevent Cross-site request forgery (CSRF) https://auth0.com/docs/secure/attack-protection/state-parameters https://en.wikipedia.org/wiki/Cross-site_request_forgery Is there any specific part you have trouble understanding?
Akov 18 Nov 2024 22:34
Generically... Think of the state parameter as a way that you can tell you sent this person to eveo to auth. Often services will drop it in a secure cookie before redirecting to eveo.
This prevents some one pretending they are you and getting folk to click links on their pages that do things on your site
Raiden 18 Nov 2024 22:51
Thank you guys. I understand it way better now. I wrote a script to generate the oauth url and randomly generate the state param. and it worked finally. ๐Ÿ™‚ now on to getting the token and such
Akov 20 Nov 2024 15:59
What's the prefered way to make feature suggestions that isn't just gonna annoy folk
recursive_tree 20 Nov 2024 16:41
generally just suggest it to the relevant people. If you don't want to annoy people, just stay realistic with your expectations of it being actually implemented. If you've understood that we aren't getting paid to do this, you should be mostly fine
Akov 20 Nov 2024 20:05
I would like a way for a CEO to be able to associate unregistered on seat Toons with main accounts. Use case nice: some times you have folk in your corp that go afk for long periods of time, but you dont want to kick them. So them, and their alts would be nice to group them together in a reportable function. It Also allows seat admins to chase folk to get toons registered with out knowing who the mains are. Use case CI: Having his tracked anywhere, would allow plugins to prevent or alert when an 'alt' signs up for services as a Main
recursive_tree 20 Nov 2024 20:24
To me, that sounds more like something for a plugin. Or why should it be in the core?
Akov 20 Nov 2024 20:28
I don't know either direction tbh. Alt management is something we speed a ton of time on
trying to think of things that might make neat features
Wibla 20 Nov 2024 21:33
hmmm, that'd be interesting
Moppa 20 Nov 2024 22:50
Was the issue fixed where a toon would disapear from the list of linked toon for a user if the token got invalidated? I know we discussed it but unsure if it was fixed.
Because to me thats related to the CI use case above. When the token got invalidated and you checked that character it was no longer showing the other linked characters that still had tokens. It was just "floating" on its own
I think this fixed what I am talking about above ๐Ÿ‘ https://github.com/eveseat/web/pull/657
Jay's 21 Nov 2024 11:37
o/ I have a question about plugin development and the SDE. How does it works ? I saw in other projects you can define a Config/sde.tables.php that is loaded then in the plugin init in seat.sde.tables, but how does it works for the model behind ? Does it exists already but is just not populated ?
Crypta Electrica 21 Nov 2024 11:39
So the config allows you to pull in the database table. But yes, you will need to create your own Model pointing to that data.
Jay's 21 Nov 2024 11:48
oh okay ! thank you ๐Ÿ™‚
Wibla 29 Dec 2024 21:39
hmmm, did CCP add notifications for merc dens to ESI? ... they did :v
Ariel Rin 30 Dec 2024 01:20
Yes Iโ€™ve been working with CCP on this
Refer to glue
Cindar of Gol 4 Jan 2025 23:37
Hello All. While troubleshooting a scheduling issue, I just noticed there is NO reference in the setup/readme for what the Cron job schedules should be. In fact, it doesn't refernce them at all. https://github.com/pyTonicis/seat-corp-mining-tax
Helious 5 Jan 2025 15:17
looking at it, it seeds the cron schedule when tables get migrated tax update every hour tax:update 2 * * * * create tax contracts every month at 2.nd day tax:generator 1 1 2 * * contract status update every hour tax:contracts 2 * * * *
recursive_tree 5 Jan 2025 17:49
Yes that Using migrations to add to the schedule is generally a bad idea. If required commands are deleted, they are gone and cannot easily be readded. It can also lead to issues when the schema of the schedule table changes. The recommended way is to use schedule seeders: https://eveseat.github.io/docs/developer_guides/package_development/#jobs-schedules
The website to create ESI applications has been updated. I guess we should check if out installation guides still work: https://developers.eveonline.com/ https://developers.eveonline.com/blog/and-once-again-welcome-to-developers-eveonline-com
Jay's 11 Jan 2025 09:25
Hello ! I'm having a dev question. In my industry plugin I'm looking to compute the rig effect on the production (increase material efficiency for example). So I'm looking at dogma and some documentation about it. Mainly https://docs.esi.evetech.net/docs/dogma.html I have found the attributes I'm interested in, like this one https://esi.evetech.net/v1/dogma/attributes/2538 which is the attribute modifying the material efficiency for ship modules etc. So far so good. I've looked at the dogma effects and can find the ones associated with my rig. I look at the modifierInfo and I see there what kind of operation I need to compute, like a ItemModifier that modify an item. I've been testing data on the Thukker rig, and here is the rig effect modifierInfo :
- domain: structureID
  func: ItemModifier
  modifiedAttributeID: 2557
  modifyingAttributeID: 2594
  operation: 6 
Here the modified attribute is https://esi.evetech.net/v1/dogma/attributes/2557 so it's one of my attribute I'm looking for, and the modifying attribute is https://esi.evetech.net/v1/dogma/attributes/2594 which is the Material Reduction bonus. For the type it has a valueFloat of -2. So I have found my -2% Material Efficiency rig for ship modules etc. So far so good. I also have this other effect :
structureEngineeringRigSecurityModification    "
- domain: itemID
  func: ItemModifier
  modifiedAttributeID: 2595
  modifyingAttributeID: 2358
  operation: 4
- domain: itemID
  func: ItemModifier
  modifiedAttributeID: 2594
  modifyingAttributeID: 2358
  operation: 4
- domain: itemID
  func: ItemModifier
  modifiedAttributeID: 2593
  modifyingAttributeID: 2358
  operation: 4
- domain: itemID
  func: ItemModifier
  modifiedAttributeID: 2653
  modifyingAttributeID: 2358
  operation: 4
"
This one is about applying the security level modifier, so in lowSec it's 1.9 for example. Here, the second item in the array is again the material efficiency being modified. attribute id 2594 is modified, but the modifying attribute is https://esi.evetech.net/v1/dogma/attributes/2358 and this one has no description or displayed name but is from the "bonus" attribute category. I cant seem to find how I link the attribute https://esi.evetech.net/v1/dogma/attributes/2355 (High Sec) https://esi.evetech.net/v1/dogma/attributes/2356 (Low Sec) https://esi.evetech.net/v1/dogma/attributes/2357 (NS & WH) to this 2358 attribute and then apply it. I know the result should be for a rig deployed in low sec -2 * 1.9, so clearly I need to multiply the LowSec attribute to the Material Reduction bonus, but using the effects and the attributes and I dont see how I do this operation + I cant seem to find where I can find a list of all operation with what they do (the operation in modifierInfo) Thanks for the help ๐Ÿ™‚
My guess is maybe I should have 2358 as a constant in my code, meaning "compute security system operation", and then look for the 3 attributes associated to the security status and get their value for my item, writing the attribute ids in my code too. But I dont like it I wanted to know if I missed anything and there was an obvious better way to do it ^^
recursive_tree 11 Jan 2025 13:35
I'll study your wall of text in detail tomorrow, but on top of my head: Dogma information from SDE and ESI is incomplete and difficult to understand. A long time ago, I tried to build a fitting engine from dogma data and I failed at understanding what stuff means&is supposed to do. SeAT's SDE is based on steve's exports. They are not 100% directly converted: https://www.fuzzwork.co.uk/2021/07/17/understanding-the-eve-online-sde-1/
Jay's 11 Jan 2025 18:22
yeah I read this part too and it stuck at the same place
Akov 11 Jan 2025 19:15
directly, or correctly >:)
Ariel Rin 12 Jan 2025 00:51
Ngl, the pyfa engine is not a bad idea
Those folks pulled off dark magic
And depending on your goal, using it, or atleast using it as an example is never a bad idea
Crypta Electrica 13 Jan 2025 07:21
https://discord.com/channels/821361165791133716/821361546608508938/1327570105189531710 @user_131158012831203328 I thought I was on to why we see so many failures by tracing through things using laravel telescope. My hunch was wrong though
Wibla 13 Jan 2025 07:57
yeah?
maybe I should make an effort :v and install laravel telescope on my install, then we could maybe sit down and look at things
might be easier to pin it down on a live install
Crypta Electrica 13 Jan 2025 11:19
Im running it on my prod server, but the problem wasnt what I though it was regarding middleware. I now think the problem just boils down to throughput
We cannot process enough of these jobs to get through them in a reasonable time because they exhaust too much of the rate limit.
As a simple method of printf debugging today I made the following patch: https://github.com/crypta-tech/eveapi/commit/8fd5d844f58a753ba702ad506de0c0d2b4797c9c
(though I backed out the Silenced change)
then I look at a Citadel job that failed after an hour
Grepping the logs for its jobID gives me the following
file: message.txt
So 12 times in an hour that job was attempted and the middleware rejected it
On the 13th attempt, laravel failed the job
Ironically this patch only matters if it had of got past the ESI throttler
Wibla 13 Jan 2025 14:32
ah
so this job
it's looking up structure names
Crypta Electrica 13 Jan 2025 14:34
Yep
Wibla 13 Jan 2025 14:36
how does seat order structure lookups now?
I am not a good programmer, but I'm not completely lost when it comes to workflow diagrams ๐Ÿ˜„
because I'm seeing like a solid 390k failed jobs last 7 days and it's stable
and there's no reason for that
recursive_tree 13 Jan 2025 14:42
a unknown structure is discovered -> the structure is not in the citadel access block cache, and no other job for this structure+character combination has been scheduled in the last hour or so -> a job is scheduled -> the job is in the queue until the error limit checking middleware allows it to run, or laravel fails the job -> the job checks if the name hasn't been fetched by another character in the meantime. It also checks the structure access cache a second time -> do the esi calls -> if failed, update the stucture access cache, or update the database with the data
Wibla 13 Jan 2025 14:46
Hmmmm
Crypta Electrica 13 Jan 2025 23:17
No reason for the 390k jobs? or no reason for it to be stable. I expect that it would plateau at a certain number and be fairly stable. The number it stabilises at is a function of structures needing lookup, number of characters and schedule (which impacts the accesscache)
Its also very easy for the number of structures to balloon, all it takes is a character to have an asset there for example
Wibla 13 Jan 2025 23:19
We don't have the same number of new structures needing lookup every day, but maybe I misunderstood the logic
Crypta Electrica 13 Jan 2025 23:19
The problem is you cant get the information
The way ESI works, if the char doing the lookup doesnt have docking rights, ESI will return a 403
Wibla 13 Jan 2025 23:20
I'm aware
Crypta Electrica 13 Jan 2025 23:21
So we dont know what the structure is, we slowly keep trying to get it from all characters who have a link to the structure, and retry the characters that have failed on a slower cadence (set by the access cache)
Wibla 13 Jan 2025 23:21
If the character does not have docking access, aka 403, drop it on a no-retry list for like a month
Crypta Electrica 13 Jan 2025 23:22
We currently do for IIRC a week