added IMAP, LetsEncrypt, update layout
This commit is contained in:
@@ -12,23 +12,69 @@ require (
|
||||
)
|
||||
|
||||
require (
|
||||
github.com/boombuler/barcode v1.0.1-0.20190219062509-6c824513bacc // indirect
|
||||
cloud.google.com/go/auth v0.20.0 // indirect
|
||||
cloud.google.com/go/auth/oauth2adapt v0.2.8 // indirect
|
||||
cloud.google.com/go/compute/metadata v0.9.0 // indirect
|
||||
github.com/aws/aws-sdk-go-v2 v1.41.6 // indirect
|
||||
github.com/aws/aws-sdk-go-v2/config v1.32.16 // indirect
|
||||
github.com/aws/aws-sdk-go-v2/credentials v1.19.15 // indirect
|
||||
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.22 // indirect
|
||||
github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.22 // indirect
|
||||
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.22 // indirect
|
||||
github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.23 // indirect
|
||||
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.8 // indirect
|
||||
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.22 // indirect
|
||||
github.com/aws/aws-sdk-go-v2/service/route53 v1.62.6 // indirect
|
||||
github.com/aws/aws-sdk-go-v2/service/signin v1.0.10 // indirect
|
||||
github.com/aws/aws-sdk-go-v2/service/sso v1.30.16 // indirect
|
||||
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.20 // indirect
|
||||
github.com/aws/aws-sdk-go-v2/service/sts v1.42.0 // indirect
|
||||
github.com/aws/smithy-go v1.25.0 // indirect
|
||||
github.com/boombuler/barcode v1.0.1 // indirect
|
||||
github.com/cenkalti/backoff/v5 v5.0.3 // indirect
|
||||
github.com/cespare/xxhash/v2 v2.3.0 // indirect
|
||||
github.com/dustin/go-humanize v1.0.1 // indirect
|
||||
github.com/emersion/go-imap/v2 v2.0.0-beta.8 // indirect
|
||||
github.com/emersion/go-message v0.18.2 // indirect
|
||||
github.com/felixge/httpsnoop v1.0.4 // indirect
|
||||
github.com/fxamacker/cbor/v2 v2.9.2 // indirect
|
||||
github.com/go-acme/lego/v4 v4.35.2 // indirect
|
||||
github.com/go-jose/go-jose/v4 v4.1.4 // indirect
|
||||
github.com/go-logr/logr v1.4.3 // indirect
|
||||
github.com/go-logr/stdr v1.2.2 // indirect
|
||||
github.com/go-viper/mapstructure/v2 v2.5.0 // indirect
|
||||
github.com/go-webauthn/webauthn v0.17.4 // indirect
|
||||
github.com/go-webauthn/x v0.2.6 // indirect
|
||||
github.com/golang-jwt/jwt/v5 v5.3.1 // indirect
|
||||
github.com/google/go-tpm v0.9.8 // indirect
|
||||
github.com/google/s2a-go v0.1.9 // indirect
|
||||
github.com/google/uuid v1.6.0 // indirect
|
||||
github.com/googleapis/enterprise-certificate-proxy v0.3.14 // indirect
|
||||
github.com/googleapis/gax-go/v2 v2.21.0 // indirect
|
||||
github.com/mattn/go-isatty v0.0.24 // indirect
|
||||
github.com/miekg/dns v1.1.72 // indirect
|
||||
github.com/ncruces/go-strftime v1.0.0 // indirect
|
||||
github.com/philhofer/fwd v1.2.0 // indirect
|
||||
github.com/pquerna/otp v1.5.0 // indirect
|
||||
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect
|
||||
github.com/tinylib/msgp v1.6.4 // indirect
|
||||
github.com/x448/float16 v0.8.4 // indirect
|
||||
go.opentelemetry.io/auto/sdk v1.2.1 // indirect
|
||||
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.67.0 // indirect
|
||||
go.opentelemetry.io/otel v1.43.0 // indirect
|
||||
go.opentelemetry.io/otel/metric v1.43.0 // indirect
|
||||
go.opentelemetry.io/otel/trace v1.43.0 // indirect
|
||||
golang.org/x/mod v0.38.0 // indirect
|
||||
golang.org/x/net v0.57.0 // indirect
|
||||
golang.org/x/oauth2 v0.36.0 // indirect
|
||||
golang.org/x/sync v0.22.0 // indirect
|
||||
golang.org/x/sys v0.47.0 // indirect
|
||||
golang.org/x/text v0.41.0 // indirect
|
||||
golang.org/x/tools v0.48.0 // indirect
|
||||
google.golang.org/api v0.276.0 // indirect
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20260401024825-9d38bb4040a9 // indirect
|
||||
google.golang.org/grpc v1.80.0 // indirect
|
||||
google.golang.org/protobuf v1.36.11 // indirect
|
||||
modernc.org/libc v1.74.4 // indirect
|
||||
modernc.org/mathutil v1.7.1 // indirect
|
||||
modernc.org/memory v1.11.0 // indirect
|
||||
|
||||
@@ -1,11 +1,58 @@
|
||||
cloud.google.com/go/auth v0.20.0 h1:kXTssoVb4azsVDoUiF8KvxAqrsQcQtB53DcSgta74CA=
|
||||
cloud.google.com/go/auth v0.20.0/go.mod h1:942/yi/itH1SsmpyrbnTMDgGfdy2BUqIKyd0cyYLc5Q=
|
||||
cloud.google.com/go/auth/oauth2adapt v0.2.8 h1:keo8NaayQZ6wimpNSmW5OPc283g65QNIiLpZnkHRbnc=
|
||||
cloud.google.com/go/auth/oauth2adapt v0.2.8/go.mod h1:XQ9y31RkqZCcwJWNSx2Xvric3RrU88hAYYbjDWYDL+c=
|
||||
cloud.google.com/go/compute/metadata v0.9.0 h1:pDUj4QMoPejqq20dK0Pg2N4yG9zIkYGdBtwLoEkH9Zs=
|
||||
cloud.google.com/go/compute/metadata v0.9.0/go.mod h1:E0bWwX5wTnLPedCKqk3pJmVgCBSM6qQI1yTBdEb3C10=
|
||||
github.com/aws/aws-sdk-go-v2 v1.41.6 h1:1AX0AthnBQzMx1vbmir3Y4WsnJgiydmnJjiLu+LvXOg=
|
||||
github.com/aws/aws-sdk-go-v2 v1.41.6/go.mod h1:dy0UzBIfwSeot4grGvY1AqFWN5zgziMmWGzysDnHFcQ=
|
||||
github.com/aws/aws-sdk-go-v2/config v1.32.16 h1:Q0iQ7quUgJP0F/SCRTieScnaMdXr9h/2+wze1u3cNeM=
|
||||
github.com/aws/aws-sdk-go-v2/config v1.32.16/go.mod h1:duCCnJEFqpt2RC6no1iK6q+8HpwOAkiUua0pY507dQc=
|
||||
github.com/aws/aws-sdk-go-v2/credentials v1.19.15 h1:fyvgWTszojq8hEnMi8PPBTvZdTtEVmAVyo+NFLHBhH4=
|
||||
github.com/aws/aws-sdk-go-v2/credentials v1.19.15/go.mod h1:gJiYyMOjNg8OEdRWOf3CrFQxM2a98qmrtjx1zuiQfB8=
|
||||
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.22 h1:IOGsJ1xVWhsi+ZO7/NW8OuZZBtMJLZbk4P5HDjJO0jQ=
|
||||
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.22/go.mod h1:b+hYdbU+jGKfXE8kKM6g1+h+L/Go3vMvzlxBsiuGsxg=
|
||||
github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.22 h1:GmLa5Kw1ESqtFpXsx5MmC84QWa/ZrLZvlJGa2y+4kcQ=
|
||||
github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.22/go.mod h1:6sW9iWm9DK9YRpRGga/qzrzNLgKpT2cIxb7Vo2eNOp0=
|
||||
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.22 h1:dY4kWZiSaXIzxnKlj17nHnBcXXBfac6UlsAx2qL6XrU=
|
||||
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.22/go.mod h1:KIpEUx0JuRZLO7U6cbV204cWAEco2iC3l061IxlwLtI=
|
||||
github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.23 h1:FPXsW9+gMuIeKmz7j6ENWcWtBGTe1kH8r9thNt5Uxx4=
|
||||
github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.23/go.mod h1:7J8iGMdRKk6lw2C+cMIphgAnT8uTwBwNOsGkyOCm80U=
|
||||
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.8 h1:HtOTYcbVcGABLOVuPYaIihj6IlkqubBwFj10K5fxRek=
|
||||
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.8/go.mod h1:VsK9abqQeGlzPgUr+isNWzPlK2vKe9INMLWnY65f5Xs=
|
||||
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.22 h1:PUmZeJU6Y1Lbvt9WFuJ0ugUK2xn6hIWUBBbKuOWF30s=
|
||||
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.22/go.mod h1:nO6egFBoAaoXze24a2C0NjQCvdpk8OueRoYimvEB9jo=
|
||||
github.com/aws/aws-sdk-go-v2/service/route53 v1.62.6 h1:6b+KS0uVMMsCUKlW8OPNxmcEmoEUtqP1LfnzSzWmuQM=
|
||||
github.com/aws/aws-sdk-go-v2/service/route53 v1.62.6/go.mod h1:+wmraHmxwqi7feUL/41uULJWl8V1HxtxzOJH6a4ZRg4=
|
||||
github.com/aws/aws-sdk-go-v2/service/signin v1.0.10 h1:a1Fq/KXn75wSzoJaPQTgZO0wHGqE9mjFnylnqEPTchA=
|
||||
github.com/aws/aws-sdk-go-v2/service/signin v1.0.10/go.mod h1:p6+MXNxW7IA6dMgHfTAzljuwSKD0NCm/4lbS4t6+7vI=
|
||||
github.com/aws/aws-sdk-go-v2/service/sso v1.30.16 h1:x6bKbmDhsgSZwv6q19wY/u3rLk/3FGjJWyqKcIRufpE=
|
||||
github.com/aws/aws-sdk-go-v2/service/sso v1.30.16/go.mod h1:CudnEVKRtLn0+3uMV0yEXZ+YZOKnAtUJ5DmDhilVnIw=
|
||||
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.20 h1:oK/njaL8GtyEihkWMD4k3VgHCT64RQKkZwh0DG5j8ak=
|
||||
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.20/go.mod h1:JHs8/y1f3zY7U5WcuzoJ/yAYGYtNIVPKLIbp61euvmg=
|
||||
github.com/aws/aws-sdk-go-v2/service/sts v1.42.0 h1:ks8KBcZPh3PYISr5dAiXCM5/Thcuxk8l+PG4+A0exds=
|
||||
github.com/aws/aws-sdk-go-v2/service/sts v1.42.0/go.mod h1:pFw33T0WLvXU3rw1WBkpMlkgIn54eCB5FYLhjDc9Foo=
|
||||
github.com/aws/smithy-go v1.25.0 h1:Sz/XJ64rwuiKtB6j98nDIPyYrV1nVNJ4YU74gttcl5U=
|
||||
github.com/aws/smithy-go v1.25.0/go.mod h1:YE2RhdIuDbA5E5bTdciG9KrW3+TiEONeUWCqxX9i1Fc=
|
||||
github.com/boombuler/barcode v1.0.1-0.20190219062509-6c824513bacc h1:biVzkmvwrH8WK8raXaxBx6fRVTlJILwEwQGL1I/ByEI=
|
||||
github.com/boombuler/barcode v1.0.1-0.20190219062509-6c824513bacc/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8=
|
||||
github.com/boombuler/barcode v1.0.1 h1:NDBbPmhS+EqABEs5Kg3n/5ZNjy73Pz7SIV+KCeqyXcs=
|
||||
github.com/boombuler/barcode v1.0.1/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8=
|
||||
github.com/cenkalti/backoff/v5 v5.0.3 h1:ZN+IMa753KfX5hd8vVaMixjnqRZ3y8CuJKRKj1xcsSM=
|
||||
github.com/cenkalti/backoff/v5 v5.0.3/go.mod h1:rkhZdG3JZukswDf7f0cwqPNk4K0sa+F97BxZthm/crw=
|
||||
github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs=
|
||||
github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
|
||||
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
||||
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM=
|
||||
github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY=
|
||||
github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto=
|
||||
github.com/emersion/go-imap/v2 v2.0.0-beta.8 h1:5IXZK1E33DyeP526320J3RS7eFlCYGFgtbrfapqDPug=
|
||||
github.com/emersion/go-imap/v2 v2.0.0-beta.8/go.mod h1:dhoFe2Q0PwLrMD7oZw8ODuaD0vLYPe5uj2wcOMnvh48=
|
||||
github.com/emersion/go-message v0.18.1/go.mod h1:XpJyL70LwRvq2a8rVbHXikPgKj8+aI0kGdHlg16ibYA=
|
||||
github.com/emersion/go-message v0.18.2 h1:rl55SQdjd9oJcIoQNhubD2Acs1E6IzlZISRTK7x/Lpg=
|
||||
github.com/emersion/go-message v0.18.2/go.mod h1:XpJyL70LwRvq2a8rVbHXikPgKj8+aI0kGdHlg16ibYA=
|
||||
github.com/emersion/go-milter v0.4.1/go.mod h1:erCQVl0mH4SX9jEvwe+wyndit0rQtmvMLH86V6NGtkI=
|
||||
github.com/emersion/go-msgauth v0.7.0 h1:vj2hMn6KhFtW41kshIBTXvp6KgYSqpA/ZN9Pv4g1INc=
|
||||
github.com/emersion/go-msgauth v0.7.0/go.mod h1:mmS9I6HkSovrNgq0HNXTeu8l3sRAAuQ9RMvbM4KU7Ck=
|
||||
@@ -13,8 +60,19 @@ github.com/emersion/go-sasl v0.0.0-20241020182733-b788ff22d5a6 h1:oP4q0fw+fOSWn3
|
||||
github.com/emersion/go-sasl v0.0.0-20241020182733-b788ff22d5a6/go.mod h1:iL2twTeMvZnrg54ZoPDNfJaJaqy0xIQFuBdrLsmspwQ=
|
||||
github.com/emersion/go-smtp v0.24.0 h1:g6AfoF140mvW0vLNPD/LuCBLEAdlxOjIXqbIkJIS6Wk=
|
||||
github.com/emersion/go-smtp v0.24.0/go.mod h1:ZtRRkbTyp2XTHCA+BmyTFTrj8xY4I+b4McvHxCU2gsQ=
|
||||
github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg=
|
||||
github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U=
|
||||
github.com/fxamacker/cbor/v2 v2.9.2 h1:X4Ksno9+x3cz0TZv69ec1hxP/+tymuR8PXQJyDwfh78=
|
||||
github.com/fxamacker/cbor/v2 v2.9.2/go.mod h1:vM4b+DJCtHn+zz7h3FFp/hDAI9WNWCsZj23V5ytsSxQ=
|
||||
github.com/go-acme/lego/v4 v4.35.2 h1:uVQg+KC/yj9R2g7Q9W5wDqhvQvxV5SMu5eqFVoN5xZU=
|
||||
github.com/go-acme/lego/v4 v4.35.2/go.mod h1:pX2jN5n8OphMGY1IaMjYm5DAEzguBaKRt8AvJAgJXpc=
|
||||
github.com/go-jose/go-jose/v4 v4.1.4 h1:moDMcTHmvE6Groj34emNPLs/qtYXRVcd6S7NHbHz3kA=
|
||||
github.com/go-jose/go-jose/v4 v4.1.4/go.mod h1:x4oUasVrzR7071A4TnHLGSPpNOm2a21K9Kf04k1rs08=
|
||||
github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
|
||||
github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI=
|
||||
github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
|
||||
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
|
||||
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
|
||||
github.com/go-viper/mapstructure/v2 v2.5.0 h1:vM5IJoUAy3d7zRSVtIwQgBj7BiWtMPfmPEgAXnvj1Ro=
|
||||
github.com/go-viper/mapstructure/v2 v2.5.0/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM=
|
||||
github.com/go-webauthn/webauthn v0.17.4 h1:KFTSz3R2RYDiUn/0cDi3XTJgFenSG74eKTTHlqWhlxk=
|
||||
@@ -27,18 +85,27 @@ github.com/google/go-tpm v0.9.8 h1:slArAR9Ft+1ybZu0lBwpSmpwhRXaa85hWtMinMyRAWo=
|
||||
github.com/google/go-tpm v0.9.8/go.mod h1:h9jEsEECg7gtLis0upRBQU+GhYVH6jMjrFxI8u6bVUY=
|
||||
github.com/google/pprof v0.0.0-20260802141513-ef3492d7dac3 h1:LMLX+LgTNWpfvCBdFebv6EsYotImrt/Ppc5cXIriCSo=
|
||||
github.com/google/pprof v0.0.0-20260802141513-ef3492d7dac3/go.mod h1:jl5iWTm0/hd5PjEYEOuwAJ57L/CibdZfrqZ5XA5GrCk=
|
||||
github.com/google/s2a-go v0.1.9 h1:LGD7gtMgezd8a/Xak7mEWL0PjoTQFvpRudN895yqKW0=
|
||||
github.com/google/s2a-go v0.1.9/go.mod h1:YA0Ei2ZQL3acow2O62kdp9UlnvMmU7kA6Eutn0dXayM=
|
||||
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
|
||||
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
||||
github.com/googleapis/enterprise-certificate-proxy v0.3.14 h1:yh8ncqsbUY4shRD5dA6RlzjJaT4hi3kII+zYw8wmLb8=
|
||||
github.com/googleapis/enterprise-certificate-proxy v0.3.14/go.mod h1:vqVt9yG9480NtzREnTlmGSBmFrA+bzb0yl0TxoBQXOg=
|
||||
github.com/googleapis/gax-go/v2 v2.21.0 h1:h45NjjzEO3faG9Lg/cFrBh2PgegVVgzqKzuZl/wMbiI=
|
||||
github.com/googleapis/gax-go/v2 v2.21.0/go.mod h1:But/NJU6TnZsrLai/xBAQLLz+Hc7fHZJt/hsCz3Fih4=
|
||||
github.com/hashicorp/golang-lru/v2 v2.0.7 h1:a+bsQ5rvGLjzHuww6tVxozPZFVghXaHOwFs4luLUK2k=
|
||||
github.com/hashicorp/golang-lru/v2 v2.0.7/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyfM2/ZepoAG6RGpeM=
|
||||
github.com/mattn/go-isatty v0.0.24 h1:tGZZoVgT/KiqK1c8ocVLeDS8BSWMRd47J3Lbz7vsReI=
|
||||
github.com/mattn/go-isatty v0.0.24/go.mod h1:nMCL3Zebbrt45jsMDgnfIwz6ydEQApk5oEI3HqDio6A=
|
||||
github.com/miekg/dns v1.1.72 h1:vhmr+TF2A3tuoGNkLDFK9zi36F2LS+hKTRW0Uf8kbzI=
|
||||
github.com/miekg/dns v1.1.72/go.mod h1:+EuEPhdHOsfk6Wk5TT2CzssZdqkmFhf8r+aVyDEToIs=
|
||||
github.com/ncruces/go-strftime v1.0.0 h1:HMFp8mLCTPp341M/ZnA4qaf7ZlsbTc+miZjCLOFAw7w=
|
||||
github.com/ncruces/go-strftime v1.0.0/go.mod h1:Fwc5htZGVVkseilnfgOVb9mKy6w1naJmn9CehxcKcls=
|
||||
github.com/philhofer/fwd v1.2.0 h1:e6DnBTl7vGY+Gz322/ASL4Gyp1FspeMvx1RNDoToZuM=
|
||||
github.com/philhofer/fwd v1.2.0/go.mod h1:RqIHx9QI14HlwKwm98g9Re5prTQ6LdeRQn+gXJFxsJM=
|
||||
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
||||
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U=
|
||||
github.com/pquerna/otp v1.5.0 h1:NMMR+WrmaqXU4EzdGJEE1aUUI0AMRzsp96fFFWNPwxs=
|
||||
github.com/pquerna/otp v1.5.0/go.mod h1:dkJfzwRKNiegxyNb54X/3fLwhCynbMspSyWKnvi1AEg=
|
||||
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec h1:W09IVJc94icq4NjY3clb7Lk8O1qJ8BdBEF8z0ibU0rE=
|
||||
@@ -57,19 +124,78 @@ github.com/tinylib/msgp v1.6.4 h1:mOwYbyYDLPj35mkA2BjjYejgJk9BuHxDdvRnb6v2ZcQ=
|
||||
github.com/tinylib/msgp v1.6.4/go.mod h1:RSp0LW9oSxFut3KzESt5Voq4GVWyS+PSulT77roAqEA=
|
||||
github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM=
|
||||
github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg=
|
||||
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
|
||||
go.opentelemetry.io/auto/sdk v1.2.1 h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ64=
|
||||
go.opentelemetry.io/auto/sdk v1.2.1/go.mod h1:KRTj+aOaElaLi+wW1kO/DZRXwkF4C5xPbEe3ZiIhN7Y=
|
||||
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.67.0 h1:OyrsyzuttWTSur2qN/Lm0m2a8yqyIjUVBZcxFPuXq2o=
|
||||
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.67.0/go.mod h1:C2NGBr+kAB4bk3xtMXfZ94gqFDtg/GkI7e9zqGh5Beg=
|
||||
go.opentelemetry.io/otel v1.43.0 h1:mYIM03dnh5zfN7HautFE4ieIig9amkNANT+xcVxAj9I=
|
||||
go.opentelemetry.io/otel v1.43.0/go.mod h1:JuG+u74mvjvcm8vj8pI5XiHy1zDeoCS2LB1spIq7Ay0=
|
||||
go.opentelemetry.io/otel/metric v1.43.0 h1:d7638QeInOnuwOONPp4JAOGfbCEpYb+K6DVWvdxGzgM=
|
||||
go.opentelemetry.io/otel/metric v1.43.0/go.mod h1:RDnPtIxvqlgO8GRW18W6Z/4P462ldprJtfxHxyKd2PY=
|
||||
go.opentelemetry.io/otel/trace v1.43.0 h1:BkNrHpup+4k4w+ZZ86CZoHHEkohws8AY+WTX09nk+3A=
|
||||
go.opentelemetry.io/otel/trace v1.43.0/go.mod h1:/QJhyVBUUswCphDVxq+8mld+AvhXZLhe+8WVFxiFff0=
|
||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
||||
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
|
||||
golang.org/x/crypto v0.55.0 h1:+KWHjbgOaAQ66dh/YlkZKHlz9ZUlq61AFirAR9ntP8M=
|
||||
golang.org/x/crypto v0.55.0/go.mod h1:uq0V9dE/fzQuJtbnL+2EhWOE63vo164FY8xqEnV9xis=
|
||||
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
|
||||
golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
|
||||
golang.org/x/mod v0.37.0 h1:vF1DjpVEshcIqoEaauuHebaLk1O1forxjxBaVn884JQ=
|
||||
golang.org/x/mod v0.37.0/go.mod h1:m8S8VeM9r4dzDwjrKO0a1sZP3YjeMamRRlD+fmR2Q/0=
|
||||
golang.org/x/mod v0.38.0 h1:MECBjubtXD7yj4HrhIUcywNaGeNVUdfVnxmPajOk4yk=
|
||||
golang.org/x/mod v0.38.0/go.mod h1:V6Xz0pq8TQ3dGqVQ1FVHuelZpAL0uNhSkk9ogYP3c40=
|
||||
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
|
||||
golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
|
||||
golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
|
||||
golang.org/x/net v0.57.0 h1:K5+3DljvIuDG9/Jv9rvyMywYNFCQ9RSUY6OOTTkT+tE=
|
||||
golang.org/x/net v0.57.0/go.mod h1:KpXc8iv+r3XplLAG/f7Jsf9RPszJzdR0f58q9vGOuEU=
|
||||
golang.org/x/oauth2 v0.36.0 h1:peZ/1z27fi9hUOFCAZaHyrpWG5lwe0RJEEEeH0ThlIs=
|
||||
golang.org/x/oauth2 v0.36.0/go.mod h1:YDBUJMTkDnJS+A4BP4eZBjCqtokkg1hODuPjwiGPO7Q=
|
||||
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.21.0 h1:HLII4xRRTtCRkxYp4HNFF0Js/Og6q2i++KXbg0gHCwM=
|
||||
golang.org/x/sync v0.21.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0=
|
||||
golang.org/x/sync v0.22.0 h1:SZjpbeLmrCk4xhRSZFNZW5gFUeCeFgjekvI/+gfScek=
|
||||
golang.org/x/sync v0.22.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0=
|
||||
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.47.0 h1:o7XGOvZQCADBQQ4Y7VNq2dRWQR7JmOUW8Kxx4ZsNgWs=
|
||||
golang.org/x/sys v0.47.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw=
|
||||
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
||||
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
|
||||
golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=
|
||||
golang.org/x/term v0.45.0/go.mod h1:9aqxs0blBcrm/n0L9QW0aRVD+ktan8ssZromtqJC43w=
|
||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
|
||||
golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
|
||||
golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
|
||||
golang.org/x/text v0.41.0 h1:vz/seA0lnX87Othu2f/0L24RcgrXD9/YFTSuGjj3rH8=
|
||||
golang.org/x/text v0.41.0/go.mod h1:jvf1O8ajNzZqhSrQBPbutR/EB83Cc0CFrezNQIwbb5M=
|
||||
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
|
||||
golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=
|
||||
golang.org/x/tools v0.47.0 h1:7Kn5x/d1svx/PzryTsqeoZN4TZwqeH5pGWjefhLi/1Q=
|
||||
golang.org/x/tools v0.47.0/go.mod h1:dFHnyTvFWY212G+h7ZY4Vsp/K3U4/7W9TyVaAul8uCA=
|
||||
golang.org/x/tools v0.48.0 h1:3+hClM1aLL5mjMKm5ovokw9epgRXPuu2tILgismM6RE=
|
||||
golang.org/x/tools v0.48.0/go.mod h1:08xX0orndb/F7jJxGDicx061tyd5pcMto75YMAXr6lk=
|
||||
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
google.golang.org/api v0.276.0 h1:nVArUtfLEihtW+b0DdcqRGK1xoEm2+ltAihyztq7MKY=
|
||||
google.golang.org/api v0.276.0/go.mod h1:Fnag/EWUPIcJXuIkP1pjoTgS5vdxlk3eeemL7Do6bvw=
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20260401024825-9d38bb4040a9 h1:m8qni9SQFH0tJc1X0vmnpw/0t+AImlSvp30sEupozUg=
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20260401024825-9d38bb4040a9/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8=
|
||||
google.golang.org/grpc v1.80.0 h1:Xr6m2WmWZLETvUNvIUmeD5OAagMw3FiKmMlTdViWsHM=
|
||||
google.golang.org/grpc v1.80.0/go.mod h1:ho/dLnxwi3EDJA4Zghp7k2Ec1+c2jqup0bFkw07bwF4=
|
||||
google.golang.org/protobuf v1.36.11 h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE=
|
||||
google.golang.org/protobuf v1.36.11/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco=
|
||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||
gopkg.in/ini.v1 v1.67.3 h1:iM9Lhz5MRSGhHVGGwCuzG9KO8PoirCXj/m/qTmOJJQw=
|
||||
gopkg.in/ini.v1 v1.67.3/go.mod h1:x/cyOwCgZqOkJoDIJ3c1KNHMo10+nLGAhh+kn3Zizss=
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"0": "DKIM/SPF DNS Management UI", "1": "Web UI Database & Settings Utils", "2": "Admin Template Pages", "3": "App Bootstrap & Domain Models", "4": "DKIM Key Manager", "5": "SMTP Custom Protocol & Controllers", "6": "Sender/IP Authentication Logic", "7": "Models Core & Logging Utils", "8": "Email Relay Delivery", "9": "Unified App Entry Point", "10": "Dashboard & Auth Log Web UI", "11": "IP Whitelist Web UI", "12": "SMTP Handler Message Processing", "13": "Sender Management Web UI", "14": "Domain Management Web UI", "15": "README Unified: Structure & Deployment", "16": "README Unified & Requirements: SMTP/DB Deps", "17": "Manual Testing Docs (swaks/CLI)", "18": "Settings Loader & TLS Utils", "19": "DKIM/Custom Header Models", "20": "Combined Authenticators", "21": "CLI Usage & IP Whitelisting Docs", "22": "Message Viewer Web UI", "23": "DKIM/DNS Dependencies", "24": "README: License & Auth Features", "25": "systemd Install Script", "26": "Auth Order Fix Notes", "27": "Sender Model", "28": "send_email.py Test Script", "29": "SMTP Management JS (Frontend)", "30": "SMTP Handler Module & Message ID Util", "31": "Template Datetime Filter", "32": "Dashboard Route", "33": "nginx Setup Script", "34": "email_server Package Init", "35": "DKIM Management JS (Frontend)", "36": "Python Env Setup Script", "37": "bash_send_email Test Script", "38": "Hello.jpg Test Fixture (Doge Meme)"}
|
||||
{"0": "Domain Access Web Requests", "1": "Admin User & Session Management", "2": "IMAP Fetch/Append Protocol Types", "3": "Dashboard & Login Tests", "4": "Admin Web UI Add-Forms", "5": "Spam/DKIM Verification & Attachments", "6": "Mailbox App Passwords & Schema", "7": "DKIM Web Routes & Tests", "8": "DKIM Key Management", "9": "Admin Session Auth Middleware", "10": "Webmail Session Auth Middleware", "11": "Mailbox Alias SMTP Tests", "12": "Mailbox CRUD Queries", "13": "Dashboard Web UI", "14": "Email Log Persistence", "15": "Mailboxes Web UI Handlers", "16": "Admin Dashboard & Deployment Docs", "17": "TLS Cert & Mailstore Master Key", "18": "Mailbox Rules/Lists/Sessions Queries", "19": "Mailbox App Password Auth", "20": "Mailbox Message Storage Queries", "21": "Sender/Domain/IP Lookup Queries", "22": "SPF Heuristic Tests", "23": "DKIM Key CRUD", "24": "Domain CRUD", "25": "Sender CRUD", "26": "Outbound Relay Delivery", "27": "Mailbox Allow/Block List", "28": "IP Whitelist CRUD", "29": "Config Loading & Settings", "30": "Mailbox Session/WebAuthn Queries", "31": "Toolbox Logger & Utilities", "32": "Mailbox Alias Queries", "33": "DKIM Key Queries", "34": "SMTP Server Listeners", "35": "Auth/Custom Header Models", "36": "Logger Levels", "37": "SMTP Backend & Session", "38": "Relay Email Logging", "39": "Filter Rule Evaluation", "40": "List/Edit Web UI Pages", "41": "Login & MFA Setup Pages", "42": "Webmail Auth Handlers", "43": "Domain DKIM/Sender Counts", "44": "SMTP Management JS", "45": "Login Server Middleware", "46": "Mailstore Quota Status", "47": "DKIM Management JS", "48": "Logs & Message Viewer Pages", "49": "Deployment Scripts", "50": "DKIM Count Query", "51": "Mailbox Alias CRUD File", "52": "Mailbox Message CRUD File", "53": "Mailbox Rules CRUD File", "54": "Web Logs Route", "55": "Mailstore Quota File", "56": "Mailstore Recipient Resolution", "57": "Mailstore Message Storage File", "58": "Account Route", "59": "Embedded Assets", "60": "IP Whitelist Route", "61": "SMTP Logs Route", "62": "Mailbox Aliases Route File", "63": "Mailbox Lists Route File", "64": "Mailbox Rules Route File", "65": "Error Page", "66": "Server Settings Page", "67": "Webmail Account Route File", "68": "Project Root"}
|
||||
+236
-192
@@ -1,248 +1,292 @@
|
||||
# Graph Report - . (2026-08-12)
|
||||
|
||||
## Corpus Check
|
||||
- Corpus is ~39,032 words - fits in a single context window. You may not need a graph.
|
||||
- 130 files · ~65,011 words
|
||||
- Verdict: corpus is large enough that graph structure adds value.
|
||||
|
||||
## Summary
|
||||
- 426 nodes · 861 edges · 39 communities (33 shown, 6 thin omitted)
|
||||
- Extraction: 92% EXTRACTED · 8% INFERRED · 0% AMBIGUOUS · INFERRED: 71 edges (avg confidence: 0.62)
|
||||
- Token cost: 243,577 input · 0 output
|
||||
- 1025 nodes · 2084 edges · 69 communities (57 shown, 12 thin omitted)
|
||||
- Extraction: 79% EXTRACTED · 21% INFERRED · 0% AMBIGUOUS · INFERRED: 434 edges (avg confidence: 0.8)
|
||||
- Token cost: 88,541 input · 0 output
|
||||
|
||||
## Community Hubs (Navigation)
|
||||
- DKIM/SPF DNS Management UI
|
||||
- Web UI Database & Settings Utils
|
||||
- Admin Template Pages
|
||||
- App Bootstrap & Domain Models
|
||||
- DKIM Key Manager
|
||||
- SMTP Custom Protocol & Controllers
|
||||
- Sender/IP Authentication Logic
|
||||
- Models Core & Logging Utils
|
||||
- Email Relay Delivery
|
||||
- Unified App Entry Point
|
||||
- Dashboard & Auth Log Web UI
|
||||
- IP Whitelist Web UI
|
||||
- SMTP Handler Message Processing
|
||||
- Sender Management Web UI
|
||||
- Domain Management Web UI
|
||||
- README Unified: Structure & Deployment
|
||||
- README Unified & Requirements: SMTP/DB Deps
|
||||
- Manual Testing Docs (swaks/CLI)
|
||||
- Settings Loader & TLS Utils
|
||||
- DKIM/Custom Header Models
|
||||
- Combined Authenticators
|
||||
- CLI Usage & IP Whitelisting Docs
|
||||
- Message Viewer Web UI
|
||||
- DKIM/DNS Dependencies
|
||||
- README: License & Auth Features
|
||||
- systemd Install Script
|
||||
- Auth Order Fix Notes
|
||||
- Sender Model
|
||||
- send_email.py Test Script
|
||||
- SMTP Management JS (Frontend)
|
||||
- SMTP Handler Module & Message ID Util
|
||||
- Template Datetime Filter
|
||||
- Dashboard Route
|
||||
- nginx Setup Script
|
||||
- email_server Package Init
|
||||
- DKIM Management JS (Frontend)
|
||||
- Python Env Setup Script
|
||||
- bash_send_email Test Script
|
||||
- Hello.jpg Test Fixture (Doge Meme)
|
||||
- Domain Access Web Requests
|
||||
- Admin User & Session Management
|
||||
- IMAP Fetch/Append Protocol Types
|
||||
- Dashboard & Login Tests
|
||||
- Admin Web UI Add-Forms
|
||||
- Spam/DKIM Verification & Attachments
|
||||
- Mailbox App Passwords & Schema
|
||||
- DKIM Web Routes & Tests
|
||||
- DKIM Key Management
|
||||
- Admin Session Auth Middleware
|
||||
- Webmail Session Auth Middleware
|
||||
- Mailbox Alias SMTP Tests
|
||||
- Mailbox CRUD Queries
|
||||
- Dashboard Web UI
|
||||
- Email Log Persistence
|
||||
- Mailboxes Web UI Handlers
|
||||
- Admin Dashboard & Deployment Docs
|
||||
- TLS Cert & Mailstore Master Key
|
||||
- Mailbox Rules/Lists/Sessions Queries
|
||||
- Mailbox App Password Auth
|
||||
- Mailbox Message Storage Queries
|
||||
- Sender/Domain/IP Lookup Queries
|
||||
- SPF Heuristic Tests
|
||||
- DKIM Key CRUD
|
||||
- Domain CRUD
|
||||
- Sender CRUD
|
||||
- Outbound Relay Delivery
|
||||
- Mailbox Allow/Block List
|
||||
- IP Whitelist CRUD
|
||||
- Config Loading & Settings
|
||||
- Mailbox Session/WebAuthn Queries
|
||||
- Toolbox Logger & Utilities
|
||||
- Mailbox Alias Queries
|
||||
- DKIM Key Queries
|
||||
- SMTP Server Listeners
|
||||
- Auth/Custom Header Models
|
||||
- Logger Levels
|
||||
- SMTP Backend & Session
|
||||
- Relay Email Logging
|
||||
- Filter Rule Evaluation
|
||||
- List/Edit Web UI Pages
|
||||
- Login & MFA Setup Pages
|
||||
- Webmail Auth Handlers
|
||||
- Domain DKIM/Sender Counts
|
||||
- SMTP Management JS
|
||||
- Login Server Middleware
|
||||
- Mailstore Quota Status
|
||||
- DKIM Management JS
|
||||
- Logs & Message Viewer Pages
|
||||
- Deployment Scripts
|
||||
- Error Page
|
||||
- Server Settings Page
|
||||
- Project Root
|
||||
|
||||
## God Nodes (most connected - your core abstractions)
|
||||
1. `DKIMManager` - 34 edges
|
||||
2. `load_settings()` - 22 edges
|
||||
3. `get_logger()` - 21 edges
|
||||
4. `Domain` - 20 edges
|
||||
5. `EmailLog` - 20 edges
|
||||
6. `SMTPServerApp` - 19 edges
|
||||
7. `EmailRelay` - 17 edges
|
||||
8. `Sender` - 17 edges
|
||||
9. `EnhancedCustomSMTPHandler` - 17 edges
|
||||
10. `Base Layout Template` - 17 edges
|
||||
1. `setFlash()` - 66 edges
|
||||
2. `newTestApp()` - 35 edges
|
||||
3. `parseTime()` - 34 edges
|
||||
4. `HashPassword()` - 33 edges
|
||||
5. `Session` - 26 edges
|
||||
6. `DB` - 25 edges
|
||||
7. `startTestServer()` - 23 edges
|
||||
8. `Base Layout Template` - 23 edges
|
||||
9. `requireDomainAccess()` - 22 edges
|
||||
10. `writeJSON()` - 21 edges
|
||||
|
||||
## Surprising Connections (you probably didn't know these)
|
||||
- `PyMTA-server README` --semantically_similar_to--> `SMTP Server with Web Management Frontend README (legacy layout)` [INFERRED] [semantically similar]
|
||||
README.md → README_unified.md
|
||||
- `DKIM Support (auto key gen + signing)` --conceptually_related_to--> `DKIM Key Generation (manual test setup)` [INFERRED]
|
||||
README_unified.md → tests/run_tests_manually.md
|
||||
- `Lorem Ipsum Test Email Body` --semantically_similar_to--> `PDF Test Document (French Lipsum)` [INFERRED] [semantically similar]
|
||||
tests/email_body.txt → tests/pdf_test_1.pdf
|
||||
- `SMTPServerApp` --uses--> `DKIMManager` [INFERRED]
|
||||
app.py → email_server/dkim_manager.py
|
||||
- `SMTPServerApp` --uses--> `AuthLog` [INFERRED]
|
||||
app.py → email_server/models.py
|
||||
- `main()` --calls--> `Load()` [INFERRED]
|
||||
main.go → internal/config/config.go
|
||||
- `main()` --calls--> `AbsoluteSQLitePath()` [INFERRED]
|
||||
main.go → internal/config/config.go
|
||||
- `main()` --calls--> `Open()` [INFERRED]
|
||||
main.go → internal/db/schema.go
|
||||
- `main()` --calls--> `LoadOrCreateMasterKey()` [INFERRED]
|
||||
main.go → internal/mailstore/mailstore.go
|
||||
- `main()` --calls--> `ResolveBanner()` [INFERRED]
|
||||
main.go → internal/smtpserver/server.go
|
||||
|
||||
## Import Cycles
|
||||
- None detected.
|
||||
|
||||
## Hyperedges (group relationships)
|
||||
- **Domain CRUD Flow** — email_server_server_web_ui_templates_add_domain_page, email_server_server_web_ui_templates_domains_page, email_server_server_web_ui_templates_edit_domain_page, email_server_server_web_ui_templates_domains_domain_model [INFERRED 0.80]
|
||||
- **DKIM/SPF DNS Verification Flow** — email_server_server_web_ui_templates_dkim_page, email_server_server_web_ui_templates_edit_dkim_page, email_server_server_web_ui_templates_dkim_dkim_key_model, email_server_server_web_ui_templates_domains_domain_model [INFERRED 0.80]
|
||||
- **Email Log Message Viewer Flow** — email_server_server_web_ui_templates_logs_page, email_server_server_web_ui_templates_view_message_content_page, email_server_server_web_ui_templates_logs_email_log_model, email_server_server_web_ui_templates_view_message_content_attachment_model [INFERRED 0.80]
|
||||
- **SMTP Authentication & IP Whitelist Flow** — tests_note_authentication_order_fix_authentication_order_fix, tests_note_authentication_order_fix_ip_whitelisting_fallback, readme_unified_user_authentication, readme_unified_ip_whitelisting [INFERRED 0.85]
|
||||
- **Manual SMTP Testing Workflow** — tests_general_cli_usage_swaks, tests_run_tests_manually_swaks, tests_email_body_lorem_ipsum, tests_general_cli_usage_send_email_script [INFERRED 0.80]
|
||||
- **DKIM Key Generation & DNS Verification Flow** — readme_unified_dkim_support, readme_unified_dns_configuration, tests_general_cli_usage_dkim_key_management, tests_run_tests_manually_dkim_key_generation [INFERRED 0.85]
|
||||
- **Optional MFA / Second-Factor Setup Flow** — readme_admin_dashboard_login, internal_webui_templates_account_account_settings_page, internal_webui_templates_account_totp_mfa_section, internal_webui_templates_account_passkey_management [INFERRED 0.85]
|
||||
- **Delegated Admin Management CRUD Flow** — internal_webui_templates_admins_manage_admins_page, internal_webui_templates_add_admin_add_admin_page, internal_webui_templates_edit_admin_edit_admin_access_page [INFERRED 0.85]
|
||||
- **Domain DNS / DKIM / SPF Verification Workflow** — internal_webui_templates_dkim_dkim_key_management_page, internal_webui_templates_domains_domain_management_page, internal_webui_templates_add_domain_add_domain_page [INFERRED 0.80]
|
||||
- **IP Whitelist Management Flow** — internal_webui_templates_ips_ips_list_page, internal_webui_templates_edit_ip_edit_ip_whitelist_page, internal_webui_templates_sidebar_email_sidebar_navigation [INFERRED 0.80]
|
||||
- **Multi-Factor Authentication Flow** — internal_webui_templates_login_login_page, internal_webui_templates_login_mfa_login_mfa_page, internal_webui_templates_totp_setup_totp_setup_page [INFERRED 0.80]
|
||||
- **Sender Management Flow** — internal_webui_templates_senders_senders_list_page, internal_webui_templates_edit_sender_edit_sender_page, internal_webui_templates_sidebar_email_sidebar_navigation [INFERRED 0.80]
|
||||
- **Mailbox Management Flow (Aliases, App Passwords, Lists, Rules)** — internal_webui_templates_mailboxes_mailboxes_list_page, internal_webui_templates_edit_mailbox_edit_mailbox_page, internal_webui_templates_mailbox_aliases_aliases_page, internal_webui_templates_mailbox_apppasswords_app_passwords_page, internal_webui_templates_mailbox_lists_allow_block_list_page, internal_webui_templates_mailbox_rules_filter_rules_page [INFERRED 0.85]
|
||||
- **Self-Service Webmail Login-to-Account Flow** — internal_webui_templates_webmail_login_login_page, internal_webui_templates_webmail_login_mfa_mfa_verification_page, internal_webui_templates_webmail_totp_setup_totp_setup_page, internal_webui_templates_webmail_account_account_dashboard_page [INFERRED 0.85]
|
||||
- **Admin Base Layout Template System** — internal_webui_templates_base_base_layout, internal_webui_templates_dashboard_dashboard_page, internal_webui_templates_mailboxes_mailboxes_list_page, internal_webui_templates_add_mailbox_add_mailbox_page, internal_webui_templates_edit_mailbox_edit_mailbox_page, internal_webui_templates_mailbox_aliases_aliases_page, internal_webui_templates_mailbox_apppasswords_app_passwords_page, internal_webui_templates_mailbox_lists_allow_block_list_page, internal_webui_templates_mailbox_rules_filter_rules_page, internal_webui_templates_sidebar_email_sidebar_navigation [INFERRED 0.85]
|
||||
|
||||
## Communities (39 total, 6 thin omitted)
|
||||
## Communities (69 total, 12 thin omitted)
|
||||
|
||||
### Community 0 - "DKIM/SPF DNS Management UI"
|
||||
Cohesion: 0.11
|
||||
Nodes (30): check_dkim_dns(), check_spf_dns(), create_dkim(), dkim_list(), edit_dkim(), route, DKIM blueprint for the SMTP server web UI. This module provides DKIM key…, Regenerate DKIM key for domain. (+22 more)
|
||||
### Community 0 - "Domain Access Web Requests"
|
||||
Cohesion: 0.06
|
||||
Nodes (39): Request, requireDomainAccess(), scopeFromContext(), domainRemovedMessage(), Request, ResponseWriter, App, isValidDomainName() (+31 more)
|
||||
|
||||
### Community 1 - "Web UI Database & Settings Utils"
|
||||
### Community 1 - "Admin User & Session Management"
|
||||
Cohesion: 0.05
|
||||
Nodes (22): AdminSession, AdminUser, WebAuthnCredential, Time, DB, Duration, Row, newSessionToken() (+14 more)
|
||||
|
||||
### Community 2 - "IMAP Fetch/Append Protocol Types"
|
||||
Cohesion: 0.06
|
||||
Nodes (40): AppendData, AppendOptions, CopyData, Envelope, ExpungeWriter, FetchOptions, FetchResponseWriter, FetchWriter (+32 more)
|
||||
|
||||
### Community 3 - "Dashboard & Login Tests"
|
||||
Cohesion: 0.10
|
||||
Nodes (28): import_or_install_driver(), install_package(), Database utilities for the SMTP server., Install a Python package using pip. Args: package_name: Name of the package to…, Import database driver, installing it if necessary. Args: db_type: Type of…, Test if a database connection can be established. Args: url: Database…, test_database_connection(), allowed_file() (+20 more)
|
||||
Nodes (50): HashPassword(), T, TestDashboardShowsMailboxNearQuota(), T, TestLoginRequiresTOTPWhenEnabled(), TestLoginSuccessWithoutMFA(), TestLoginWrongPasswordRejected(), createMailboxFor() (+42 more)
|
||||
|
||||
### Community 2 - "Admin Template Pages"
|
||||
Cohesion: 0.23
|
||||
Nodes (27): Add Domain Page, Add IP Whitelist Page, Add Sender Page, check_health() Service Status Pattern, Base Layout Template, Dashboard Page, DKIM Key Data Model, DKIM Key Management Page (+19 more)
|
||||
### Community 4 - "Admin Web UI Add-Forms"
|
||||
Cohesion: 0.06
|
||||
Nodes (54): Add Admin Page, Add Domain Page, Add IP Whitelist Page, Add Mailbox Form, Add Mailbox Page, Add Sender Page, Manage Admins Page, Base Layout Template (+46 more)
|
||||
|
||||
### Community 3 - "App Bootstrap & Domain Models"
|
||||
Cohesion: 0.15
|
||||
Nodes (15): Initialize the database with sample data for testing, create_tables(), Domain, Check if this IP can send emails for the given domain. Args: domain_name: The…, Create all database tables using ESRV schema., Domain model with enhanced security features., IP whitelist model with domain-specific authentication. Security feature: - IPs…, WhitelistedIP (+7 more)
|
||||
### Community 5 - "Spam/DKIM Verification & Attachments"
|
||||
Cohesion: 0.06
|
||||
Nodes (37): VerifyInbound(), CheckRspamd(), CheckDNSBL(), SpamScore(), attachmentStoragePath(), cleanMessageIDPrefix(), Time, parseMessage() (+29 more)
|
||||
|
||||
### Community 4 - "DKIM Key Manager"
|
||||
### Community 6 - "Mailbox App Passwords & Schema"
|
||||
Cohesion: 0.07
|
||||
Nodes (38): GreetingData, GenerateAppPassword(), DB, DB, migrateAddedColumns(), Open(), Client, T (+30 more)
|
||||
|
||||
### Community 7 - "DKIM Web Routes & Tests"
|
||||
Cohesion: 0.11
|
||||
Nodes (24): Request, ResponseWriter, App, isAjax(), writeJSON(), T, TestIsValidDomainName(), TestVerificationRecordNameAndValue() (+16 more)
|
||||
|
||||
### Community 8 - "DKIM Key Management"
|
||||
Cohesion: 0.07
|
||||
Nodes (29): DNSRecord, Manager, FuncMap, encodeKeyPair(), GenerateSelector(), DB, New(), rawBase64FromPEM() (+21 more)
|
||||
|
||||
### Community 9 - "Admin Session Auth Middleware"
|
||||
Cohesion: 0.11
|
||||
Nodes (22): clearSessionCookie(), ResponseWriter, setSessionCookie(), clearPendingMFACookie(), Request, ResponseWriter, App, isStrongPassword() (+14 more)
|
||||
|
||||
### Community 10 - "Webmail Session Auth Middleware"
|
||||
Cohesion: 0.12
|
||||
Nodes (11): DKIMManager, Get the active DKIM key for a domain (only one active per selector)., Get DKIM private key for a domain., Get DKIM public key DNS record for a domain (active key only)., Sign email content with DKIM. Only add one DKIM header, after all modifications., Manages DKIM keys and email signing., Initialize DKIM keys for existing domains that don't have them., Initialize DKIMManager with a selector. If not provided, use random. (+3 more)
|
||||
Nodes (19): clearMailboxSessionCookie(), ResponseWriter, setMailboxSessionCookie(), clearMailboxPendingMFACookie(), Request, ResponseWriter, App, pendingMailboxMFAID() (+11 more)
|
||||
|
||||
### Community 5 - "SMTP Custom Protocol & Controllers"
|
||||
Cohesion: 0.13
|
||||
Nodes (11): AIOSMTP, Controller, EmailAttachment, Attachment metadata and file path, linked to EmailLog., CustomSMTP, PlainController, Custom SMTP class with configurable banner and secure AUTH handling., Override AUTH command to close connection after failed authentication. (+3 more)
|
||||
|
||||
### Community 6 - "Sender/IP Authentication Logic"
|
||||
Cohesion: 0.14
|
||||
Nodes (15): get_authenticated_domain_id(), Enhanced authentication modules for the SMTP server using ESRV schema. Security…, Check if IP can authenticate for a specific domain. Args: ip_address: Client IP…, Validate if the authenticated entity can send as the specified from address.…, Get the domain ID for the authenticated entity. Args: session: SMTP session…, validate_sender_authorization(), check_password(), get_domain_by_name() (+7 more)
|
||||
|
||||
### Community 7 - "Models Core & Logging Utils"
|
||||
### Community 11 - "Mailbox Alias SMTP Tests"
|
||||
Cohesion: 0.16
|
||||
Nodes (13): Email relay functionality for the SMTP server., EmailRecipientLog, log_email(), Database models for the SMTP server using ESRV schema. Enhanced security…, Log for each recipient of an email, including status and error details., Log an email send attempt. Args: from_address: Sender email to_address:…, ensure_folder_exists(), get_logger() (+5 more)
|
||||
Nodes (30): createAlias(), Backend, T, TestLocalDeliveryToAliasLandsInOwningMailbox(), TestMailboxAppPasswordCannotSendAsReceiveOnlyAlias(), TestMailboxAppPasswordCanSendAsEnabledAlias(), TestMailboxAppPasswordCanSendAsPrimaryButNotArbitraryAddress(), Backend (+22 more)
|
||||
|
||||
### Community 8 - "Email Relay Delivery"
|
||||
### Community 12 - "Mailbox CRUD Queries"
|
||||
Cohesion: 0.11
|
||||
Nodes (6): Mailbox, MailboxWithDomain, DB, Row, scanMailbox(), Store
|
||||
|
||||
### Community 13 - "Dashboard Web UI"
|
||||
Cohesion: 0.16
|
||||
Nodes (13): authLogDomain(), emailDomain(), emailOrBareDomain(), Request, ResponseWriter, App, Request, ResponseWriter (+5 more)
|
||||
|
||||
### Community 14 - "Email Log Persistence"
|
||||
Cohesion: 0.15
|
||||
Nodes (9): EmailRelay, Relay email to recipients' mail servers asynchronously with encryption.…, Handles relaying emails to recipient mail servers., Synchronous wrapper for relay_email_async for compatibility., Modify email headers to set To and Cc fields, preserving original structure for…, Log email activity to database, including per-recipient results., Prepare a copy of the email for a specific recipient without modifying original…, EmailLog (+1 more)
|
||||
Nodes (8): EmailAttachment, EmailLog, EmailRecipientLog, DB, Row, scanEmailLog(), DB, App
|
||||
|
||||
### Community 9 - "Unified App Entry Point"
|
||||
Cohesion: 0.18
|
||||
Nodes (8): main(), Start the SMTP server in async context, Run the unified application, Check the health of all services, Unified SMTP Server and Web Frontend Application, Convert relative database URL to absolute path for Flask-SQLAlchemy, Create and configure the Flask application, SMTPServerApp
|
||||
### Community 15 - "Mailboxes Web UI Handlers"
|
||||
Cohesion: 0.29
|
||||
Nodes (5): Request, ResponseWriter, App, parseQuotaGB(), localPartOf()
|
||||
|
||||
### Community 10 - "Dashboard & Auth Log Web UI"
|
||||
### Community 16 - "Admin Dashboard & Deployment Docs"
|
||||
Cohesion: 0.13
|
||||
Nodes (16): Account Settings Page, Passkey / WebAuthn Management, TOTP MFA Section, Admin Dashboard Login, LICENSE, mailgoserver (Go Binary), nginx Reverse Proxy Setup, pymta-smtp.service (+8 more)
|
||||
|
||||
### Community 17 - "TLS Cert & Mailstore Master Key"
|
||||
Cohesion: 0.16
|
||||
Nodes (12): CreateOptions, LoadOrCreateMasterKey(), CreateSSLContext(), GenerateSelfSignedCert(), Config, EnsureFolderExists(), GetLogger(), absPath() (+4 more)
|
||||
|
||||
### Community 18 - "Mailbox Rules/Lists/Sessions Queries"
|
||||
Cohesion: 0.19
|
||||
Nodes (9): AuthLog, Authentication log model for security auditing., Dashboard routes for the SMTP server web UI. This module provides the main…, SMTP Server Web UI Package This package provides a web interface for managing…, logs(), route, Logs blueprint for the SMTP server web UI. This module provides email and…, Display email and authentication logs. (+1 more)
|
||||
Nodes (7): MailboxAllowBlockEntry, MailboxAppPassword, MailboxFilterRule, MailboxSession, MailboxWebAuthnCredential, DB, Time
|
||||
|
||||
### Community 11 - "IP Whitelist Web UI"
|
||||
Cohesion: 0.20
|
||||
Nodes (13): add_ip(), disable_ip(), edit_ip(), enable_ip(), ips_list(), route, IP Whitelist blueprint for the SMTP server web UI. This module provides IP…, Enable whitelisted IP. (+5 more)
|
||||
|
||||
### Community 12 - "SMTP Handler Message Processing"
|
||||
### Community 19 - "Mailbox App Password Auth"
|
||||
Cohesion: 0.18
|
||||
Nodes (8): EnhancedCustomSMTPHandler, Ensure all required email headers are present and properly formatted., Handle incoming email data with improved header management and logging., Handle RCPT TO command - validate recipients., Handle MAIL FROM command with enhanced sender validation. Security Features: -…, Generate the storage path for attachments based on sender domain,…, Get the correct content type for a file, trying multiple methods., Enhanced custom SMTP handler with security controls.
|
||||
Nodes (4): DB, CheckPassword(), Server, Session
|
||||
|
||||
### Community 13 - "Sender Management Web UI"
|
||||
Cohesion: 0.24
|
||||
Nodes (12): hash_password(), Hash a password using bcrypt., add_sender(), delete_sender(), edit_sender(), enable_sender(), route, Senders blueprint for the SMTP server web UI. This module provides sender… (+4 more)
|
||||
### Community 20 - "Mailbox Message Storage Queries"
|
||||
Cohesion: 0.21
|
||||
Nodes (5): MailboxMessage, DB, Time, Time, parseTime()
|
||||
|
||||
### Community 14 - "Domain Management Web UI"
|
||||
Cohesion: 0.24
|
||||
Nodes (11): add_domain(), delete_domain(), domains_list(), edit_domain(), route, Domains blueprint for the SMTP server web UI. This module provides domain…, Toggle domain active status (Enable/Disable)., Permanently remove domain and all associated data. (+3 more)
|
||||
|
||||
### Community 15 - "README Unified: Structure & Deployment"
|
||||
Cohesion: 0.17
|
||||
Nodes (12): REST API Endpoints (/health, /api/server/status, /api/server/restart), SMTP Server with Web Management Frontend README (legacy layout), Domain Management, Email Relay (forward to external servers), Project Structure (app.py, main.py, email_server/, email_frontend/), Nginx Reverse Proxy, settings.ini Configuration File, Systemd Service (production deployment) (+4 more)
|
||||
|
||||
### Community 16 - "README Unified & Requirements: SMTP/DB Deps"
|
||||
Cohesion: 0.20
|
||||
Nodes (12): SQLite Database Schema (domains, users, whitelisted_ips, dkim_keys, email_logs, auth_logs, custom_headers), Full SMTP Server (send/receive with auth), aiosmtpd (dependency), aiosmtplib (dependency), Unified Requirements File, Flask-SQLAlchemy (dependency), Jinja2 (dependency), python-dotenv (dependency) (+4 more)
|
||||
|
||||
### Community 17 - "Manual Testing Docs (swaks/CLI)"
|
||||
Cohesion: 0.18
|
||||
Nodes (11): Lorem Ipsum Test Email Body, tests/send_email.py script, swaks (SMTP test CLI tool), PDF Test Document (French Lipsum), Beach Pebbles Photo (embedded image), Check DB Logs (sqlite3 email_logs query), DKIM Key Generation (manual test setup), Manual Test Setup Instructions (+3 more)
|
||||
|
||||
### Community 18 - "Settings Loader & TLS Utils"
|
||||
Cohesion: 0.31
|
||||
Nodes (8): ConfigParser, generate_settings_ini(), load_settings(), Settings loader for the SMTP server. Automatically generates settings.ini with…, Generate settings.ini with default values and comments if it does not exist., Load settings from settings.ini, generating it if needed., TLS utilities for the SMTP server., Path
|
||||
|
||||
### Community 19 - "DKIM/Custom Header Models"
|
||||
Cohesion: 0.25
|
||||
Nodes (6): Base, DKIM key management and email signing functionality., CustomHeader, DKIMKey, DKIM key model for email signing., Custom header model for domain-specific email headers.
|
||||
|
||||
### Community 20 - "Combined Authenticators"
|
||||
Cohesion: 0.33
|
||||
Nodes (6): EnhancedAuthenticator, EnhancedIPAuthenticator, Enhanced username/password authenticator with sender validation. Features: -…, Enhanced IP-based authenticator with domain-specific authorization. Features: -…, EnhancedCombinedAuthenticator, Enhanced combined authenticator with sender validation support. Features: -…
|
||||
|
||||
### Community 21 - "CLI Usage & IP Whitelisting Docs"
|
||||
### Community 21 - "Sender/Domain/IP Lookup Queries"
|
||||
Cohesion: 0.22
|
||||
Nodes (9): Sender IP Whitelisting, IP Whitelisting (auth-free sending), Direct sqlite3 DB Access/Queries, CLI/Web Usage Guide (tests), Domain Management (web UI: /email/domains), IP Whitelist Management (web UI: /email/ips), User Management (web UI: /email/users), Web Interface Setup Workflow (dev/prod) (+1 more)
|
||||
Nodes (6): Domain, DB, WhitelistedIP, Row, WhitelistedIP, scanDomain()
|
||||
|
||||
### Community 22 - "Message Viewer Web UI"
|
||||
Cohesion: 0.38
|
||||
Nodes (6): delete_attachment(), download_attachment(), route, Route to view full email message content if stored., View the full message content for an email log if stored., view_message_content()
|
||||
### Community 22 - "SPF Heuristic Tests"
|
||||
Cohesion: 0.31
|
||||
Nodes (11): T, TestEvalSPF(), TestSpamScoreArithmetic(), CheckSPF(), domainOf(), evalSPF(), lookupSPFRecord(), matchA() (+3 more)
|
||||
|
||||
### Community 23 - "DKIM/DNS Dependencies"
|
||||
### Community 23 - "DKIM Key CRUD"
|
||||
Cohesion: 0.23
|
||||
Nodes (3): DKIMKeyWithDomain, DB, scanDKIMKeysWithDomain()
|
||||
|
||||
### Community 25 - "Sender CRUD"
|
||||
Cohesion: 0.18
|
||||
Nodes (3): Sender, SenderWithDomain, DB
|
||||
|
||||
### Community 26 - "Outbound Relay Delivery"
|
||||
Cohesion: 0.29
|
||||
Nodes (7): DKIM (planned feature), DKIM Support (auto key gen + signing), DNS Configuration (DKIM/SPF/MX records), cryptography (dependency), dkimpy (dependency), dnspython (dependency), DKIM Key Management (web UI: /email/dkim)
|
||||
Nodes (8): domainOf(), DB, Duration, File, Relay, New(), prepareEmailForRecipient(), Result
|
||||
|
||||
### Community 24 - "README: License & Auth Features"
|
||||
Cohesion: 0.29
|
||||
Nodes (7): PyMTA-server README, AGPL-3.0 License, SPF DNS Records (delivery success), Optional Storing of Sent Emails, MIT License, Username/Password Authentication, gunicorn (dependency)
|
||||
### Community 27 - "Mailbox Allow/Block List"
|
||||
Cohesion: 0.24
|
||||
Nodes (4): DB, matchesAllowBlock(), domainPart(), equalFold()
|
||||
|
||||
### Community 25 - "systemd Install Script"
|
||||
Cohesion: 0.52
|
||||
Nodes (6): remove_system_services(), remove_user_services(), script_install_service.sh script, usage(), write_system_services(), write_user_services()
|
||||
### Community 28 - "IP Whitelist CRUD"
|
||||
Cohesion: 0.20
|
||||
Nodes (3): WhitelistedIPWithDomain, DB, WhitelistedIP
|
||||
|
||||
### Community 26 - "Auth Order Fix Notes"
|
||||
### Community 29 - "Config Loading & Settings"
|
||||
Cohesion: 0.27
|
||||
Nodes (8): defaultKV, AbsoluteSQLitePath(), GenerateSettingsIni(), File, Load(), T, TestAbsoluteSQLitePath(), TestGenerateAndLoadRoundTrip()
|
||||
|
||||
### Community 30 - "Mailbox Session/WebAuthn Queries"
|
||||
Cohesion: 0.20
|
||||
Nodes (3): DB, Duration, newMailboxSessionToken()
|
||||
|
||||
### Community 31 - "Toolbox Logger & Utilities"
|
||||
Cohesion: 0.31
|
||||
Nodes (7): Configure(), GenerateMessageID(), GetCurrentTime(), File, Time, parseLevel(), Level
|
||||
|
||||
### Community 33 - "DKIM Key Queries"
|
||||
Cohesion: 0.43
|
||||
Nodes (4): DKIMKey, DB, Row, scanDKIMKey()
|
||||
|
||||
### Community 34 - "SMTP Server Listeners"
|
||||
Cohesion: 0.32
|
||||
Nodes (7): Backend, Config, File, Server, NewPlainServer(), NewTLSServer(), ResolveBanner()
|
||||
|
||||
### Community 35 - "Auth/Custom Header Models"
|
||||
Cohesion: 0.43
|
||||
Nodes (4): AuthLog, CustomHeader, WhitelistedIP, Time
|
||||
|
||||
### Community 37 - "SMTP Backend & Session"
|
||||
Cohesion: 0.33
|
||||
Nodes (6): Per-user/per-domain User Authentication, bcrypt (dependency), AuthResult / email_server/auth.py __call__ (code snippet), AUTH Advertised on Both Plain SMTP and TLS Ports, SMTP Authentication Order Fix (June 2025), STARTTLS Not Advertised (direct TLS only)
|
||||
Nodes (4): Backend, DB, Session, Store
|
||||
|
||||
### Community 27 - "Sender Model"
|
||||
### Community 38 - "Relay Email Logging"
|
||||
Cohesion: 0.33
|
||||
Nodes (4): File, Relay, overallStatus(), peerIP
|
||||
|
||||
### Community 39 - "Filter Rule Evaluation"
|
||||
Cohesion: 0.50
|
||||
Nodes (3): Store, matchCondition(), FilterAction
|
||||
|
||||
### Community 40 - "List/Edit Web UI Pages"
|
||||
Cohesion: 0.50
|
||||
Nodes (5): Edit IP Whitelist Entry Page, Edit Sender Page, Client-side IP Detection (ifconfig.me), Whitelisted IPs List Page, Senders List Page
|
||||
|
||||
### Community 41 - "Login & MFA Setup Pages"
|
||||
Cohesion: 0.40
|
||||
Nodes (3): Sender model with enhanced authentication controls. Security features: -…, Check if this sender can send emails as the given from_address. Args:…, Sender
|
||||
Nodes (5): First Login / Set Up Account Page, Login Page, Login MFA Verification Page, Passkey/WebAuthn Login Flow, TOTP Authenticator Setup Page
|
||||
|
||||
### Community 28 - "send_email.py Test Script"
|
||||
Cohesion: 0.40
|
||||
Nodes (4): Send a test email using plain SMTP., Send a test email using STARTTLS., send_test_email(), send_test_email_tls()
|
||||
### Community 42 - "Webmail Auth Handlers"
|
||||
Cohesion: 0.50
|
||||
Nodes (3): Handler, Request, App
|
||||
|
||||
### Community 29 - "SMTP Management JS (Frontend)"
|
||||
### Community 44 - "SMTP Management JS"
|
||||
Cohesion: 0.50
|
||||
Nodes (3): DNSVerification, FormValidation, SMTPManagement
|
||||
|
||||
### Community 30 - "SMTP Handler Module & Message ID Util"
|
||||
Cohesion: 0.50
|
||||
Nodes (3): Enhanced SMTP handler for processing incoming emails with security controls.…, generate_message_id(), Generate a consistent Message-ID for both email headers and database storage.…
|
||||
|
||||
### Community 31 - "Template Datetime Filter"
|
||||
Cohesion: 0.67
|
||||
Nodes (3): app_template_filter, format_datetime(), Format datetime with the correct timezone from settings or argument.
|
||||
|
||||
### Community 32 - "Dashboard Route"
|
||||
Cohesion: 0.67
|
||||
Nodes (3): dashboard(), route, Main dashboard showing overview of the email server.
|
||||
|
||||
## Ambiguous Edges - Review These
|
||||
- `Edit Domain Page` → `Sidebar Navigation Partial` [AMBIGUOUS]
|
||||
email_server/server_web_ui/templates/edit_domain.html · relation: references
|
||||
- `AGPL-3.0 License` → `MIT License` [AMBIGUOUS]
|
||||
README.md · relation: conceptually_related_to
|
||||
|
||||
## Knowledge Gaps
|
||||
- **36 isolated node(s):** `DKIMManagement`, `SMTPManagement`, `DNSVerification`, `FormValidation`, `script_nginx_setup.sh script` (+31 more)
|
||||
- **47 isolated node(s):** `mailgoserver`, `defaultKV`, `WhitelistedIP`, `Store`, `Store` (+42 more)
|
||||
These have ≤1 connection - possible missing edges or undocumented components.
|
||||
- **6 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes.
|
||||
- **12 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes.
|
||||
|
||||
## Suggested Questions
|
||||
_Questions this graph is uniquely positioned to answer:_
|
||||
|
||||
- **What is the exact relationship between `Edit Domain Page` and `Sidebar Navigation Partial`?**
|
||||
_Edge tagged AMBIGUOUS (relation: references) - confidence is low._
|
||||
- **What is the exact relationship between `AGPL-3.0 License` and `MIT License`?**
|
||||
_Edge tagged AMBIGUOUS (relation: conceptually_related_to) - confidence is low._
|
||||
- **Why does `DKIMManager` connect `DKIM Key Manager` to `DKIM/SPF DNS Management UI`, `App Bootstrap & Domain Models`, `SMTP Custom Protocol & Controllers`, `Unified App Entry Point`, `SMTP Handler Message Processing`, `Domain Management Web UI`, `DKIM/Custom Header Models`, `Combined Authenticators`, `SMTP Handler Module & Message ID Util`?**
|
||||
_High betweenness centrality (0.098) - this node is a cross-community bridge._
|
||||
- **Why does `load_settings()` connect `Settings Loader & TLS Utils` to `DKIM/SPF DNS Management UI`, `Web UI Database & Settings Utils`, `App Bootstrap & Domain Models`, `Models Core & Logging Utils`, `Unified App Entry Point`, `Dashboard & Auth Log Web UI`, `DKIM/Custom Header Models`, `SMTP Handler Module & Message ID Util`, `Template Datetime Filter`?**
|
||||
_High betweenness centrality (0.041) - this node is a cross-community bridge._
|
||||
- **Why does `EmailRelay` connect `Email Relay Delivery` to `SMTP Custom Protocol & Controllers`, `Models Core & Logging Utils`, `SMTP Handler Message Processing`, `Combined Authenticators`, `SMTP Handler Module & Message ID Util`?**
|
||||
_High betweenness centrality (0.036) - this node is a cross-community bridge._
|
||||
- **Are the 9 inferred relationships involving `DKIMManager` (e.g. with `SMTPServerApp` and `CustomHeader`) actually correct?**
|
||||
_`DKIMManager` has 9 INFERRED edges - model-reasoned connections that need verification._
|
||||
- **Are the 4 inferred relationships involving `Domain` (e.g. with `SMTPServerApp` and `EnhancedAuthenticator`) actually correct?**
|
||||
_`Domain` has 4 INFERRED edges - model-reasoned connections that need verification._
|
||||
- **Why does `HashPassword()` connect `Dashboard & Login Tests` to `Domain Access Web Requests`, `Admin User & Session Management`, `Mailbox App Passwords & Schema`, `Admin Session Auth Middleware`, `Mailbox Alias SMTP Tests`, `Mailboxes Web UI Handlers`, `Mailbox Allow/Block List`?**
|
||||
_High betweenness centrality (0.224) - this node is a cross-community bridge._
|
||||
- **Why does `parseTime()` connect `Mailbox Message Storage Queries` to `Mailbox Alias Queries`, `Admin User & Session Management`, `DKIM Key Queries`, `Auth/Custom Header Models`, `Mailbox CRUD Queries`, `Email Log Persistence`, `Mailbox Rules/Lists/Sessions Queries`, `Mailbox App Password Auth`, `Sender/Domain/IP Lookup Queries`, `DKIM Key CRUD`, `Domain CRUD`, `Sender CRUD`, `Mailbox Allow/Block List`, `IP Whitelist CRUD`?**
|
||||
_High betweenness centrality (0.186) - this node is a cross-community bridge._
|
||||
- **Why does `Mailbox` connect `Mailbox CRUD Queries` to `Domain Access Web Requests`, `IMAP Fetch/Append Protocol Types`, `Dashboard & Login Tests`, `Spam/DKIM Verification & Attachments`, `Webmail Auth Handlers`, `Webmail Session Auth Middleware`, `Mailboxes Web UI Handlers`, `Mailbox Rules/Lists/Sessions Queries`, `Mailbox App Password Auth`?**
|
||||
_High betweenness centrality (0.151) - this node is a cross-community bridge._
|
||||
- **Are the 64 inferred relationships involving `setFlash()` (e.g. with `.addAdmin()` and `.addAlias()`) actually correct?**
|
||||
_`setFlash()` has 64 INFERRED edges - model-reasoned connections that need verification._
|
||||
- **Are the 29 inferred relationships involving `newTestApp()` (e.g. with `TestDashboardShowsMailboxNearQuota()` and `TestLoginRequiresTOTPWhenEnabled()`) actually correct?**
|
||||
_`newTestApp()` has 29 INFERRED edges - model-reasoned connections that need verification._
|
||||
- **Are the 29 inferred relationships involving `parseTime()` (e.g. with `.GetAliasByEmail()` and `.GetAttachmentByID()`) actually correct?**
|
||||
_`parseTime()` has 29 INFERRED edges - model-reasoned connections that need verification._
|
||||
- **Are the 32 inferred relationships involving `HashPassword()` (e.g. with `.SeedDefaultAdminIfEmpty()` and `newTestMailboxWithAppPassword()`) actually correct?**
|
||||
_`HashPassword()` has 32 INFERRED edges - model-reasoned connections that need verification._
|
||||
graphify-out/cache/ast/v0.9.37/050d80a980bb289fc8e91b0ee0d010e63e1e3f3b5fd7fa55e58041fb92bde5fd.json
Vendored
+1
File diff suppressed because one or more lines are too long
graphify-out/cache/ast/v0.9.37/0cd461683e7363e7b403ecd1b6e07cbb8315b968020f988303126edbe05ed28a.json
Vendored
+1
File diff suppressed because one or more lines are too long
graphify-out/cache/ast/v0.9.37/0d189f48daef410cb344484b89a09d41920ce3baa7a5702be8e33d5a31cfd666.json
Vendored
+1
File diff suppressed because one or more lines are too long
graphify-out/cache/ast/v0.9.37/12ce6520ba2b76040ebaf5334835ceb563eb3f81adeda7b0eeef51189adf1879.json
Vendored
+1
File diff suppressed because one or more lines are too long
graphify-out/cache/ast/v0.9.37/17b08781f0843ebb8192d17fb3ac8350fe96c5524e609de4af3c05f0d8fa6dc2.json
Vendored
+1
File diff suppressed because one or more lines are too long
graphify-out/cache/ast/v0.9.37/1868e36f57586975abfe605813ff45b0daa59143a8e9abfa9f39b098e54ab79d.json
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "$graphify-root$_internal_webui_flash_go", "label": "flash.go", "file_type": "code", "source_file": "internal/webui/flash.go", "source_location": "L1"}, {"id": "webui_flash", "label": "Flash", "file_type": "code", "source_file": "internal/webui/flash.go", "source_location": "L10"}, {"id": "$graphify-root$_internal_webui_flash_setflash", "label": "setFlash()", "file_type": "code", "source_file": "internal/webui/flash.go", "source_location": "L20"}, {"id": "responsewriter", "label": "ResponseWriter", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/internal/webui/flash.go"}, {"id": "$graphify-root$_internal_webui_flash_popflashes", "label": "popFlashes()", "file_type": "code", "source_file": "internal/webui/flash.go", "source_location": "L34"}, {"id": "request", "label": "Request", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/internal/webui/flash.go"}], "edges": [{"source": "$graphify-root$_internal_webui_flash_go", "target": "go_pkg_encoding_base64", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "internal/webui/flash.go", "source_location": "L4", "weight": 1.0, "context": "import"}, {"source": "$graphify-root$_internal_webui_flash_go", "target": "go_pkg_encoding_json", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "internal/webui/flash.go", "source_location": "L5", "weight": 1.0, "context": "import"}, {"source": "$graphify-root$_internal_webui_flash_go", "target": "go_pkg_net_http", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "internal/webui/flash.go", "source_location": "L6", "weight": 1.0, "context": "import"}, {"source": "$graphify-root$_internal_webui_flash_go", "target": "webui_flash", "relation": "contains", "confidence": "EXTRACTED", "source_file": "internal/webui/flash.go", "source_location": "L10", "weight": 1.0}, {"source": "$graphify-root$_internal_webui_flash_go", "target": "$graphify-root$_internal_webui_flash_setflash", "relation": "contains", "confidence": "EXTRACTED", "source_file": "internal/webui/flash.go", "source_location": "L20", "weight": 1.0}, {"source": "$graphify-root$_internal_webui_flash_setflash", "target": "responsewriter", "relation": "references", "confidence": "EXTRACTED", "source_file": "internal/webui/flash.go", "source_location": "L20", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_internal_webui_flash_go", "target": "$graphify-root$_internal_webui_flash_popflashes", "relation": "contains", "confidence": "EXTRACTED", "source_file": "internal/webui/flash.go", "source_location": "L34", "weight": 1.0}, {"source": "$graphify-root$_internal_webui_flash_popflashes", "target": "responsewriter", "relation": "references", "confidence": "EXTRACTED", "source_file": "internal/webui/flash.go", "source_location": "L34", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_internal_webui_flash_popflashes", "target": "request", "relation": "references", "confidence": "EXTRACTED", "source_file": "internal/webui/flash.go", "source_location": "L34", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_internal_webui_flash_popflashes", "target": "webui_flash", "relation": "references", "confidence": "EXTRACTED", "source_file": "internal/webui/flash.go", "source_location": "L34", "weight": 1.0, "context": "return_type"}], "raw_calls": [{"caller_nid": "$graphify-root$_internal_webui_flash_setflash", "callee": "Marshal", "is_member_call": false, "language": "go", "source_file": "internal/webui/flash.go", "source_location": "L22"}, {"caller_nid": "$graphify-root$_internal_webui_flash_setflash", "callee": "SetCookie", "is_member_call": false, "language": "go", "source_file": "internal/webui/flash.go", "source_location": "L23"}, {"caller_nid": "$graphify-root$_internal_webui_flash_setflash", "callee": "EncodeToString", "is_member_call": true, "language": "go", "source_file": "internal/webui/flash.go", "source_location": "L25"}, {"caller_nid": "$graphify-root$_internal_webui_flash_popflashes", "callee": "Cookie", "is_member_call": true, "language": "go", "source_file": "internal/webui/flash.go", "source_location": "L35"}, {"caller_nid": "$graphify-root$_internal_webui_flash_popflashes", "callee": "SetCookie", "is_member_call": false, "language": "go", "source_file": "internal/webui/flash.go", "source_location": "L39"}, {"caller_nid": "$graphify-root$_internal_webui_flash_popflashes", "callee": "DecodeString", "is_member_call": true, "language": "go", "source_file": "internal/webui/flash.go", "source_location": "L40"}, {"caller_nid": "$graphify-root$_internal_webui_flash_popflashes", "callee": "Unmarshal", "is_member_call": false, "language": "go", "source_file": "internal/webui/flash.go", "source_location": "L45"}]}
|
||||
graphify-out/cache/ast/v0.9.37/1888c93328a9c977b67209c5257fb20bc313521ac21e99666fc6e5a0ab9ce2b1.json
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "$graphify-root$_internal_mailstore_spam_go", "label": "spam.go", "file_type": "code", "source_file": "internal/mailstore/spam.go", "source_location": "L1"}, {"id": "$graphify-root$_internal_mailstore_spam_spamscore", "label": "SpamScore()", "file_type": "code", "source_file": "internal/mailstore/spam.go", "source_location": "L17"}, {"id": "$graphify-root$_internal_mailstore_spam_checkdnsbl", "label": "CheckDNSBL()", "file_type": "code", "source_file": "internal/mailstore/spam.go", "source_location": "L41"}], "edges": [{"source": "$graphify-root$_internal_mailstore_spam_go", "target": "go_pkg_context", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "internal/mailstore/spam.go", "source_location": "L4", "weight": 1.0, "context": "import"}, {"source": "$graphify-root$_internal_mailstore_spam_go", "target": "go_pkg_net", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "internal/mailstore/spam.go", "source_location": "L5", "weight": 1.0, "context": "import"}, {"source": "$graphify-root$_internal_mailstore_spam_go", "target": "go_pkg_strings", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "internal/mailstore/spam.go", "source_location": "L6", "weight": 1.0, "context": "import"}, {"source": "$graphify-root$_internal_mailstore_spam_go", "target": "$graphify-root$_internal_mailstore_spam_spamscore", "relation": "contains", "confidence": "EXTRACTED", "source_file": "internal/mailstore/spam.go", "source_location": "L17", "weight": 1.0}, {"source": "$graphify-root$_internal_mailstore_spam_go", "target": "$graphify-root$_internal_mailstore_spam_checkdnsbl", "relation": "contains", "confidence": "EXTRACTED", "source_file": "internal/mailstore/spam.go", "source_location": "L41", "weight": 1.0}, {"source": "$graphify-root$_internal_mailstore_spam_spamscore", "target": "$graphify-root$_internal_mailstore_spam_checkdnsbl", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "internal/mailstore/spam.go", "source_location": "L25", "weight": 1.0}], "raw_calls": [{"caller_nid": "$graphify-root$_internal_mailstore_spam_spamscore", "callee": "ToLower", "is_member_call": false, "language": "go", "source_file": "internal/mailstore/spam.go", "source_location": "L28"}, {"caller_nid": "$graphify-root$_internal_mailstore_spam_spamscore", "callee": "Contains", "is_member_call": false, "language": "go", "source_file": "internal/mailstore/spam.go", "source_location": "L30"}, {"caller_nid": "$graphify-root$_internal_mailstore_spam_checkdnsbl", "callee": "ParseIP", "is_member_call": false, "language": "go", "source_file": "internal/mailstore/spam.go", "source_location": "L42"}, {"caller_nid": "$graphify-root$_internal_mailstore_spam_checkdnsbl", "callee": "To4", "is_member_call": true, "language": "go", "source_file": "internal/mailstore/spam.go", "source_location": "L43"}, {"caller_nid": "$graphify-root$_internal_mailstore_spam_checkdnsbl", "callee": "Split", "is_member_call": false, "language": "go", "source_file": "internal/mailstore/spam.go", "source_location": "L46"}, {"caller_nid": "$graphify-root$_internal_mailstore_spam_checkdnsbl", "callee": "To4", "is_member_call": true, "language": "go", "source_file": "internal/mailstore/spam.go", "source_location": "L46"}, {"caller_nid": "$graphify-root$_internal_mailstore_spam_checkdnsbl", "callee": "LookupHost", "is_member_call": true, "language": "go", "source_file": "internal/mailstore/spam.go", "source_location": "L48"}, {"caller_nid": "$graphify-root$_internal_mailstore_spam_checkdnsbl", "callee": "Background", "is_member_call": false, "language": "go", "source_file": "internal/mailstore/spam.go", "source_location": "L48"}, {"caller_nid": "$graphify-root$_internal_mailstore_spam_checkdnsbl", "callee": "ParseIP", "is_member_call": false, "language": "go", "source_file": "internal/mailstore/spam.go", "source_location": "L53"}, {"caller_nid": "$graphify-root$_internal_mailstore_spam_checkdnsbl", "callee": "To4", "is_member_call": true, "language": "go", "source_file": "internal/mailstore/spam.go", "source_location": "L53"}, {"caller_nid": "$graphify-root$_internal_mailstore_spam_checkdnsbl", "callee": "To4", "is_member_call": true, "language": "go", "source_file": "internal/mailstore/spam.go", "source_location": "L53"}]}
|
||||
graphify-out/cache/ast/v0.9.37/19fb668e3560b38c2030fa43c1756b931eba2cd7f54de32dd06a49dc5127a79a.json
Vendored
+1
File diff suppressed because one or more lines are too long
graphify-out/cache/ast/v0.9.37/1e48c5c6251da225f5aa5ce997e8b901d480714d8a551158ca780a5c3f2f2918.json
Vendored
+1
File diff suppressed because one or more lines are too long
graphify-out/cache/ast/v0.9.37/2044826dfae2591e7dbfbbbfb4aa7089a8c3ce86d119ae9659fa8c857c8334b9.json
Vendored
+1
File diff suppressed because one or more lines are too long
graphify-out/cache/ast/v0.9.37/22b75ca78e1e210a59e1f5d39c7c576b2ec245e9b3c4c65ea4692573338da048.json
Vendored
+1
File diff suppressed because one or more lines are too long
graphify-out/cache/ast/v0.9.37/2883e2efafdba11d0add50919c7b94f6e311d8f0f9fc36142b26f3f4ce01f6c6.json
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "$graphify-root$_internal_db_crud_mailbox_rules_go", "label": "crud_mailbox_rules.go", "file_type": "code", "source_file": "internal/db/crud_mailbox_rules.go", "source_location": "L1"}, {"id": "db_db", "label": "DB", "file_type": "code", "source_file": "internal/db/crud_mailbox_rules.go", "source_location": "L3"}, {"id": "db_db_listrulesformailbox", "label": ".ListRulesForMailbox()", "file_type": "code", "source_file": "internal/db/crud_mailbox_rules.go", "source_location": "L3"}, {"id": "mailboxfilterrule", "label": "MailboxFilterRule", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/internal/db/crud_mailbox_rules.go"}, {"id": "db_db_createrule", "label": ".CreateRule()", "file_type": "code", "source_file": "internal/db/crud_mailbox_rules.go", "source_location": "L23"}, {"id": "db_db_removerule", "label": ".RemoveRule()", "file_type": "code", "source_file": "internal/db/crud_mailbox_rules.go", "source_location": "L33"}], "edges": [{"source": "db_db", "target": "db_db_listrulesformailbox", "relation": "method", "confidence": "EXTRACTED", "source_file": "internal/db/crud_mailbox_rules.go", "source_location": "L3", "weight": 1.0}, {"source": "db_db_listrulesformailbox", "target": "mailboxfilterrule", "relation": "references", "confidence": "EXTRACTED", "source_file": "internal/db/crud_mailbox_rules.go", "source_location": "L3", "weight": 1.0, "context": "return_type"}, {"source": "db_db", "target": "db_db_createrule", "relation": "method", "confidence": "EXTRACTED", "source_file": "internal/db/crud_mailbox_rules.go", "source_location": "L23", "weight": 1.0}, {"source": "db_db", "target": "db_db_removerule", "relation": "method", "confidence": "EXTRACTED", "source_file": "internal/db/crud_mailbox_rules.go", "source_location": "L33", "weight": 1.0}], "raw_calls": [{"caller_nid": "db_db_listrulesformailbox", "callee": "Query", "is_member_call": true, "language": "go", "source_file": "internal/db/crud_mailbox_rules.go", "source_location": "L4"}, {"caller_nid": "db_db_listrulesformailbox", "callee": "Close", "is_member_call": true, "language": "go", "source_file": "internal/db/crud_mailbox_rules.go", "source_location": "L9"}, {"caller_nid": "db_db_listrulesformailbox", "callee": "Next", "is_member_call": true, "language": "go", "source_file": "internal/db/crud_mailbox_rules.go", "source_location": "L11"}, {"caller_nid": "db_db_listrulesformailbox", "callee": "Scan", "is_member_call": true, "language": "go", "source_file": "internal/db/crud_mailbox_rules.go", "source_location": "L14"}, {"caller_nid": "db_db_listrulesformailbox", "callee": "parseTime", "is_member_call": false, "language": "go", "source_file": "internal/db/crud_mailbox_rules.go", "source_location": "L17"}, {"caller_nid": "db_db_listrulesformailbox", "callee": "Err", "is_member_call": true, "language": "go", "source_file": "internal/db/crud_mailbox_rules.go", "source_location": "L20"}, {"caller_nid": "db_db_createrule", "callee": "Exec", "is_member_call": true, "language": "go", "source_file": "internal/db/crud_mailbox_rules.go", "source_location": "L24"}, {"caller_nid": "db_db_createrule", "callee": "LastInsertId", "is_member_call": true, "language": "go", "source_file": "internal/db/crud_mailbox_rules.go", "source_location": "L29"}, {"caller_nid": "db_db_removerule", "callee": "Exec", "is_member_call": true, "language": "go", "source_file": "internal/db/crud_mailbox_rules.go", "source_location": "L34"}]}
|
||||
graphify-out/cache/ast/v0.9.37/29f8ee2225dc20d0e9f0e2b74632de5774b5dca2ee2d75abd6c435a3aebc4ef7.json
Vendored
+1
File diff suppressed because one or more lines are too long
graphify-out/cache/ast/v0.9.37/2e9d25d3c3f931b9fac9962e0fd6ec8c0a816d3ea404da71e1836da7e201fe11.json
Vendored
+1
File diff suppressed because one or more lines are too long
graphify-out/cache/ast/v0.9.37/2f64cb77dc241dd132960aba3db522dda2dde3790c0d91d9116fd9f791ad3ecb.json
Vendored
+1
File diff suppressed because one or more lines are too long
graphify-out/cache/ast/v0.9.37/3222882160a72b2d07b3ed675365e2c4c0a52489837881fd7cc779d84e7d09e5.json
Vendored
+1
File diff suppressed because one or more lines are too long
graphify-out/cache/ast/v0.9.37/332e111582035a6e5f0af316d9a93ad4e9f6de5c8f9cd5dd5334aee9f2247b22.json
Vendored
+1
File diff suppressed because one or more lines are too long
graphify-out/cache/ast/v0.9.37/36122a5bfad7d9d3015d679ea309a1ad1049e7800d85261b80139f59b1d8fc41.json
Vendored
+1
File diff suppressed because one or more lines are too long
graphify-out/cache/ast/v0.9.37/36c32c92657ee2bf62998ff24d6d4af59747c32ace3a473fe945e111f80f8cd1.json
Vendored
+1
File diff suppressed because one or more lines are too long
graphify-out/cache/ast/v0.9.37/392dcf38a5dbaf014f492191e0608fff024db02d0b39cb6b402786b7439a9923.json
Vendored
+1
File diff suppressed because one or more lines are too long
graphify-out/cache/ast/v0.9.37/3a9edf6815c8511542b307eb3c946e29aa5c0f34cc382315ee64440d2db29697.json
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "$graphify-root$_internal_db_schema_go", "label": "schema.go", "file_type": "code", "source_file": "internal/db/schema.go", "source_location": "L1"}, {"id": "$graphify-root$_internal_db_schema_migrateaddedcolumns", "label": "migrateAddedColumns()", "file_type": "code", "source_file": "internal/db/schema.go", "source_location": "L277"}, {"id": "db", "label": "DB", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/internal/db/schema.go"}, {"id": "db_db", "label": "DB", "file_type": "code", "source_file": "internal/db/schema.go", "source_location": "L294"}, {"id": "$graphify-root$_internal_db_schema_open", "label": "Open()", "file_type": "code", "source_file": "internal/db/schema.go", "source_location": "L299"}], "edges": [{"source": "$graphify-root$_internal_db_schema_go", "target": "go_pkg_database_sql", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "internal/db/schema.go", "source_location": "L7", "weight": 1.0, "context": "import"}, {"source": "$graphify-root$_internal_db_schema_go", "target": "go_pkg_fmt", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "internal/db/schema.go", "source_location": "L8", "weight": 1.0, "context": "import"}, {"source": "$graphify-root$_internal_db_schema_go", "target": "go_pkg_modernc_org_sqlite", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "internal/db/schema.go", "source_location": "L10", "weight": 1.0, "context": "import"}, {"source": "$graphify-root$_internal_db_schema_go", "target": "$graphify-root$_internal_db_schema_migrateaddedcolumns", "relation": "contains", "confidence": "EXTRACTED", "source_file": "internal/db/schema.go", "source_location": "L277", "weight": 1.0}, {"source": "$graphify-root$_internal_db_schema_migrateaddedcolumns", "target": "db", "relation": "references", "confidence": "EXTRACTED", "source_file": "internal/db/schema.go", "source_location": "L277", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_internal_db_schema_go", "target": "db_db", "relation": "contains", "confidence": "EXTRACTED", "source_file": "internal/db/schema.go", "source_location": "L294", "weight": 1.0}, {"source": "$graphify-root$_internal_db_schema_go", "target": "$graphify-root$_internal_db_schema_open", "relation": "contains", "confidence": "EXTRACTED", "source_file": "internal/db/schema.go", "source_location": "L299", "weight": 1.0}, {"source": "$graphify-root$_internal_db_schema_open", "target": "db_db", "relation": "references", "confidence": "EXTRACTED", "source_file": "internal/db/schema.go", "source_location": "L299", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_internal_db_schema_open", "target": "$graphify-root$_internal_db_schema_migrateaddedcolumns", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "internal/db/schema.go", "source_location": "L320", "weight": 1.0}], "raw_calls": [{"caller_nid": "$graphify-root$_internal_db_schema_migrateaddedcolumns", "callee": "Exec", "is_member_call": true, "language": "go", "source_file": "internal/db/schema.go", "source_location": "L289"}, {"caller_nid": "$graphify-root$_internal_db_schema_open", "callee": "Open", "is_member_call": false, "language": "go", "source_file": "internal/db/schema.go", "source_location": "L300"}, {"caller_nid": "$graphify-root$_internal_db_schema_open", "callee": "Errorf", "is_member_call": false, "language": "go", "source_file": "internal/db/schema.go", "source_location": "L302"}, {"caller_nid": "$graphify-root$_internal_db_schema_open", "callee": "SetMaxOpenConns", "is_member_call": true, "language": "go", "source_file": "internal/db/schema.go", "source_location": "L311"}, {"caller_nid": "$graphify-root$_internal_db_schema_open", "callee": "Exec", "is_member_call": true, "language": "go", "source_file": "internal/db/schema.go", "source_location": "L312"}, {"caller_nid": "$graphify-root$_internal_db_schema_open", "callee": "Close", "is_member_call": true, "language": "go", "source_file": "internal/db/schema.go", "source_location": "L313"}, {"caller_nid": "$graphify-root$_internal_db_schema_open", "callee": "Errorf", "is_member_call": false, "language": "go", "source_file": "internal/db/schema.go", "source_location": "L314"}, {"caller_nid": "$graphify-root$_internal_db_schema_open", "callee": "Exec", "is_member_call": true, "language": "go", "source_file": "internal/db/schema.go", "source_location": "L316"}, {"caller_nid": "$graphify-root$_internal_db_schema_open", "callee": "Close", "is_member_call": true, "language": "go", "source_file": "internal/db/schema.go", "source_location": "L317"}, {"caller_nid": "$graphify-root$_internal_db_schema_open", "callee": "Errorf", "is_member_call": false, "language": "go", "source_file": "internal/db/schema.go", "source_location": "L318"}]}
|
||||
graphify-out/cache/ast/v0.9.37/3d58be3c0958842557ddaec9004fe6aea27ebf118369153b81a6da93f5815aad.json
Vendored
+1
File diff suppressed because one or more lines are too long
graphify-out/cache/ast/v0.9.37/3f39773267ab41be810d98da0c0bcad7bdaaa6a9f8d4a78b227db4c449f68f8c.json
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "$graphify-root$_internal_mailstore_quota_go", "label": "quota.go", "file_type": "code", "source_file": "internal/mailstore/quota.go", "source_location": "L1"}, {"id": "mailstore_store", "label": "Store", "file_type": "code", "source_file": "internal/mailstore/quota.go", "source_location": "L7"}, {"id": "mailstore_store_quotastatus", "label": ".QuotaStatus()", "file_type": "code", "source_file": "internal/mailstore/quota.go", "source_location": "L7"}], "edges": [{"source": "$graphify-root$_internal_mailstore_quota_go", "target": "go_pkg_fmt", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "internal/mailstore/quota.go", "source_location": "L3", "weight": 1.0, "context": "import"}, {"source": "mailstore_store", "target": "mailstore_store_quotastatus", "relation": "method", "confidence": "EXTRACTED", "source_file": "internal/mailstore/quota.go", "source_location": "L7", "weight": 1.0}], "raw_calls": [{"caller_nid": "mailstore_store_quotastatus", "callee": "GetMailboxByID", "is_member_call": true, "language": "go", "source_file": "internal/mailstore/quota.go", "source_location": "L8"}, {"caller_nid": "mailstore_store_quotastatus", "callee": "Errorf", "is_member_call": false, "language": "go", "source_file": "internal/mailstore/quota.go", "source_location": "L13"}, {"caller_nid": "mailstore_store_quotastatus", "callee": "float64", "is_member_call": false, "language": "go", "source_file": "internal/mailstore/quota.go", "source_location": "L18"}, {"caller_nid": "mailstore_store_quotastatus", "callee": "float64", "is_member_call": false, "language": "go", "source_file": "internal/mailstore/quota.go", "source_location": "L18"}]}
|
||||
graphify-out/cache/ast/v0.9.37/402604782dc46e57132fd50ed3d955adade6d94cf6508a729e1b197a56087e85.json
Vendored
+1
File diff suppressed because one or more lines are too long
graphify-out/cache/ast/v0.9.37/441b0dd967936e553278f4663c1d57ae95d425961ebe4b53e0afdd5c5186ec4c.json
Vendored
+1
File diff suppressed because one or more lines are too long
graphify-out/cache/ast/v0.9.37/4b6a1793f720a8adb6473cfb3179da41c022a104d703570a5f40f5c77df57f3e.json
Vendored
+1
File diff suppressed because one or more lines are too long
graphify-out/cache/ast/v0.9.37/4bcbc65ce9b957ee8d6b51d759aa2be1b96c02b2c43c4e46dcbcfce94390c110.json
Vendored
+1
File diff suppressed because one or more lines are too long
graphify-out/cache/ast/v0.9.37/4d8b1d5adb32c35aff701d2c5bb29cf7cbd464f4392547a5d5e70acca4de2211.json
Vendored
+1
File diff suppressed because one or more lines are too long
graphify-out/cache/ast/v0.9.37/4dd092e4e9fcaa8f81122da7e5849ce0afa9dfd219ca79351040fd9d5c05b5a4.json
Vendored
+1
File diff suppressed because one or more lines are too long
graphify-out/cache/ast/v0.9.37/4e10f00b4a8fc541fe983551eaa6cecf339c2f0acda99c6e8d6eb4b528d9e746.json
Vendored
+1
File diff suppressed because one or more lines are too long
graphify-out/cache/ast/v0.9.37/52848735e8daba654292f276e7a2a9229dc7a94a1e668e53a8419630758069e3.json
Vendored
+1
File diff suppressed because one or more lines are too long
graphify-out/cache/ast/v0.9.37/53ea2cb4e837670d91075eee79cadfe367da49be674d3d754d1fa1277e82af43.json
Vendored
+1
File diff suppressed because one or more lines are too long
graphify-out/cache/ast/v0.9.37/54269cac6577c8b2fc8fb6ba8e59668cf2db364aebd92d357ee11176e4b7652d.json
Vendored
+1
File diff suppressed because one or more lines are too long
graphify-out/cache/ast/v0.9.37/5717cb182789416abc3910e9bf0f429009a6ea9064de88589691e34c3bf7a1dd.json
Vendored
+1
File diff suppressed because one or more lines are too long
graphify-out/cache/ast/v0.9.37/5744c38d02b63583d196e25d9169591a118f8f6b296b24ac3da38b4fd7ad7de4.json
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "$graphify-root$_internal_mailstore_resolve_go", "label": "resolve.go", "file_type": "code", "source_file": "internal/mailstore/resolve.go", "source_location": "L1"}, {"id": "mailstore_store", "label": "Store", "file_type": "code", "source_file": "internal/mailstore/resolve.go", "source_location": "L7"}, {"id": "mailstore_store_resolverecipient", "label": ".ResolveRecipient()", "file_type": "code", "source_file": "internal/mailstore/resolve.go", "source_location": "L7"}, {"id": "mailbox", "label": "Mailbox", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/internal/mailstore/resolve.go"}], "edges": [{"source": "$graphify-root$_internal_mailstore_resolve_go", "target": "go_pkg_mailgoserver_internal_db", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "internal/mailstore/resolve.go", "source_location": "L3", "weight": 1.0, "context": "import"}, {"source": "mailstore_store", "target": "mailstore_store_resolverecipient", "relation": "method", "confidence": "EXTRACTED", "source_file": "internal/mailstore/resolve.go", "source_location": "L7", "weight": 1.0}, {"source": "mailstore_store_resolverecipient", "target": "mailbox", "relation": "references", "confidence": "EXTRACTED", "source_file": "internal/mailstore/resolve.go", "source_location": "L7", "weight": 1.0, "context": "return_type"}], "raw_calls": [{"caller_nid": "mailstore_store_resolverecipient", "callee": "GetMailboxByEmail", "is_member_call": true, "language": "go", "source_file": "internal/mailstore/resolve.go", "source_location": "L8"}, {"caller_nid": "mailstore_store_resolverecipient", "callee": "GetAliasByEmail", "is_member_call": true, "language": "go", "source_file": "internal/mailstore/resolve.go", "source_location": "L12"}, {"caller_nid": "mailstore_store_resolverecipient", "callee": "GetMailboxByID", "is_member_call": true, "language": "go", "source_file": "internal/mailstore/resolve.go", "source_location": "L16"}]}
|
||||
graphify-out/cache/ast/v0.9.37/5cdc821ba173151352186e4b935411c261fd9d02e42029056bf46ceeb8b4ec67.json
Vendored
+1
File diff suppressed because one or more lines are too long
graphify-out/cache/ast/v0.9.37/6000cba6905c8bf49aead218753c6615bb364cb49919b66f0ce330bfa0a61a5a.json
Vendored
+1
File diff suppressed because one or more lines are too long
graphify-out/cache/ast/v0.9.37/60c63023780925c131fdae03e5315af72ce437ff7ae370bce9f1bc22197fc438.json
Vendored
+1
File diff suppressed because one or more lines are too long
graphify-out/cache/ast/v0.9.37/62f2636400cdbc594f0a63747de5c033af6d2750cf6fbc6a30ae3ce0e44f9661.json
Vendored
+1
File diff suppressed because one or more lines are too long
graphify-out/cache/ast/v0.9.37/634d00a80189d7322c4e508314914e4d597122f31b1caa0ddb7528cc785ff749.json
Vendored
+1
File diff suppressed because one or more lines are too long
graphify-out/cache/ast/v0.9.37/6905e64b15bd127fde1fa65d773bab87bede63935e94914f0f2554ba3d3e9851.json
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "$graphify-root$_internal_webui_embed_go", "label": "embed.go", "file_type": "code", "source_file": "internal/webui/embed.go", "source_location": "L1"}], "edges": [{"source": "$graphify-root$_internal_webui_embed_go", "target": "go_pkg_embed", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "internal/webui/embed.go", "source_location": "L3", "weight": 1.0, "context": "import"}], "raw_calls": []}
|
||||
graphify-out/cache/ast/v0.9.37/69ba6718d84dc87cdf220cb937bfcc62e21618ab5b2de48094d0b05502d11610.json
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "$graphify-root$_internal_db_admin_models_go", "label": "admin_models.go", "file_type": "code", "source_file": "internal/db/admin_models.go", "source_location": "L1"}, {"id": "db_adminuser", "label": "AdminUser", "file_type": "code", "source_file": "internal/db/admin_models.go", "source_location": "L5"}, {"id": "time", "label": "Time", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/internal/db/admin_models.go"}, {"id": "db_adminsession", "label": "AdminSession", "file_type": "code", "source_file": "internal/db/admin_models.go", "source_location": "L17"}, {"id": "db_webauthncredential", "label": "WebAuthnCredential", "file_type": "code", "source_file": "internal/db/admin_models.go", "source_location": "L25"}], "edges": [{"source": "$graphify-root$_internal_db_admin_models_go", "target": "go_pkg_time", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "internal/db/admin_models.go", "source_location": "L3", "weight": 1.0, "context": "import"}, {"source": "$graphify-root$_internal_db_admin_models_go", "target": "db_adminuser", "relation": "contains", "confidence": "EXTRACTED", "source_file": "internal/db/admin_models.go", "source_location": "L5", "weight": 1.0}, {"source": "db_adminuser", "target": "time", "relation": "references", "confidence": "EXTRACTED", "source_file": "internal/db/admin_models.go", "source_location": "L14", "weight": 1.0, "context": "field"}, {"source": "$graphify-root$_internal_db_admin_models_go", "target": "db_adminsession", "relation": "contains", "confidence": "EXTRACTED", "source_file": "internal/db/admin_models.go", "source_location": "L17", "weight": 1.0}, {"source": "db_adminsession", "target": "time", "relation": "references", "confidence": "EXTRACTED", "source_file": "internal/db/admin_models.go", "source_location": "L21", "weight": 1.0, "context": "field"}, {"source": "db_adminsession", "target": "time", "relation": "references", "confidence": "EXTRACTED", "source_file": "internal/db/admin_models.go", "source_location": "L22", "weight": 1.0, "context": "field"}, {"source": "$graphify-root$_internal_db_admin_models_go", "target": "db_webauthncredential", "relation": "contains", "confidence": "EXTRACTED", "source_file": "internal/db/admin_models.go", "source_location": "L25", "weight": 1.0}, {"source": "db_webauthncredential", "target": "time", "relation": "references", "confidence": "EXTRACTED", "source_file": "internal/db/admin_models.go", "source_location": "L31", "weight": 1.0, "context": "field"}], "raw_calls": []}
|
||||
graphify-out/cache/ast/v0.9.37/6c8a5870b2b52f84afde19b473f3e5bdd8a5678c736e409e94a191670551f95b.json
Vendored
+1
File diff suppressed because one or more lines are too long
graphify-out/cache/ast/v0.9.37/6ce3a5f958468a3e0895157011ec734735a106aad10a10d0cbbaf155109892f6.json
Vendored
+1
File diff suppressed because one or more lines are too long
graphify-out/cache/ast/v0.9.37/6e25823e7da177379c3f94897a314ac3c92f9a9d6c09d04fb4ca0a8d35ee851d.json
Vendored
+1
File diff suppressed because one or more lines are too long
graphify-out/cache/ast/v0.9.37/744dbb8836ef1bc18c44b3c08aa9d351c2dc168cf1a7d41ef08fedf0a87fb527.json
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "$graphify-root$_internal_mailstore_rspamd_go", "label": "rspamd.go", "file_type": "code", "source_file": "internal/mailstore/rspamd.go", "source_location": "L1"}, {"id": "$graphify-root$_internal_mailstore_rspamd_checkrspamd", "label": "CheckRspamd()", "file_type": "code", "source_file": "internal/mailstore/rspamd.go", "source_location": "L13"}], "edges": [{"source": "$graphify-root$_internal_mailstore_rspamd_go", "target": "go_pkg_bytes", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "internal/mailstore/rspamd.go", "source_location": "L4", "weight": 1.0, "context": "import"}, {"source": "$graphify-root$_internal_mailstore_rspamd_go", "target": "go_pkg_encoding_json", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "internal/mailstore/rspamd.go", "source_location": "L5", "weight": 1.0, "context": "import"}, {"source": "$graphify-root$_internal_mailstore_rspamd_go", "target": "go_pkg_net_http", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "internal/mailstore/rspamd.go", "source_location": "L6", "weight": 1.0, "context": "import"}, {"source": "$graphify-root$_internal_mailstore_rspamd_go", "target": "go_pkg_time", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "internal/mailstore/rspamd.go", "source_location": "L7", "weight": 1.0, "context": "import"}, {"source": "$graphify-root$_internal_mailstore_rspamd_go", "target": "$graphify-root$_internal_mailstore_rspamd_checkrspamd", "relation": "contains", "confidence": "EXTRACTED", "source_file": "internal/mailstore/rspamd.go", "source_location": "L13", "weight": 1.0}], "raw_calls": [{"caller_nid": "$graphify-root$_internal_mailstore_rspamd_checkrspamd", "callee": "NewRequest", "is_member_call": false, "language": "go", "source_file": "internal/mailstore/rspamd.go", "source_location": "L14"}, {"caller_nid": "$graphify-root$_internal_mailstore_rspamd_checkrspamd", "callee": "NewReader", "is_member_call": false, "language": "go", "source_file": "internal/mailstore/rspamd.go", "source_location": "L14"}, {"caller_nid": "$graphify-root$_internal_mailstore_rspamd_checkrspamd", "callee": "Do", "is_member_call": true, "language": "go", "source_file": "internal/mailstore/rspamd.go", "source_location": "L21"}, {"caller_nid": "$graphify-root$_internal_mailstore_rspamd_checkrspamd", "callee": "Close", "is_member_call": true, "language": "go", "source_file": "internal/mailstore/rspamd.go", "source_location": "L25"}, {"caller_nid": "$graphify-root$_internal_mailstore_rspamd_checkrspamd", "callee": "Decode", "is_member_call": true, "language": "go", "source_file": "internal/mailstore/rspamd.go", "source_location": "L31"}, {"caller_nid": "$graphify-root$_internal_mailstore_rspamd_checkrspamd", "callee": "NewDecoder", "is_member_call": false, "language": "go", "source_file": "internal/mailstore/rspamd.go", "source_location": "L31"}]}
|
||||
graphify-out/cache/ast/v0.9.37/74cc54fcd799845c94bf4a73996ea2337b580e28bcfdbf8360674791d0453e09.json
Vendored
+1
File diff suppressed because one or more lines are too long
graphify-out/cache/ast/v0.9.37/76f676739c9344e65c1143ec25da92402bb345d305e5f3071113fc02d25835cc.json
Vendored
+1
File diff suppressed because one or more lines are too long
graphify-out/cache/ast/v0.9.37/7900f645b1e0829ce15c64ef21c3d1c612d11d3f0c5bfcb598b281615b2aee00.json
Vendored
+1
File diff suppressed because one or more lines are too long
graphify-out/cache/ast/v0.9.37/797f92642fc9acf05bef462905283f20e90b03829f47b61621e8df6ae542da8c.json
Vendored
+1
File diff suppressed because one or more lines are too long
graphify-out/cache/ast/v0.9.37/79c19f36db6de3ffdbf7689578e8d9c82aba7f4d9833aed0729e3b02f492b478.json
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "$graphify-root$_internal_db_schema_go", "label": "schema.go", "file_type": "code", "source_file": "internal/db/schema.go", "source_location": "L1"}, {"id": "$graphify-root$_internal_db_schema_migrateaddedcolumns", "label": "migrateAddedColumns()", "file_type": "code", "source_file": "internal/db/schema.go", "source_location": "L160"}, {"id": "db", "label": "DB", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/internal/db/schema.go"}, {"id": "db_db", "label": "DB", "file_type": "code", "source_file": "internal/db/schema.go", "source_location": "L174"}, {"id": "$graphify-root$_internal_db_schema_open", "label": "Open()", "file_type": "code", "source_file": "internal/db/schema.go", "source_location": "L179"}], "edges": [{"source": "$graphify-root$_internal_db_schema_go", "target": "go_pkg_database_sql", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "internal/db/schema.go", "source_location": "L7", "weight": 1.0, "context": "import"}, {"source": "$graphify-root$_internal_db_schema_go", "target": "go_pkg_fmt", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "internal/db/schema.go", "source_location": "L8", "weight": 1.0, "context": "import"}, {"source": "$graphify-root$_internal_db_schema_go", "target": "go_pkg_modernc_org_sqlite", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "internal/db/schema.go", "source_location": "L10", "weight": 1.0, "context": "import"}, {"source": "$graphify-root$_internal_db_schema_go", "target": "$graphify-root$_internal_db_schema_migrateaddedcolumns", "relation": "contains", "confidence": "EXTRACTED", "source_file": "internal/db/schema.go", "source_location": "L160", "weight": 1.0}, {"source": "$graphify-root$_internal_db_schema_migrateaddedcolumns", "target": "db", "relation": "references", "confidence": "EXTRACTED", "source_file": "internal/db/schema.go", "source_location": "L160", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_internal_db_schema_go", "target": "db_db", "relation": "contains", "confidence": "EXTRACTED", "source_file": "internal/db/schema.go", "source_location": "L174", "weight": 1.0}, {"source": "$graphify-root$_internal_db_schema_go", "target": "$graphify-root$_internal_db_schema_open", "relation": "contains", "confidence": "EXTRACTED", "source_file": "internal/db/schema.go", "source_location": "L179", "weight": 1.0}, {"source": "$graphify-root$_internal_db_schema_open", "target": "db_db", "relation": "references", "confidence": "EXTRACTED", "source_file": "internal/db/schema.go", "source_location": "L179", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_internal_db_schema_open", "target": "$graphify-root$_internal_db_schema_migrateaddedcolumns", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "internal/db/schema.go", "source_location": "L188", "weight": 1.0}], "raw_calls": [{"caller_nid": "$graphify-root$_internal_db_schema_migrateaddedcolumns", "callee": "Exec", "is_member_call": true, "language": "go", "source_file": "internal/db/schema.go", "source_location": "L169"}, {"caller_nid": "$graphify-root$_internal_db_schema_open", "callee": "Open", "is_member_call": false, "language": "go", "source_file": "internal/db/schema.go", "source_location": "L180"}, {"caller_nid": "$graphify-root$_internal_db_schema_open", "callee": "Errorf", "is_member_call": false, "language": "go", "source_file": "internal/db/schema.go", "source_location": "L182"}, {"caller_nid": "$graphify-root$_internal_db_schema_open", "callee": "Exec", "is_member_call": true, "language": "go", "source_file": "internal/db/schema.go", "source_location": "L184"}, {"caller_nid": "$graphify-root$_internal_db_schema_open", "callee": "Close", "is_member_call": true, "language": "go", "source_file": "internal/db/schema.go", "source_location": "L185"}, {"caller_nid": "$graphify-root$_internal_db_schema_open", "callee": "Errorf", "is_member_call": false, "language": "go", "source_file": "internal/db/schema.go", "source_location": "L186"}]}
|
||||
graphify-out/cache/ast/v0.9.37/7e7886d65a6ed1a0649a47a0cc4e2d3af7267a095a8e963dcfe81d5d6aada706.json
Vendored
+1
File diff suppressed because one or more lines are too long
graphify-out/cache/ast/v0.9.37/7f2ce048d99e09757dc40f133ad4d0dce85fd259cc4c90fb18ac008c385f46a8.json
Vendored
+1
File diff suppressed because one or more lines are too long
graphify-out/cache/ast/v0.9.37/8074335e501ae829f997dbeea8652d7f976c5f0362bafc95c60da1720aa313c4.json
Vendored
+1
File diff suppressed because one or more lines are too long
graphify-out/cache/ast/v0.9.37/818668cfed023f7b4057ce9a2596afeeeca2c22e1e4578b2805c67e865f38864.json
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "$graphify-root$_internal_db_logs_go", "label": "logs.go", "file_type": "code", "source_file": "internal/db/logs.go", "source_location": "L1"}, {"id": "db_db", "label": "DB", "file_type": "code", "source_file": "internal/db/logs.go", "source_location": "L7"}, {"id": "db_db_insertemaillog", "label": ".InsertEmailLog()", "file_type": "code", "source_file": "internal/db/logs.go", "source_location": "L7"}, {"id": "emaillog", "label": "EmailLog", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/internal/db/logs.go"}, {"id": "db_db_insertemailrecipientlog", "label": ".InsertEmailRecipientLog()", "file_type": "code", "source_file": "internal/db/logs.go", "source_location": "L19"}, {"id": "emailrecipientlog", "label": "EmailRecipientLog", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/internal/db/logs.go"}, {"id": "db_db_insertemailattachment", "label": ".InsertEmailAttachment()", "file_type": "code", "source_file": "internal/db/logs.go", "source_location": "L28"}, {"id": "emailattachment", "label": "EmailAttachment", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/internal/db/logs.go"}], "edges": [{"source": "$graphify-root$_internal_db_logs_go", "target": "go_pkg_time", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "internal/db/logs.go", "source_location": "L3", "weight": 1.0, "context": "import"}, {"source": "db_db", "target": "db_db_insertemaillog", "relation": "method", "confidence": "EXTRACTED", "source_file": "internal/db/logs.go", "source_location": "L7", "weight": 1.0}, {"source": "db_db_insertemaillog", "target": "emaillog", "relation": "references", "confidence": "EXTRACTED", "source_file": "internal/db/logs.go", "source_location": "L7", "weight": 1.0, "context": "parameter_type"}, {"source": "db_db", "target": "db_db_insertemailrecipientlog", "relation": "method", "confidence": "EXTRACTED", "source_file": "internal/db/logs.go", "source_location": "L19", "weight": 1.0}, {"source": "db_db_insertemailrecipientlog", "target": "emailrecipientlog", "relation": "references", "confidence": "EXTRACTED", "source_file": "internal/db/logs.go", "source_location": "L19", "weight": 1.0, "context": "parameter_type"}, {"source": "db_db", "target": "db_db_insertemailattachment", "relation": "method", "confidence": "EXTRACTED", "source_file": "internal/db/logs.go", "source_location": "L28", "weight": 1.0}, {"source": "db_db_insertemailattachment", "target": "emailattachment", "relation": "references", "confidence": "EXTRACTED", "source_file": "internal/db/logs.go", "source_location": "L28", "weight": 1.0, "context": "parameter_type"}], "raw_calls": [{"caller_nid": "db_db_insertemaillog", "callee": "Exec", "is_member_call": true, "language": "go", "source_file": "internal/db/logs.go", "source_location": "L8"}, {"caller_nid": "db_db_insertemaillog", "callee": "LastInsertId", "is_member_call": true, "language": "go", "source_file": "internal/db/logs.go", "source_location": "L15"}, {"caller_nid": "db_db_insertemailrecipientlog", "callee": "Exec", "is_member_call": true, "language": "go", "source_file": "internal/db/logs.go", "source_location": "L20"}, {"caller_nid": "db_db_insertemailattachment", "callee": "Exec", "is_member_call": true, "language": "go", "source_file": "internal/db/logs.go", "source_location": "L29"}, {"caller_nid": "db_db_insertemailattachment", "callee": "Now", "is_member_call": false, "language": "go", "source_file": "internal/db/logs.go", "source_location": "L32"}]}
|
||||
graphify-out/cache/ast/v0.9.37/833f7ac4c4d8b4a011054888b9b38011661f3fee84eedc255043786277348e63.json
Vendored
+1
File diff suppressed because one or more lines are too long
graphify-out/cache/ast/v0.9.37/850eef2eac0f49568e30bb147ae784d7d65a3303523847e1add22f77e952c433.json
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "$graphify-root$_internal_mailstore_rules_go", "label": "rules.go", "file_type": "code", "source_file": "internal/mailstore/rules.go", "source_location": "L1"}, {"id": "mailstore_filteraction", "label": "FilterAction", "file_type": "code", "source_file": "internal/mailstore/rules.go", "source_location": "L7"}, {"id": "mailstore_store", "label": "Store", "file_type": "code", "source_file": "internal/mailstore/rules.go", "source_location": "L18"}, {"id": "mailstore_store_applyrules", "label": ".ApplyRules()", "file_type": "code", "source_file": "internal/mailstore/rules.go", "source_location": "L18"}, {"id": "$graphify-root$_internal_mailstore_rules_matchcondition", "label": "matchCondition()", "file_type": "code", "source_file": "internal/mailstore/rules.go", "source_location": "L42"}], "edges": [{"source": "$graphify-root$_internal_mailstore_rules_go", "target": "go_pkg_strings", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "internal/mailstore/rules.go", "source_location": "L3", "weight": 1.0, "context": "import"}, {"source": "$graphify-root$_internal_mailstore_rules_go", "target": "mailstore_filteraction", "relation": "contains", "confidence": "EXTRACTED", "source_file": "internal/mailstore/rules.go", "source_location": "L7", "weight": 1.0}, {"source": "mailstore_store", "target": "mailstore_store_applyrules", "relation": "method", "confidence": "EXTRACTED", "source_file": "internal/mailstore/rules.go", "source_location": "L18", "weight": 1.0}, {"source": "mailstore_store_applyrules", "target": "mailstore_filteraction", "relation": "references", "confidence": "EXTRACTED", "source_file": "internal/mailstore/rules.go", "source_location": "L18", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_internal_mailstore_rules_go", "target": "$graphify-root$_internal_mailstore_rules_matchcondition", "relation": "contains", "confidence": "EXTRACTED", "source_file": "internal/mailstore/rules.go", "source_location": "L42", "weight": 1.0}, {"source": "mailstore_store_applyrules", "target": "$graphify-root$_internal_mailstore_rules_matchcondition", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "internal/mailstore/rules.go", "source_location": "L27", "weight": 1.0}], "raw_calls": [{"caller_nid": "mailstore_store_applyrules", "callee": "ListRulesForMailbox", "is_member_call": true, "language": "go", "source_file": "internal/mailstore/rules.go", "source_location": "L19"}, {"caller_nid": "$graphify-root$_internal_mailstore_rules_matchcondition", "callee": "ToLower", "is_member_call": false, "language": "go", "source_file": "internal/mailstore/rules.go", "source_location": "L43"}, {"caller_nid": "$graphify-root$_internal_mailstore_rules_matchcondition", "callee": "ToLower", "is_member_call": false, "language": "go", "source_file": "internal/mailstore/rules.go", "source_location": "L44"}, {"caller_nid": "$graphify-root$_internal_mailstore_rules_matchcondition", "callee": "Contains", "is_member_call": false, "language": "go", "source_file": "internal/mailstore/rules.go", "source_location": "L47"}, {"caller_nid": "$graphify-root$_internal_mailstore_rules_matchcondition", "callee": "HasPrefix", "is_member_call": false, "language": "go", "source_file": "internal/mailstore/rules.go", "source_location": "L51"}]}
|
||||
graphify-out/cache/ast/v0.9.37/8c1136abb3e7fdbe1913400f64c1c4e340f1b1bb830378d9bdd65f2796dbc2ca.json
Vendored
+1
File diff suppressed because one or more lines are too long
graphify-out/cache/ast/v0.9.37/8db85dca7d40603f925ab4723a58b747f2fe243e888f5336a7826aa413e70f70.json
Vendored
+1
File diff suppressed because one or more lines are too long
graphify-out/cache/ast/v0.9.37/8f3788b309f22725312f4dd10209eedf7110e5c5cbfda5600629c2797b705e54.json
Vendored
+1
File diff suppressed because one or more lines are too long
graphify-out/cache/ast/v0.9.37/8f8eb4ff3c9924c436bb844a410eff023bd60cb82be85e51f14b20d960c49f83.json
Vendored
+1
File diff suppressed because one or more lines are too long
graphify-out/cache/ast/v0.9.37/91354afe4ec8e124e9efacf2609f58a1c58b2408ab2cbc032d57d482c84e4eb5.json
Vendored
+1
File diff suppressed because one or more lines are too long
graphify-out/cache/ast/v0.9.37/94000485e902ff79b072729775cd9721aafad08b548c9a9b2bf2e585cdc24d19.json
Vendored
+1
File diff suppressed because one or more lines are too long
graphify-out/cache/ast/v0.9.37/942a1a5b5378938b334c9092b4e00c4beb36b65ba6d4580ad501002da0d9102e.json
Vendored
+1
File diff suppressed because one or more lines are too long
graphify-out/cache/ast/v0.9.37/9474aef8e1355915c7ec48416a95f9282c5a5f91097fa7354005f7c79d339870.json
Vendored
+1
File diff suppressed because one or more lines are too long
graphify-out/cache/ast/v0.9.37/9dfe058d97d6630b17bafc8da772bacaf422481fd6293ccf600a97ce02bbedf8.json
Vendored
+1
File diff suppressed because one or more lines are too long
graphify-out/cache/ast/v0.9.37/a00711d8cbd32bf5dbf8c84d16c1f454843ed9099620deed27348e7811f68093.json
Vendored
+1
File diff suppressed because one or more lines are too long
graphify-out/cache/ast/v0.9.37/a1202eb661623407a090a63f1a2226c5f10e7e7a11db053101e2496b3bfd0551.json
Vendored
+1
File diff suppressed because one or more lines are too long
graphify-out/cache/ast/v0.9.37/a6943df04e9d6744ba8dda42992c59e46c51747a5554749308beaebd38c3d199.json
Vendored
+1
File diff suppressed because one or more lines are too long
graphify-out/cache/ast/v0.9.37/a752d05627595a074010b0816fe8e461733be173d6f4f8c2667feddcb84e7fed.json
Vendored
+1
File diff suppressed because one or more lines are too long
graphify-out/cache/ast/v0.9.37/aa1acb6f60ea290ec8ae4ea82aeda6947e393801b9780ed08f30cc0b035e93d1.json
Vendored
+1
File diff suppressed because one or more lines are too long
graphify-out/cache/ast/v0.9.37/aace4c15304a50ad89576289e3016e355d54d7f30e8207f8cc49171e7687f74b.json
Vendored
+1
File diff suppressed because one or more lines are too long
graphify-out/cache/ast/v0.9.37/aff59b919c5450c08d6822f51189a1756fad51191504b231658242fe7f5e76e0.json
Vendored
+1
File diff suppressed because one or more lines are too long
graphify-out/cache/ast/v0.9.37/b155205ef8808ed7a082dc99084171dc844b867b770978a9a3c4ba0accb14f0b.json
Vendored
+1
File diff suppressed because one or more lines are too long
graphify-out/cache/ast/v0.9.37/b1c1ebdb52323f5e7ba319a09d5c88b36a8381d74c6948b2fc3399a3a9becaa7.json
Vendored
+1
File diff suppressed because one or more lines are too long
graphify-out/cache/ast/v0.9.37/b8fc7308d548010a72547244f5ba273b1764cade31be01eacd4e548e8c75b85b.json
Vendored
+1
File diff suppressed because one or more lines are too long
graphify-out/cache/ast/v0.9.37/ba7711dc4d7daad90f79a3e2128da96349cd52b1e4bdda06f5c5a1eba210df6d.json
Vendored
+1
File diff suppressed because one or more lines are too long
graphify-out/cache/ast/v0.9.37/baeee802891202521df38e390dbcbf6c8ca503934ba11b7f017fb2b12b0d194b.json
Vendored
+1
File diff suppressed because one or more lines are too long
graphify-out/cache/ast/v0.9.37/bc28bf389da8d7277632865e3d7134699825039a7b26455e88a488220775b8be.json
Vendored
+1
File diff suppressed because one or more lines are too long
graphify-out/cache/ast/v0.9.37/bcfbe038c9299b1d7cfbf8fad938c09d15efd10d1b8c31e8529920f3ee5d1b85.json
Vendored
+1
File diff suppressed because one or more lines are too long
graphify-out/cache/ast/v0.9.37/c1c6da45a0b07ca9415c946f1f5f84b3a400866fbeef0620aecb4e38226f81e1.json
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "$graphify-root$_internal_imapserver_backend_go", "label": "backend.go", "file_type": "code", "source_file": "internal/imapserver/backend.go", "source_location": "L1"}, {"id": "imapserver_backend", "label": "Backend", "file_type": "code", "source_file": "internal/imapserver/backend.go", "source_location": "L17"}, {"id": "db", "label": "DB", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/internal/imapserver/backend.go"}, {"id": "store", "label": "Store", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/internal/imapserver/backend.go"}, {"id": "logger", "label": "Logger", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/internal/imapserver/backend.go"}, {"id": "imapserver_backend_newsession", "label": ".NewSession()", "file_type": "code", "source_file": "internal/imapserver/backend.go", "source_location": "L23"}, {"id": "session", "label": "Session", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/internal/imapserver/backend.go"}], "edges": [{"source": "$graphify-root$_internal_imapserver_backend_go", "target": "go_pkg_mailgoserver_internal_db", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "internal/imapserver/backend.go", "source_location": "L10", "weight": 1.0, "context": "import"}, {"source": "$graphify-root$_internal_imapserver_backend_go", "target": "go_pkg_mailgoserver_internal_mailstore", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "internal/imapserver/backend.go", "source_location": "L11", "weight": 1.0, "context": "import"}, {"source": "$graphify-root$_internal_imapserver_backend_go", "target": "go_pkg_mailgoserver_internal_toolbox", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "internal/imapserver/backend.go", "source_location": "L12", "weight": 1.0, "context": "import"}, {"source": "$graphify-root$_internal_imapserver_backend_go", "target": "imapserver_backend", "relation": "contains", "confidence": "EXTRACTED", "source_file": "internal/imapserver/backend.go", "source_location": "L17", "weight": 1.0}, {"source": "imapserver_backend", "target": "db", "relation": "references", "confidence": "EXTRACTED", "source_file": "internal/imapserver/backend.go", "source_location": "L18", "weight": 1.0, "context": "field"}, {"source": "imapserver_backend", "target": "store", "relation": "references", "confidence": "EXTRACTED", "source_file": "internal/imapserver/backend.go", "source_location": "L19", "weight": 1.0, "context": "field"}, {"source": "imapserver_backend", "target": "logger", "relation": "references", "confidence": "EXTRACTED", "source_file": "internal/imapserver/backend.go", "source_location": "L20", "weight": 1.0, "context": "field"}, {"source": "imapserver_backend", "target": "imapserver_backend_newsession", "relation": "method", "confidence": "EXTRACTED", "source_file": "internal/imapserver/backend.go", "source_location": "L23", "weight": 1.0}, {"source": "imapserver_backend_newsession", "target": "session", "relation": "references", "confidence": "EXTRACTED", "source_file": "internal/imapserver/backend.go", "source_location": "L23", "weight": 1.0, "context": "return_type"}], "raw_calls": []}
|
||||
graphify-out/cache/ast/v0.9.37/c2f19dc203171c1b082b35cf89a45d2ddff0ec179d4c33b53529de05bd1b758b.json
Vendored
+1
File diff suppressed because one or more lines are too long
graphify-out/cache/ast/v0.9.37/c381d6b6314046b75e94565526311fe0f61447016b5a43e300fe0426a8c2377a.json
Vendored
+1
File diff suppressed because one or more lines are too long
graphify-out/cache/ast/v0.9.37/c4a9b4af735f9a1c0a6522c1ae2e8ff9ddc5c4e6c7f62e05d3401262dc2df77b.json
Vendored
+1
File diff suppressed because one or more lines are too long
graphify-out/cache/ast/v0.9.37/c7f3d9dc8b3b818eb65c17ee3d7db82796dc044ef673675bbaceaaca1442a214.json
Vendored
+1
File diff suppressed because one or more lines are too long
graphify-out/cache/ast/v0.9.37/cdb3fedde3039f2c845f0e82cdb485df7d840f182983a426b2144d030abee7be.json
Vendored
+1
File diff suppressed because one or more lines are too long
graphify-out/cache/ast/v0.9.37/d308d09c55ac8089fa9e9a7ae6ec5a34b4ea097ad87a6fc4fe7e719b09fc77bd.json
Vendored
+1
File diff suppressed because one or more lines are too long
graphify-out/cache/ast/v0.9.37/d351340d02d782205a198f19e61d1ab20b7b5683686c8b418eddf61689fdda32.json
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "$graphify-root$_internal_relay_log_go", "label": "log.go", "file_type": "code", "source_file": "internal/relay/log.go", "source_location": "L1"}, {"id": "relay_relay", "label": "Relay", "file_type": "code", "source_file": "internal/relay/log.go", "source_location": "L12"}, {"id": "relay_relay_logemail", "label": ".LogEmail()", "file_type": "code", "source_file": "internal/relay/log.go", "source_location": "L12"}, {"id": "file", "label": "File", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/internal/relay/log.go"}, {"id": "peerip", "label": "peerIP", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/internal/relay/log.go"}, {"id": "result", "label": "Result", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/internal/relay/log.go"}, {"id": "$graphify-root$_internal_relay_log_overallstatus", "label": "overallStatus()", "file_type": "code", "source_file": "internal/relay/log.go", "source_location": "L55"}], "edges": [{"source": "$graphify-root$_internal_relay_log_go", "target": "go_pkg_mailgoserver_internal_db", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "internal/relay/log.go", "source_location": "L4", "weight": 1.0, "context": "import"}, {"source": "$graphify-root$_internal_relay_log_go", "target": "go_pkg_mailgoserver_internal_toolbox", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "internal/relay/log.go", "source_location": "L5", "weight": 1.0, "context": "import"}, {"source": "$graphify-root$_internal_relay_log_go", "target": "go_pkg_gopkg_in_ini_v1", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "internal/relay/log.go", "source_location": "L7", "weight": 1.0, "context": "import"}, {"source": "relay_relay", "target": "relay_relay_logemail", "relation": "method", "confidence": "EXTRACTED", "source_file": "internal/relay/log.go", "source_location": "L12", "weight": 1.0}, {"source": "relay_relay_logemail", "target": "file", "relation": "references", "confidence": "EXTRACTED", "source_file": "internal/relay/log.go", "source_location": "L12", "weight": 1.0, "context": "parameter_type"}, {"source": "relay_relay_logemail", "target": "peerip", "relation": "references", "confidence": "EXTRACTED", "source_file": "internal/relay/log.go", "source_location": "L12", "weight": 1.0, "context": "parameter_type"}, {"source": "relay_relay_logemail", "target": "result", "relation": "references", "confidence": "EXTRACTED", "source_file": "internal/relay/log.go", "source_location": "L12", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_internal_relay_log_go", "target": "$graphify-root$_internal_relay_log_overallstatus", "relation": "contains", "confidence": "EXTRACTED", "source_file": "internal/relay/log.go", "source_location": "L55", "weight": 1.0}, {"source": "$graphify-root$_internal_relay_log_overallstatus", "target": "result", "relation": "references", "confidence": "EXTRACTED", "source_file": "internal/relay/log.go", "source_location": "L55", "weight": 1.0, "context": "parameter_type"}, {"source": "relay_relay_logemail", "target": "$graphify-root$_internal_relay_log_overallstatus", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "internal/relay/log.go", "source_location": "L13", "weight": 1.0}], "raw_calls": [{"caller_nid": "relay_relay_logemail", "callee": "InsertEmailLog", "is_member_call": true, "language": "go", "source_file": "internal/relay/log.go", "source_location": "L15"}, {"caller_nid": "relay_relay_logemail", "callee": "GetCurrentTime", "is_member_call": false, "language": "go", "source_file": "internal/relay/log.go", "source_location": "L17"}, {"caller_nid": "relay_relay_logemail", "callee": "InsertEmailRecipientLog", "is_member_call": true, "language": "go", "source_file": "internal/relay/log.go", "source_location": "L39"}]}
|
||||
graphify-out/cache/ast/v0.9.37/d61bca16aee61906f98bd27e1882f8b03676d421868f9931f484302530f4d8fa.json
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "$graphify-root$_internal_db_crud_counts_go", "label": "crud_counts.go", "file_type": "code", "source_file": "internal/db/crud_counts.go", "source_location": "L1"}, {"id": "db_db", "label": "DB", "file_type": "code", "source_file": "internal/db/crud_counts.go", "source_location": "L3"}, {"id": "db_db_countsendersfordomain", "label": ".CountSendersForDomain()", "file_type": "code", "source_file": "internal/db/crud_counts.go", "source_location": "L3"}, {"id": "db_db_hasactivedkimfordomain", "label": ".HasActiveDKIMForDomain()", "file_type": "code", "source_file": "internal/db/crud_counts.go", "source_location": "L9"}, {"id": "db_db_hasanydkimfordomain", "label": ".HasAnyDKIMForDomain()", "file_type": "code", "source_file": "internal/db/crud_counts.go", "source_location": "L15"}], "edges": [{"source": "db_db", "target": "db_db_countsendersfordomain", "relation": "method", "confidence": "EXTRACTED", "source_file": "internal/db/crud_counts.go", "source_location": "L3", "weight": 1.0}, {"source": "db_db", "target": "db_db_hasactivedkimfordomain", "relation": "method", "confidence": "EXTRACTED", "source_file": "internal/db/crud_counts.go", "source_location": "L9", "weight": 1.0}, {"source": "db_db", "target": "db_db_hasanydkimfordomain", "relation": "method", "confidence": "EXTRACTED", "source_file": "internal/db/crud_counts.go", "source_location": "L15", "weight": 1.0}], "raw_calls": [{"caller_nid": "db_db_countsendersfordomain", "callee": "Scan", "is_member_call": true, "language": "go", "source_file": "internal/db/crud_counts.go", "source_location": "L5"}, {"caller_nid": "db_db_countsendersfordomain", "callee": "QueryRow", "is_member_call": true, "language": "go", "source_file": "internal/db/crud_counts.go", "source_location": "L5"}, {"caller_nid": "db_db_hasactivedkimfordomain", "callee": "Scan", "is_member_call": true, "language": "go", "source_file": "internal/db/crud_counts.go", "source_location": "L11"}, {"caller_nid": "db_db_hasactivedkimfordomain", "callee": "QueryRow", "is_member_call": true, "language": "go", "source_file": "internal/db/crud_counts.go", "source_location": "L11"}, {"caller_nid": "db_db_hasanydkimfordomain", "callee": "Scan", "is_member_call": true, "language": "go", "source_file": "internal/db/crud_counts.go", "source_location": "L17"}, {"caller_nid": "db_db_hasanydkimfordomain", "callee": "QueryRow", "is_member_call": true, "language": "go", "source_file": "internal/db/crud_counts.go", "source_location": "L17"}]}
|
||||
graphify-out/cache/ast/v0.9.37/db2b056412977ed7e1af1b837d3b5703479088e6e221bbc233f64fb8a0c23b02.json
Vendored
+1
File diff suppressed because one or more lines are too long
graphify-out/cache/ast/v0.9.37/db9ff3b15ef6d7541c91f34c07d017a8d1d67cd0b76207418e3ceb3ccc107da2.json
Vendored
+1
File diff suppressed because one or more lines are too long
graphify-out/cache/ast/v0.9.37/dbc2562aec76d8a15de52fa7d0ed250f098ca2ef9b699b17ef7b9beebe357e1d.json
Vendored
+1
File diff suppressed because one or more lines are too long
graphify-out/cache/ast/v0.9.37/dbf0bc9fe5cb763e34ff2cc9a65814f23c4eef0fa9331360bf85c98f2dd414ae.json
Vendored
+1
File diff suppressed because one or more lines are too long
graphify-out/cache/ast/v0.9.37/dcdb29da657fc048b06c628e9ed047d4564a2dc38285205e744fcc83a866f9b2.json
Vendored
+1
File diff suppressed because one or more lines are too long
graphify-out/cache/ast/v0.9.37/e070dab68bc8488d7ce86f91a5e1cbabe3a22eb84ca807925455ea4534335441.json
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "$graphify-root$_internal_webui_domains_test_go", "label": "domains_test.go", "file_type": "code", "source_file": "internal/webui/domains_test.go", "source_location": "L1"}, {"id": "$graphify-root$_internal_webui_domains_test_testisvaliddomainname", "label": "TestIsValidDomainName()", "file_type": "code", "source_file": "internal/webui/domains_test.go", "source_location": "L5"}, {"id": "t", "label": "T", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/internal/webui/domains_test.go"}, {"id": "$graphify-root$_internal_webui_domains_test_testverificationrecordnameandvalue", "label": "TestVerificationRecordNameAndValue()", "file_type": "code", "source_file": "internal/webui/domains_test.go", "source_location": "L21"}], "edges": [{"source": "$graphify-root$_internal_webui_domains_test_go", "target": "go_pkg_testing", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "internal/webui/domains_test.go", "source_location": "L3", "weight": 1.0, "context": "import"}, {"source": "$graphify-root$_internal_webui_domains_test_go", "target": "$graphify-root$_internal_webui_domains_test_testisvaliddomainname", "relation": "contains", "confidence": "EXTRACTED", "source_file": "internal/webui/domains_test.go", "source_location": "L5", "weight": 1.0}, {"source": "$graphify-root$_internal_webui_domains_test_testisvaliddomainname", "target": "t", "relation": "references", "confidence": "EXTRACTED", "source_file": "internal/webui/domains_test.go", "source_location": "L5", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_internal_webui_domains_test_go", "target": "$graphify-root$_internal_webui_domains_test_testverificationrecordnameandvalue", "relation": "contains", "confidence": "EXTRACTED", "source_file": "internal/webui/domains_test.go", "source_location": "L21", "weight": 1.0}, {"source": "$graphify-root$_internal_webui_domains_test_testverificationrecordnameandvalue", "target": "t", "relation": "references", "confidence": "EXTRACTED", "source_file": "internal/webui/domains_test.go", "source_location": "L21", "weight": 1.0, "context": "parameter_type"}], "raw_calls": [{"caller_nid": "$graphify-root$_internal_webui_domains_test_testisvaliddomainname", "callee": "isValidDomainName", "is_member_call": false, "language": "go", "source_file": "internal/webui/domains_test.go", "source_location": "L10"}, {"caller_nid": "$graphify-root$_internal_webui_domains_test_testisvaliddomainname", "callee": "Errorf", "is_member_call": true, "language": "go", "source_file": "internal/webui/domains_test.go", "source_location": "L11"}, {"caller_nid": "$graphify-root$_internal_webui_domains_test_testisvaliddomainname", "callee": "isValidDomainName", "is_member_call": false, "language": "go", "source_file": "internal/webui/domains_test.go", "source_location": "L15"}, {"caller_nid": "$graphify-root$_internal_webui_domains_test_testisvaliddomainname", "callee": "Errorf", "is_member_call": true, "language": "go", "source_file": "internal/webui/domains_test.go", "source_location": "L16"}, {"caller_nid": "$graphify-root$_internal_webui_domains_test_testverificationrecordnameandvalue", "callee": "verificationRecordName", "is_member_call": false, "language": "go", "source_file": "internal/webui/domains_test.go", "source_location": "L22"}, {"caller_nid": "$graphify-root$_internal_webui_domains_test_testverificationrecordnameandvalue", "callee": "Errorf", "is_member_call": true, "language": "go", "source_file": "internal/webui/domains_test.go", "source_location": "L23"}, {"caller_nid": "$graphify-root$_internal_webui_domains_test_testverificationrecordnameandvalue", "callee": "verificationRecordValue", "is_member_call": false, "language": "go", "source_file": "internal/webui/domains_test.go", "source_location": "L25"}, {"caller_nid": "$graphify-root$_internal_webui_domains_test_testverificationrecordnameandvalue", "callee": "Errorf", "is_member_call": true, "language": "go", "source_file": "internal/webui/domains_test.go", "source_location": "L26"}]}
|
||||
graphify-out/cache/ast/v0.9.37/e339714fab7abed2b87b4442c647471a2ff170284c8dab4bbd0df32e8df02830.json
Vendored
+1
File diff suppressed because one or more lines are too long
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user