Ruka hadi maudhui makuu

Clepit

Kwa muhtasari

Kundi
Jukwaa la wasanidi programu
Tovuti
clepit.com
Konsoli
app.clepit.com
Nyaraka
clepit.com/en/docs
API ya GraphQL
api.clepit.com/graphql
Wakati halisi
ws.clepit.com
Kiolesura cha MCP
api.clepit.com/mcp
Kurasa zilizochapishwa
clepit.space

Maandishi mengi yaliyopambwa huishia kwenye hifadhidata kama fungu moja la HTML. Hilo halina shida hadi utakapotaka kufanya jambo lingine zaidi ya kuyaonyesha tena: kutafuta kila ukurasa unaomtaja mteja fulani, kuonyesha hati ileile kwenye ukurasa wa wavuti, barua pepe na programu ya simu, au kuwaruhusu watu wawili kuihariri kwa pamoja bila mmoja wao kupoteza aya. Kufikia hapo maneno na mpangilio wake vimeshikamana, na kitu pekee kinachoweza kuisoma hati hiyo kwa uhakika ni kihariri kilichoiandika.

Clepit huvitenganisha viwili hivyo. Ukurasa ni orodha ya vizuizi, kila kimoja kikiwa kitu kidogo chenye aina yake, na hati yenyewe ni JSON: hakuna maandishi ya kupambanua, wala hakuna kihariri kinachohitajika ili kuisoma. Ndiyo sababu kihariri hiki kinaweza kusimama chenyewe. @clepit/core kimechapishwa kwenye npm chini ya leseni ya MIT na hakijui lolote kuhusu upande unaopangishwa, ilhali eneo la kazi lililopo app.clepit.com ndilo hati zilezile zinapopewa washirika, ruhusa, historia, na anwani kwenye wavuti ya umma.

Ukurasa ni orodha ya vizuizi

Kizuizi ni sehemu nne: kitambulisho, aina, data ambayo aina hiyo huifafanua, na marekebisho yoyote yaliyowekwa juu yake. Data ya aya ina umbo tofauti na ya jedwali, na aina ndiyo inayokuambia umbo gani la kutarajia, hivyo hati iliyohifadhiwa yaweza kuhakikiwa badala ya kupambanuliwa tu. Ukurasa mzima ni alama ya wakati, toleo, na vizuizi kwa mpangilio wake, kidogo cha kutosha kusomwa kwa macho yako na kupitiwa katika pull request. Hakuna chochote humo kinachoeleza jinsi ukurasa unavyopaswa kuonekana: hilo ni jukumu la kile kinachouchora, na ndilo linaloruhusu hati moja kuwa ukurasa wa wavuti, barua pepe, na skrini ya simu bila nakala zake tatu kuwepo.

Kuchora hati bila kivinjari

Kichoraji hakiandiki moja kwa moja kwenye kivinjari. Huchora kupitia tabaka jembamba lenye misingi miwili nyuma yake: mmoja hujenga vipengele halisi vya ukurasa na mwingine hujenga mfuatano wa herufi, na msimbo uleule wa kizuizi hufanya kazi kwenye vyote viwili. Ndivyo ukurasa uliochapishwa unavyochorwa kwenye seva isiyo na kivinjari hata kimoja, na ndiyo sababu kile seva inachotoa ni hati ileile ambayo kihariri kingeonyesha, si utekelezaji wa pili ulioachwa kupotoka. Msingi wa mfuatano huhitaji kisafishaji kama hoja ya lazima na kwa makusudi hauna thamani chaguo-msingi: kisafishaji cha kawaida cha kifurushi hujenga ukurasa ili kupambanua, hivyo hakiwezi kufanya kazi hapo, na kurudi kimyakimya kwenye kuepusha herufi kungeng’oa mpangilio wa ndani wa kila hati bila kusema lolote. Kwa hiyo pengo hilo linaachwa likionekana pale linapotumika, badala ya kufichwa ndani ya thamani chaguo-msingi.

Kusoma hakumgharimu msomaji JavaScript yoyote

Kiunganishi cha React hupeleka nusu zake mbili kando kando, kwa sababu kila moja hutaka kinyume cha nyingine. Kipengele cha maudhui hufanya kazi kwenye seva na hutoa maandishi yaliyokamilika wakati ukurasa unajengwa, hivyo msomaji hupokea hati katika jibu la kwanza kabisa. Kipengele cha kihariri hukaa upande wa mteja peke yake, kwa kuwa ndicho kinachobeba mzunguko wa maisha wa kihariri, na hakuna cha kubeba kabla kivinjari hakijakuwepo. Kwa hiyo kusoma hati ya Clepit hakuhitaji JavaScript hata kidogo. Ni katika kuandika ndipo mazingira ya utekelezaji hufika.

Kile ambacho ukurasa unaweza kubeba

Aina ishirini na sita za vizuizi huja ndani ya kifurushi. Nyingi ni zile ambazo kihariri chochote huzihitaji: vichwa, aya, orodha, orodha za kukagua, nukuu, msimbo, majedwali, picha, sauti, video, mafaili, visanduku vya tahadhari, na vitenganishi. Nyingine zipo kwa sababu kuandika nyaraka hudai mambo ambayo kifaa cha kuandikia hukipuuza mara nyingi. Orodha ya yaliyomo inayojijenga yenyewe kutoka vichwa vya hati na kuunganisha kwa kila kimoja. Sehemu zinazokunjika na safu wima. Kadi inayosimama badala ya ukurasa mwingine. Mchoro wa mkono. Na kizuizi cha shughuli kinachohifadhi ni hati ipi ya kuitazama, si nakala ya shughuli zake, hivyo kinaendelea kuonyesha kinachotokea sasa badala ya kuganda siku kilipowekwa. Mpangilio ndani ya kizuizi hujumuisha alama za kawaida, koza, mlazo, pigo chini, mkato, msimbo ndani ya sentensi, kuangazia, na viungo, pamoja na vidokezo, vibandiko vya hali, na kutaja watu. Kifurushi chenyewe hakina utegemezi wowote wa wakati wa utekelezaji.

Fomula na michoro, vinavyochorwa ndani ya kifurushi

Viwili kati ya vizuizi hivyo huonyesha LaTeX na Mermaid, na vyote viwili hufanya kazi yote ndani ya kifurushi: hupambanua chanzo, hukokotoa mpangilio, huchora matokeo. Hakuna maktaba ya kuchora chini yake wala wito kwa huduma yoyote ili kugeuza fomula au chati ya mtiririko kuwa picha. Hilo si suala la kupendelea kuhusu utegemezi kuliko lilivyo tokeo la msingi wa mfuatano. Kizuizi ambacho kingenyoosha mkono kwenye kitu ambacho kivinjari pekee hutoa, au kwenye mtandao, kisingeweza kuchorwa kwenye seva inayohudumia kurasa zilizochapishwa, na hapo ukurasa uleule ungeonekana tofauti kutegemea nani aliyeuomba.

Marejeo ya API yanayoishi ndani ya ukurasa

Kipe kizuizi cha OpenAPI maelezo rasmi, ukiyabandika au ukiyaonyesha kwa anwani, nacho kitachora kile ambacho maelezo hayo yanaeleza: shughuli zake, njia zake na vigezo vyake, miundo ya ombi na jibu, na namna ya uthibitisho. Kwa kila shughuli pia hujenga kipande cha ombi kwa cURL, TypeScript, Dart na Python, kilichozalishwa kutoka maelezo hayo badala ya kuandikwa na mwandishi atakayesahau kukisasisha. Kizuizi cha kupachika huutazama ulimwengu wa nje kwa jicho lilelile: hutambua huduma chache ambazo kweli kinaweza kuzionyesha, huchukulia kiungo cha kawaida kuwa matokeo halali si kushindwa kwa mengine yote, na hukataa kabisa kuchora anwani kisiyoiamini.

Watu wawili katika aya moja

Ukurasa unaohaririwa papo hapo hushikwa na kazi moja tu kwenye seva, moja kwa kila ukurasa, na kila sasisho hupitia humo kwa mpangilio. Ndilo linalofanya uhariri wa wakati mmoja uweze kufikirika: hakuna mwandishi wa pili anayeshindana na wa kwanza. Hati yenyewe ni CRDT, hivyo watu wawili wanaoandika katika aya moja huungana badala ya kufutana, na mteja aliyebaki nyuma hupata kwa kubadilishana kile kinachokosekana kila upande. Kila sasisho huongezwa kwenye kumbukumbu ya kuandika kabla halijasambazwa kwa yeyote, hivyo kile wanachokiona wengine ndani ya hati tayari kimehifadhiwa kwa kudumu wala si kupitishwa tu. Ruhusa hutekelezwa kwenye seva wala si kwenye kiolesura: anayejiunga bila haki ya kuhariri hushushwa kuwa msomaji, na kipindi hukagua tena haki hiyo mara kwa mara wakati hati ikiwa wazi, hivyo ufikiaji ulioondolewa humkuta mtu anayeandika sasa hivi badala ya kusubiri apakie ukurasa upya.

Kila uandishi hupitia mlango mmoja

Hati yaweza kubadilishwa na mtu anayeandika ndani yake na pia na programu inayoita API, na njia hizo mbili zamani zingeweza kuandika kwenye ukurasa uleule kila moja peke yake. Sasa haziwezi tena. Uandishi unaotoka kwenye API hupelekwa kwenye kipindi kilekile kinachoshikilia hati hai, ambapo hutekelezwa kama muamala mmoja pamoja na mabadiliko yanayoendelea, hivyo kuna mpangilio mmoja tu wa matukio badala ya waandishi wawili wenye maoni tofauti kuhusu ukurasa unasema nini. Vitambulisho vya vizuizi huhifadhiwa wakati hati inapoandikwa tena, kwa sababu maoni yameshikamanishwa navyo, na upatanishi ungeounda vitambulisho vipya ungeacha kila maoni yakielekeza mahali pasipo kitu. Na pale mkusanyiko wa vizuizi unaotokea unapokuwa sawa kabisa na uliohifadhiwa, hakuna kinachoandikwa.

Njia pekee ambayo ufunguo wa mashine hauwezi kuifikia

Ufunguo binafsi wa API hufanya kazi kwenye REST, GraphQL, tundu la usajili la GraphQL, na MCP. Haufanyi kazi kwenye tundu la ushirikiano, na hilo ni la makusudi. Kila sasisho la ushirikiano hupigwa muhuri wa mtu aliyelifanya, na mihuri hiyo ndiyo huwa uandishi unaorekodiwa katika historia ya ukurasa. Mhusika wa kimashine akihariri hapo angeandika mwandishi ambaye hakuna binadamu aliyemwandika, na kutengua hilo baadaye kunamaanisha kuandika upya historia badala ya kufuta safu moja. Mstari haupo kati ya websocket na HTTP: upo katika swali la iwapo njia hiyo inaandika historia yenye mwandishi. Kanuni hii hutekelezwa na umbo la msimbo wala si kumbukumbu ya mtu, kwa kuwa kukubali ufunguo kunahitaji kuhamia kwa makusudi kwenye wito tofauti wa uthibitisho, na jaribio hushindwa pale njia inapofanya hivyo.

Eneo la kazi lenye anwani yake yenyewe

Kila eneo la kazi ni mpangaji mwenye kikoa chake tangu wakati linapoundwa, na mpangaji hutambuliwa kutokana na anwani ambayo ombi liliwasili juu yake. Kwa hiyo uko kwa mpangaji yupi huamuliwa kabla ya data yako yoyote kusomwa, wala si kwa kichujio kinachowekwa baadaye ambacho mtu anaweza kukisahau. Chini ya hapo, hifadhidata yenyewe hulinda mpaka huo kupitia usalama wa kiwango cha safu: kila ombi huazima muunganisho, hupiga muhuri wa utambulisho wa mwitaji juu yake, na dimbwi hufuta hali hiyo muunganisho unaporudishwa, hivyo utambulisho wa ombi moja hauwezi kuvuja hadi kwenye maswali ya ombi linalofuata.

Kudai kikoa si sawa na kukithibitisha

Eneo la kazi lililo kwenye mpango wa Enterprise laweza kuhudumia kurasa zake kutoka kikoa chake mwenyewe. Kudai kikoa na kuhudumia kutoka humo ni hatua zilizotenganishwa kwa makusudi: kikoa huhifadhiwa bila kuthibitishwa, na kitambuzi hukipuuza kabisa hadi rekodi ya uthibitisho itakapotokea kwenye DNS. Mtu yeyote aweza kuandika anwani ya kampuni nyingine kwenye fomu. Ni yule tu anayekidhibiti kikoa hicho ndiye awezaye kuchapisha rekodi inayokifanya kianze kufanya kazi.

Kila toleo ambalo ukurasa umewahi kuwa nalo

Clepit huhifadhi matoleo badala ya hali moja tu ya sasa. Picha ya papo hapo huchukuliwa yenyewe watu wakiwa kazini, ikizuiliwa ili uandishi wa kawaida usizalishe mamia yake: mpya huandikwa mara dakika kumi zinapopita au vizuizi kumi vinapobadilika, lolote linalotangulia. Kurejesha ni muamala mmoja: picha ya zamani hutumika, vizuizi hupatanishwa, na kurejesha kwenyewe huandikwa kama toleo jipya, hivyo kurudi nyuma hurekodiwa badala ya kutenguliwa kimyakimya. Upatanishi huhifadhi kwa makusudi vitambulisho vya vizuizi vya chanzo, kwa sababu maoni yameshikamanishwa na vizuizi, na kurejesha ukurasa kwa vitambulisho vipya kungeacha kila maoni yaliyomo bila nanga.

Kukipata tena

Utafutaji hufanyika juu ya mwonekano wa kurasa, na swali hupitia kipambanuzi cha utafutaji wa wavuti cha Postgres chenyewe badala ya kuunganishwa kuwa SQL kwa mkono, hivyo mtu aweza kuandika alama za nukuu na alama za kutoa bila lolote kati ya hayo kuwa mwanya wa udukuzi. Lakini linalohesabika katika eneo la kazi linaloshirikiwa ni mahali ukaguzi wa ruhusa unapokaa. Utafutaji huunganisha jedwali la kurasa, na usalama wa kiwango cha safu wa jedwali hilo hutumika kwenye muunganisho wenyewe, hivyo matokeo tayari yamefungiwa kwenye kurasa ambazo anayeuliza anaruhusiwa kuziona. Vichujio, yaani tawi la mti wa kurasa, nani aliyehariri mwisho, na lini ilihaririwa mwisho, huwekwa juu yake kama masharti ya ziada. Kila kimoja hupunguza; hakuna hata kimoja kinachoweza kupanua, kwa sababu vyote hukaa nyuma ya ukaguzi uleule.

Kuchapisha hugandisha, kushiriki hakugandishi

Haya ni mambo mawili tofauti na Clepit huyashughulikia tofauti kwa makusudi. Kuchapisha ukurasa hugandisha hati ya sasa kama toleo, huuelekeza ukurasa kwake, na kuufanya wa umma: kile msomaji anachosoma kwenye clepit.space, kwa anwani kama acme.clepit.space/handbook, ni toleo hilo lililogandishwa wala si mabadiliko yaliyofanywa baadaye. Kuondoa uchapishaji husafisha vielekezi hivyo lakini huhifadhi anwani ya umma, hivyo kuchapisha tena baadaye hurudi kwenye URL ileile badala ya kuvunja kila kiungo kilichoelekea hapo. Kiungo cha kushiriki ni kinyume chake: hutoa hati hai, hivyo kile mpokeaji anachokiona hubadilika kadiri ukurasa unavyobadilika.

Kiungo unachoweza kukirudisha

Kiungo cha kushiriki ni tokeni unayoweza kuibatilisha, na chaweza kupewa muda wa kuisha wakati kinapotengenezwa. Kinachohifadhiwa ni alama ya tokeni pekee, hivyo kiungo huonyeshwa mara moja tu wakati wa kutengenezwa na baadaye hakiwezi kurudishwa kutoka hifadhidata, si na sisi wala na yeyote anayeifikia. Viungo hivi hutoa ruhusa ya kusoma, si ya kutoa maoni: maoni yanahitaji mwandishi, na mwenye kiungo si mwandishi.

Kuingia kutoka katika orodha yako mwenyewe

Eneo la kazi laweza kukabidhi uthibitisho kwa mtoa utambulisho wake mwenyewe: OpenID Connect kwenye mpango wa Business, SAML kwenye Enterprise, na kando yake SCIM kwa ajili ya kuoanisha orodha. SCIM hushughulikia rasilimali ya mtumiaji ambayo Okta na Entra huiendesha kwa kweli, na hufanya mkengeuko mmoja wa makusudi kutoka usomaji wa wazi wa kiwango hicho: kufuta humzima mwanachama badala ya kumfutilia mbali. Fafanuzi huruhusu hilo, na mbadala wake ni uoanishaji wa orodha unaoweza kuharibu maudhui ya eneo la kazi kwa kumwondoa mtu tu kwenye kikundi.

Njia nne za kuzungumza nacho

REST hushughulikia shughuli arobaini na nne chini ya /v1, zikielezwa na hati ya OpenAPI inayozalishwa kutoka njia zenyewe badala ya kuandikwa kando yake, na ujumuishaji endelevu hulinganisha matokeo hayo na nakala iliyohifadhiwa, hivyo mabadiliko ya njia yaliyoruka daftari hayawezi kuingia kimyakimya. GraphQL hushughulikia muundo wa programu na hubeba usajili kupitia tundu lake mwenyewe. Wakati halisi ni mchakato tofauti, ndiyo maana kuanzisha upya lango hakuangushi pamoja nalo uso wa maombi, na hutoa ruhusa kwa kila tundu badala ya kwa kila chumba: kwa kila tukio, kila muunganisho ndani ya mpangaji hupimwa kwa ukaguzi mmoja wa pamoja na ni wale tu wanaoruhusiwa kuliona wanaolipokea. MCP huwaonyesha mawakala wa akili bandia shughuli hizohizo kama zana, na hakuna zana inayoamini kitambulisho kilichotoka kwa mwitaji ili kuamua ni eneo gani la kazi inalofanyia kazi; uandishi hupitia huduma zilezile ambazo kiolesura hutumia, hivyo ukaguzi wa ruhusa na kumbukumbu ya ukaguzi ni vilevile.

Ni kwa ajili ya nani

Timu zinazohitaji kihariri wanachokidhibiti, na wasanidi wanaoingiza maudhui yaliyopangwa katika bidhaa zao wenyewe.

Tembelea Clepit: clepit.com