Kuokoa kufikia kila mfanyakazi na template wazi
Hifadhi ya faili ya template ilimwambia tu mwanachama aliyeiokoa, hivyo mwenzake pamoja na template sawa wazi kuweka maeneo juu ya kurasa faili alikuwa wakiongo...
Kugawana hati hufanya kazi tena, kama mtu ambaye anaweza kusoma
Majadiliano ya kushiriki hutuma kitambulisho cha hati kama kamba - id ya img ni Int64 iliyopita 2 ^53, ambayo nambari ya JSON ingezunguka - na kuunda Share cast...
Soma safu ya template kwa toleo la kubuni
Historia ya toleo huchota mashamba ya template juu ya kurasa za kila toleo. Amewataka wahakikishe kuwa nyaraka hizo zinafanyiwa kazi na Nakala ya kazi ya templa...
Faili na templates, zilizohaririwa mahali, na matoleo kila kikundi kinaendelea
Hati ilikuwa rekodi mbili: kupakia, ambayo hakuna kilichohaririwa, na nakala moja iliyobadilishwa ilitoka Kwa mara ya kwanza, mtu yeyote anaweza kuingia kwenye ...
Barua pepe za kisheria, mafunzo na kazi zinaunganisha tu kwa majeshi ya kuishi
- Kisheria: console ya org (OrgLinkHosts.internalOrigin) na mwanachama Ukurasa wa Sheria na Masharti ya Matumizi. Inaunganisha apex, ambayo hutumikia. tovuti ya...
Tumia makundi ya hati kutoka kwa enum ambayo inafafanua yao
Ukurasa wa mipangilio ya docs ulitaja makundi yake mwenyewe na kutuma Ordinal aliamini. Kila mmoja alikuwa na Picha zote na Wizara ya Mambo ya Ndani ya Nchi. .....
Jina jipya lilijibu bila Url skips Docs rename callback
Docs anashiriki simu ya mteja mmoja kati ya RenameFile na Save As, na ****** kuruka mwili wake wote - faili Rename tukio Ukurasa wa kuingia unasikiliza kwa pamo...
Kupoteza mbio kuhifadhi maudhui sawa sio kuokoa kushindwa
Kutazama kabla ya kuingizwa kwa ImgDat sio kufuli, na kamowsdocs inaendesha mbili replicas nyuma ya lango moja - nyaraka mbili ambazo vidole vyake ni sawa (mbil...
Moja ya kuokoa Kwa kuwa muundo wa mabadiliko sio aina ya hati ya chanzo
uploadDocument anakataa upload ambayo alidai MIME aina kutokubaliana na nini ni Iligunduliwa kutoka kwa bytes, na saveAsNewDocument ilidai aina ya mstari ilikuw...
Hifadhi ya Docs haikuweza kuhifadhi nates jukwaa tayari uliofanyika
Kuokoa hati mara mbili, na renaming moja, wote kuishia katika "Document haiwezi kuwa" Tafadhali angalia ruhusa zakoβ β na baada ya nakala tano zilizotolewa na k...
Fungua bodi ya mwanachama juu ya kuwa mwanachama wa timu na jukumu la wazi
Kichupo cha Kazi cha wanachama sasa kinaonekana katika hali mbili na hakuna haki kati yao: Mtazamaji ni mwanachama wa timu, na shirika lina angalau posting moja...
Retire kutumia bila akaunti, na kuwajulisha pande zote mbili za moja ambayo nchi
Kifungo cha matumizi ya bodi ya umma sasa ni kiungo katika usajili, kwa hivyo hii matone β Previous Story Picha zote na Wizara ya Mambo ya Ndani ya Nchi. ... {R...
Retry mbili kusoma catalog bump kuvunja hati editing na
WopiController.checkFileInfo huitwa mara kwa mara kupitia kikao cha uhariri - kwenye kufungua, karibu na kufuli, baada ya kila kuokoa - hivyo mgogoro juu ya shi...
Jaribu kuweka kwa digest, si kwa tag
Ahadi ya awali inaacha "kuweka picha" kuwa kimya hakuna-op. Hii inathibitisha kuwa matokeo: baada ya rollout, tag ni kutatuliwa kwa digest katika Usajili na Vio...
Ujenzi wa mradi huo haukuleta chochote na uliripoti mafanikio
Picha ni tagged na SHA ahadi, hivyo kujenga upya ahadi hiyo kuzalisha Mfano wa picha sawa. "Kuweka picha" kisha hakuna mabadiliko, Kufukuzwa ni kamwe kuguswa, '...
Lock the shared sweeps, and run two pods
Every @Scheduled sweep here whose effect is shared now takes a named distributed lease through SingletonTaskRunner before it does anything, so it runs once acro...
Let a rollout finish what the old pod was doing
Deploys replaced the only pod of each service with nothing to catch the requests in flight. Three settings, applied across the fleet: - preStop sleeps 10s befo...
Three self-invoked transactions that were doing nothing
@Transactional and @Async are PROXIES. A call from inside the same bean never reaches one, so all three of these annotations were inert. Found by audit, not by ...
The CV reader, employee referral links, and the form shape on the public listing
Three things the public careers site needed from this service. The form shape now rides on the public listing (the twelve ask* settings, the additional-info pr...
Apply-first, the job network, alerts, translation and retention
Eight things, all behind the anonymous careers surface, and all sharing the rules the single-org board already enforces rather than growing their own. APPLY-FI...
The profile endpoint stops loading the whole board
Its own comment said it existed so a page could paint the employer "without pulling every advert down with it", and the line under that comment called board() β...
A country is not its enum name
Every card on every careers surface has been printing "United states" β the words after the first lose their capitals when an enum name is prettified β and "CΓ΄t...
The anonymous API behind careers.<apex>
The public job board reads this. It is the only surface in Careers with no session, so the safety comes from the QUERY rather than from a rights check: PublicCa...
A REQUIRED resume is now actually enforced
A review of my own commit found the enforcement it claimed. JobApplicationService carried the comment "a REQUIRED resume is enforced at that point by requireRes...
/api/docs/careers β job postings, the member board, and applying
Two controllers behind one feature, and the split is the point. /careers/** is HR's and requires MANAGE_JOB_POSTINGS; /careers/member/** is the employee's and r...
Fill a rectangle, honour a highlight's opacity, and redact
Three things about the way a prepared document renders the designer's marks. A rectangle was drawn as an outline, so the fill a member now picks to cover somet...
Stop ignoring markdown
The "no .md in repos" rule is retired; docs, plans and READMEs are tracked like any other source file.
A document whose bytes are gone answers 410, not 500
The streaming download caught every storage failure as one unexpected error and returned 500, which tells a reader nothing and leaves a viewer with a blank erro...
Rebuild against the storage dedup fix
Picks up kamo-shared-library d21e01ce. uploadDocument created its ImgDat with isMissing=false BEFORE sending the bytes, and its @Transactional did not roll back...
Pin kamo-shared-library 1.6.0
The library moved to 1.6.0 while every consumer stayed on 1.5.0. Consumer CI builds the library from a fresh clone into a cold ~/.m2 and ci-settings.xml mirrors...
Open the one modified record, whichever layer asked
getOrCreateClassic and getOrCreateFormFillable collapse into getOrCreateModified: "open this for editing" means the same thing whichever editor asked, and the a...
Drop hasDesignVersion and its per-row template lookup
Every document list ran an esign_templates lookup for EACH row β 100 per page β to answer "is this an original that happens to carry a design". That was how the...
Give the audit test the new constructor argument
Missed in the previous commit, which I pushed off a grep's exit code instead of maven's β so a red suite went out as green. The controller gained a ClassicSaveP...
Announce a classic save to the member who made it
A WOPI save on a CLASSIC version now publishes docs.classic-saved.{memberId} so the Kamo PDF editor, if it is open on the form-fillable version, can redraw the ...
Save As branches a new original, not a new copy of one
PutRelativeFile was unimplemented, so "Save As" in the LibreOffice editor did nothing. It now does what the member means by it: the bytes become a brand-new ORI...
Derive modified versions instead of editing originals
Opening a document in the LibreOffice editor no longer hands over the original. It derives that document's CLASSIC version β once, reused every time after, and ...
Let an unscoped binder hold its own grid's documents
sameCollection demanded an exact assoc_object_id match in both directions, which made every binder in My Docs refuse every document My Docs was showing it. The ...
Serve and sync the Selected Docs binder
POST /api/docs/binders/scratch fetches the caller's Selected Docs binder for one collection, creating it on first use, and replaces its documents with the grid ...
The document verbs are enforced, as the org's security model resolves them
ImagingController checked ImageAccessLevelType and nothing else, and DocumentController checked only that a session existed. Access level is a real control but ...
The outstanding-course badge moves when the course does, not a minute later
The NavTop obligation badge sums two counts β packages to sign and courses to take β and only one of them was live. The legal half has pushed since its NATS blo...
Enforce the doc-share alias rights server-side
GET /shares/resolve-alias turns a guessable alias into a real person's NAME and required only a valid session. The rule lived solely in ShareDocumentDialog, and...
Writing the org legal settings needs BOTH HR rights
The Legal & Compliance settings tab is the only writer and is now offered only to a member holding MANAGE_HRS_SETTINGS *and* MANAGE_LEGAL_AND_COMPLIANCE, so the...
GET/PATCH the org's default legal text
/api/docs/legal/settings, behind the same guarded() funnel as every other mapping on this controller. The read NEVER creates a row: it resolves to LegalDefault...
Connect DocsService to NATS so the badge lights without a refresh
LegalPendingCountPublisher takes its NATS Connection as required=false and returns quietly when it is null. The shared NatsConfig is **************** and this C...
One snapshot per block, and figures that say what they measure
Both summarize methods are @Transactional(readOnly = true). Each issues six or seven reads whose figures are cross-checked ACROSS query boundaries: countOverdue...
Fill the per-member overdue rollup instead of sending zero
Both summary services built members[] with .overdue(0). The Overview's matrix branches on that field, so legal and training could only ever render amber or gree...
Bound the Resources block to count/sum/recent queries
**************** was loading the org's entire non-hidden HR_RESOURCE Img collection into memory to filter trashed, sum bytes and take 5 recent rows in Java β un...
Legal, training and resource summary for the HR Overview
One read per tab domain, each block gated on its own right and omitted rather than refused when out of reach.
The complete HR Training backend
Course authoring, publishing, assignment, the member player, server-side grading, WORM evidence and the reminder sweep β the whole module behind /api/docs/train...
The member-facing Training API
Registers com.kamo.z.shared.hr.training in @EnableJpaRepositories β @EntityScan is broad so the entities are found either way, but repositories are not. Two au...
Je, unaona nini kuhusu usafiri?
Kila moja ya hizi updates ardhi katika nafasi yako ya kazi moja kwa moja. Kuanza bure na kuangalia kukua wiki baada ya wiki.