{"eid":"github-openlistteam","name":"中国电信魔盘 mopan","domain":"github.com","resolved_by":"platform","topics":["netdisk-pan","storage"],"n_records":2,"best_vorder":0,"review":null,"aliases":["AList / OpenList","AList / OpenList — the most-used multi-storage aggregator","AList / OpenList — the most-used multi-storage aggregator (50.3k / 25.2k stars)","OpenList (OpenListTeam/OpenList)","alist / OpenList — the layer that works around a missing provider client","github.com","中国电信魔盘 mopan","中国电信魔盘 mopan (mopan)"],"records":[{"rid":"netdisk-pan/openlist","card":{"rid":"netdisk-pan/openlist","eid":"github-openlistteam","topic":"netdisk-pan","slug":"openlist","provider":"OpenList (OpenListTeam/OpenList)","url":"https://github.com/OpenListTeam/OpenList","domain":"github.com","category":"bridge","tier":null,"verdict":"qualifies","vorder":0,"grp":"usable","confidence":"documented","binding":"write-gated","identity_kind":"anonymous","identity_basis":"stated","needs_card":0,"needs_phone":0,"needs_id":0,"needs_institution":0,"country":null,"crypto":null,"interfaces":"rest,webdav,s3,ftp,sftp","egress_metered":0,"per_object_bytes":null,"retention_days":null,"verified_at":"2026-10-22T03:37:00.574Z","verified_basis":"live","checked_on":"2026-10-23","stale_on":"2026-11-13","n_evidence":5,"usd_month":null,"usd_per_tb_month":null,"summary":"the software is free and self-hosted; the cost is a VPS and whatever upstream accounts it mounts","duplicate_of":null,"n_unknown":0},"record":{"topic":"netdisk-pan","slug":"openlist","provider":"OpenList (OpenListTeam/OpenList)","url":"https://github.com/OpenListTeam/OpenList","category":"bridge","free_tier":{"stated":"the software is free and self-hosted; the cost is a VPS and whatever upstream accounts it mounts","unit":"none","metered_on":"none","source_url":"https://github.com/OpenListTeam/OpenList","read_on":"2026-10-22"},"per_object_cap":{"stated":"no cap of its own; the cap is the mounted upstream's","source_url":"https://github.com/OpenListTeam/OpenList"},"retention":{"stated":"as long as the operator keeps the process and the upstream alive","days":null,"source_url":"https://github.com/OpenListTeam/OpenList"},"egress":{"terms":"unmetered by the software; the egress is whatever the upstream provider and any CDN in front charge","metered":false,"source_url":"https://github.com/OpenListTeam/OpenList"},"interface":["rest","webdav","s3","ftp","sftp"],"tooling":"a single Go binary; REST under /api/*, WebDAV at /dav, an S3-compatible gateway, FTP and SFTP; the rclone alist backend works against it","chaining":"the bridge layer of the whole topic: mount a pooled tenant or a pan account, serve it over REST and WebDAV, put a CDN in front","limits":[{"kind":"write-gated","value":"the write gate is CanWriteContent (bit 3) OR a per-path meta override, evaluated in server/middlewares/fsup.go","source":"https://github.com/OpenListTeam/OpenList/blob/main/server/middlewares/fsup.go"}],"identity_cost":{"kind":"anonymous","detail":"the operator installs it; a reader needs no account on the bridge itself","country":null},"reliability_note":"A community fork of AList, created in June 2025 after the AList project was sold and its ownership, docs and community were rewritten. The fork is the maintained one; AList v3 builds still run on many public instances and still work.","confidence":"documented","evidence":[{"url":"https://github.com/OpenListTeam/OpenList","date":"2026-10-22","proved":"the repository describes itself as 'A new AList Fork to Anti Trust Crisis', 25,183 stars, last push 2026-10-21"},{"url":"https://raw.githubusercontent.com/OpenListTeam/OpenList/main/server/middlewares/fsup.go","date":"2026-10-22","proved":"the write gate is: if !user.CanWriteContent() && !common.CanWriteContentBypassUserPerms(parentMeta, parentPath) then deny, then a second check common.CanWrite(user, parentMeta, parentPath)"},{"url":"https://raw.githubusercontent.com/OpenListTeam/OpenList/main/server/handles/fsread.go","date":"2026-10-22","proved":"the fs/list response carries Write: common.CanWrite(user, meta, reqPath) and WriteContentBypass: common.CanWriteContentBypassUserPerms(meta, reqPath); these are two different predicates and only the second mirrors the upload gate"},{"url":"https://raw.githubusercontent.com/OpenListTeam/OpenList/main/internal/model/user.go","date":"2026-10-22","proved":"the permission bitmask is documented in the struct comment: bit 3 is mkdir and upload, bit 8 is WebDAV read, bit 9 is WebDAV write"},{"url":"https://finance.sina.com.cn/tech/digi/2025-06-16/doc-infahqye9515437.shtml","date":"2026-10-22","proved":"the AList project was reported sold in June 2025 and OpenList was created as a replacement that removes the original developer's private API links"}],"verdict":"qualifies","verified_at":"2026-10-22T03:37:00.574Z","binding":"write-gated","notes":"The one piece of this topic the client can own outright. The source is explicit that fs/list's write field is CanWrite, a per-user exclusion-list negation, while the upload gate is CanWriteContent(bit 3) OR a per-path meta; that distinction is why a host can report write:true and refuse every PUT, and why the one writable instance in the population reports write_content_bypass:true and permission 256 with no bit 3.","extras":{"access_mode":"self-hosted-bridge","language":"Go","license":"AGPL-3.0","stars":25183,"last_push":"2026-10-21T17:00:56Z","aliases":["AList / OpenList — the most-used multi-storage aggregator (50.3k / 25.2k stars)","alist / OpenList — the layer that works around a missing provider client","AList / OpenList","AList / OpenList — the most-used multi-storage aggregator"],"aggregator_note":"This record is the single home for both spellings of the aggregator, so the name the completeness audit called unindexed resolves here. the first appears in no index and is carried as an alias so a future pass searching for it finds this record."},"binding_note":"The bridge itself is not the constraint; what it can do is entirely set by which upstream it mounts and whether that upstream grants a write."},"claims":[{"path":"$.free_tier.stated","kind":"free-quota","num":null,"unit":null,"per":null,"currency":null,"usd":null,"fx_date":null,"parse":"unparsed"},{"path":"$.limits[0].value","kind":"limit:write-gated","num":null,"unit":null,"per":null,"currency":null,"usd":null,"fx_date":null,"parse":"unparsed"}],"unknown":[],"history":[],"drift":[]},{"rid":"storage/mopan","card":{"rid":"storage/mopan","eid":"github-openlistteam","topic":"storage","slug":"mopan","provider":"中国电信魔盘 mopan (mopan)","url":"https://github.com/OpenListTeam/OpenList/blob/main/drivers/mopan/meta.go","domain":"github.com","category":"rejected-provider","tier":null,"verdict":"fails-quota","vorder":6,"grp":"rejected","confidence":"reported","binding":"none","identity_kind":"email","identity_basis":"defaulted","needs_card":null,"needs_phone":null,"needs_id":null,"needs_institution":null,"country":null,"crypto":null,"interfaces":null,"egress_metered":0,"per_object_bytes":null,"retention_days":null,"verified_at":"2026-10-21T00:00:00.000Z","verified_basis":"inherited","checked_on":"2026-10-21","stale_on":"2026-11-04","n_evidence":2,"usd_month":null,"usd_per_tb_month":null,"summary":"Has a dedicated OpenList driver (`mopan`, reverse-engineered, with an explicit provider warning 'This network disk may store your password in clear text'), s...","duplicate_of":null,"n_unknown":15},"record":{"topic":"storage","slug":"mopan","provider":"中国电信魔盘 mopan (mopan)","url":"https://github.com/OpenListTeam/OpenList/blob/main/drivers/mopan/meta.go","category":"rejected-provider","free_tier":{"stated":"Has a dedicated OpenList driver (`mopan`, reverse-engineered, with an explicit provider warning 'This network disk may store your password in clear text'), so it is technically mountable — b","unit":"none","metered_on":"none","source_url":"https://github.com/OpenListTeam/OpenList/blob/main/drivers/mopan/meta.go","read_on":"2026-10-21","notes":null},"per_object_cap":{"stated":"not recorded","bytes":null,"source_url":"https://github.com/OpenListTeam/OpenList/blob/main/drivers/mopan/meta.go","notes":"not recorded"},"retention":{"stated":"not recorded","days":null,"source_url":"https://github.com/OpenListTeam/OpenList/blob/main/drivers/mopan/meta.go","notes":null},"egress":{"terms":"not recorded","metered":false},"interface":["unknown"],"interface_detail":null,"tooling":"not recorded","chaining":"not recorded","limits":[],"limits_note":null,"identity_cost":{"kind":"email","detail":null,"country":null},"reliability_note":"Has a dedicated OpenList driver (`mopan`, reverse-engineered, with an explicit provider warning 'This network disk may store your password in clear text'), so it is technically mountable — b","confidence":"reported","confidence_note":null,"evidence":[{"url":"https://github.com/OpenListTeam/OpenList/blob/main/drivers/mopan/meta.go","date":"2026-10-21","proved":"Has a dedicated OpenList driver (`mopan`, reverse-engineered, with an explicit provider warning 'This network disk may store your password in clear text'), so it is technically mountable — b"},{"url":"https://eyun.baidu.com/content/169088/","date":"2026-10-21","proved":"cited as the basis of the rejection: Has a dedicated OpenList driver (`mopan`, reverse-engineered, with an explicit provider warning 'This network disk may store your password in clear text'), so it is technically mountable — b"}],"verdict":"fails-quota","verified_at":"2026-10-21T00:00:00.000Z","notes":"Has a dedicated OpenList driver (`mopan`, reverse-engineered, with an explicit provider warning 'This network disk may store your password in clear text'), so it is technically mountable — b","extras":{"dead_end":{"failure_class":"quota","why":"Has a dedicated OpenList driver (`mopan`, reverse-engineered, with an explicit provider warning 'This network disk may store your password in clear text'), so it is technically mountable — b","retry_when":null,"first_recorded":"2026-10-21"}},"binding":"none","binding_note":"no constraint of a named kind was recorded; the verdict rests on the quota sentence rather than on a named limit"},"claims":[{"path":"$.free_tier.stated","kind":"free-quota","num":null,"unit":null,"per":null,"currency":null,"usd":null,"fx_date":null,"parse":"unparsed"}],"unknown":[["$.chaining","not-recorded"],["$.confidence_note","withheld"],["$.egress.terms","not-recorded"],["$.extras.dead_end.retry_when","process"],["$.free_tier.notes","process"],["$.identity_cost.detail","defaulted"],["$.identity_cost.kind","identity-defaulted"],["$.interface","interface-unknown"],["$.interface_detail","withheld"],["$.limits_note","process"],["$.per_object_cap.notes","not-recorded"],["$.per_object_cap.stated","not-recorded"],["$.retention.notes","process"],["$.retention.stated","not-recorded"],["$.tooling","not-recorded"]],"history":[],"drift":[]}]}