Community Solid Server nedir ve pod.solidus.network onun üzerinde ne çalıştırıyor?
Community Solid Server, Solid topluluğunun referans uygulamasıdır ve bizim değildir. Onu çalıştırıyoruz. pod shipped: sevk edilen şey, başkasının motorunun etrafındaki bir entegrasyon katmanıdır.
Ne olduğu
Açık kaynak bir Solid sunucusu, başlıca Ghent'teki imec ve SolidLab'daki akademik ve topluluk çalışmasıyla geliştirilmiş, etrafında bir bakımcı topluluğuyla. Depolama modelini, erişim denetimi modelini ve kimlik bağlamasını uyguluyor: yani bir pod'un önemli olan kısımlarını.
7.1.9 sürümünü sabitliyoruz. 8.x hattı alfa ve daha yeni bir çalışma zamanı istiyor, dolayısıyla geçmedik. Kararlı bir ana sürümü sabitlemek ve bunu söylemek o kararın tamamıdır: içinde zekice bir şey yok.
Ne yaptığı, telden görüldüğü hâliyle
Bu oturumda yerel olarak, geçici bir dizine karşı başlatıldı:
$ curl -sI http://localhost:3199/
HTTP/1.1 200 OK
X-Powered-By: Community Solid Server
Content-Type: text/turtle
Link: <http://www.w3.org/ns/ldp#BasicContainer>; rel="type"
Link: <http://www.w3.org/ns/pim/space#Storage>; rel="type"
Link: <.../.acl>; rel="acl"
O Link başlıkları birlikte çalışabilirlik yüzeyidir. Herhangi bir istemciye, biz var olmadan önce
yazılmış istemciler dahil, şunu söylüyorlar: bunun bir kap olduğunu, bir depolama kökü olduğunu ve
erişim denetimi belgesinin nerede yaşadığını. Bir yabancının aracı, bizim hakkımızda hiçbir şey
bilmeden bunda gezinebiliyor.
Hiç oluşturulmamış bir yol 404 döndürdü, dolayısıyla sunucu "yok" ile "yasak"ı doğru biçimde ayırt ediyor.
Gerçekte ne eklediğimiz
Kendi planımıza göre üç şey: yöntemimiz ile Solid'in oturum açma modeli arasında bir tanımlayıcı köprüsü, bir depolama arka ucu ve veri modeli eşlemesi.
O üçün ikisi kendi durum listemizde işaretsiz. Tanımlayıcı tarafının kendi sayfası var.
Yani doğru cümle şu: onların sunucusunu dağıtıyoruz, yanında bir ön yüz çalıştırıyoruz ve entegrasyon işi kısmen yapılmış. Daha görkemli herhangi bir şey, onların mühendisliğini ödünç almak olurdu.
Kendi depomuzdaki üç kusur, gizlenmek yerine yayımlanmış
Bir. Durum listemizde "pod.solidus.network'e dağıtıldı" işaretsiz. Yüzey apaçık canlı. Liste bayat, ki bu işaretli maddeleri de güncel diye okumamanız gerektiği anlamına geliyor.
İki. Üretim başlatma betiği, depoda olmayan bir yapılandırma dosyasını gösteriyor. Yazıldığı hâliyle başarısız olurdu. Dağıtılmış sunucuyu başka bir şey başlatıyor ve depo bunun ne olduğunu söylemiyor, dolayısıyla depo size üretimin ne çalıştırdığını söyleyemiyor.
Üç. Kendi README'miz köke curl -sI yapıp belirli bir başlık beklemenizi söylüyor. Kök kap onu
döndürmüyor. O başlık, depolama kökünde değil yamalamayı destekleyen bir kaynakta beliriyor,
sabitlediğimiz sürümde kontrol ettik. Yeniden üretmeyen bir yeniden üretme talimatı hiç olmamasından
kötüdür, çünkü okur kendi kurulumunun bozuk olduğu sonucuna varıyor.
Üçü de bizim, hiçbiri sunucunun değil ve bu sayfadalar çünkü kendi belgelerimizi izleyen teknik bir okur, nerede kaydıklarını bilmeyi hak ediyor.
Dağıtılmış yapılandırmanın neye benzediği ve bunun neyi açıkladığı
Depoda mevcut olan tek yapılandırma, dosya depolama arka ucunu, pod başına bir depolama konumunu, yetkilendirme için Web Access Control'ü ve kimlik doğrulaması için DPoP/hamiline jetonlarını seçiyor.
Pod başına bir düzen, sunucu adı kökünün kendisinin bir depolama olmadığı anlamına geliyor ve bu, daha önce yalnızca tuhaf diye kaydettiğimiz iki şeyi açıklıyor:
- Dağıtılmış sunucuda
/.well-known/solid501 yanıtı veriyor ki yerel tek pod'lu varsayılanda tam bir depolama tanımı döndürüyor. Bir arıza değil. Düzenin bir sonucu. - Dağıtılmış sunucuda bilinmeyen yollar 404 değil 401 döndürüyor, çünkü kökü kimlik doğrulaması gerektiren bir sunucuya düşüyorlar. Aynı sunucu, yerel olarak, 404 döndürüyor, dolayısıyla davranış yazılımın değil dağıtımımızın biçimidir.
Bu tutarlı kanıttır, üretimin ne çalıştırdığının kanıtı değil, ikinci kusurdaki sebeple.
Tek sunucu adında iki sunucu
/ bizim kendi ön yüzümüz tarafından yanıtlanıyor. Diğer yollar Solid sunucusu tarafından
yanıtlanıyor. x-powered-by başlığı hangi yolu sorduğunuza göre değişiyor ve bunu iki istekte
kendiniz görebilirsiniz.
Burada herhangi bir şeyde hata ayıklamadan önce bunu bilmekte fayda var, çünkü birinden gelen bir durum kodu, diğerinden gelen aynı koddan farklı bir şey anlamına geliyor. İkisini de bugün, hesap olmadan, iki istekte kontrol edebilirsiniz.