Net-Base Žurnāls

10.04.2026

Licenču platformu un klientu portālu tīra savienošana

Aktivēšana, lejupielādes, versijas un klientu lomas kļūst patiesi spēcīgas tikai tad, kad tās tiek domātas no tās pašas sistēmas loģikas.

10.04.2026

Daudzos uzņēmumos klientu portāls un licencēšanas platforma veidojas atsevišķi: portāls tiek būvēts „klientiem“ (lejuplādes, biļetes, klienta pamatdati), licencēšanas jautājumi tiek risināti „produktā“ (aktivizācija, licences atslēgas, derīguma termiņi). Kamēr abi ir mazi, tas šķiet pieņemami. Taču, tiklīdz parādās vairāki produkti, izdevumi, uzturēšanas līgumi, mandanti, partneru konti vai atšķirīgi ekspluatācijas modeļi (On-Prem un Cloud), situācija sabrūk: lomas ir nekonsekventas, lejuplādes nav viennozīmīgi piesaistāmas, atbalsts neredz, kas patiesi ir licencēts, un iekšējā uzturēšana kļūst dārga.

Tīra savienošana starp licencēšanas platformu un klientu portālu nav tikai kosmētiska integrācija, bet gan būtisks lēmums: runa ir par kopīgu domēna modeli, robustām identitātēm, izsekojamiem piekļuves tiesību mehānismiem un procesiem, kas paliek stabili zem slodzes, ārkārtas situācijās un gadiem ilgi. Tie, kas šo jautājumu konsekventi risina, iegūst ne tikai „labāku portālu“, bet arī mazāk manuāla darba, mazāk kļūdu, ātrākus izlaidumu ciklus un labāku auditējamību.

Turpmākais raksts praktiski apraksta, kā plānot un īstenot licencēšanas platformu un klientu portālu kā vienotu sistēmas ķēdi: no datu modeļa caur autentifikāciju, REST-saskarnēm un lejuplādes/atjaunināšanas mehānismiem līdz ekspluatācijai, migrācijai un esošā programmatūras modernizācijai (piem., Delphi-bāzētas sistēmas). Mērķis ir pieeja, kas ir tehniski pamatota un vienlaikus saprotama B2B pārdošanai, atbalstam un klientiem.

Kāpēc savienojums bieži neizdodas: tipiskās trauslās vietas

Praksē savienojums reti neizdodas «tehnikas trūkuma» dēļ; biežāk iemesls ir nekonsistentas definīcijas un atbildību sadalījums. Visbiežāk sastopamās trauslās vietas:

  • Atsevišķas identitātes: klienti piesakās portālā ar e-pastu/paroli, produktā tiek izmantota atsevišķa licences atslēga vai mašīnas pirkstu nospiedums bez skaidras saistības ar portāla kontu.
  • Nekonsistentas entitātes: “klients”, “uzņēmums”, “mandants”, “atrašanās vieta” un “līgums” CRM, licencēšanas sistēmā un portālā nozīmē dažādas lietas.
  • Tiesības aug vēsturiski: lejuplādes tiesības, administratora tiesības un atbalsta tiesības rodas kā izņēmumi (“dod tam piekļuvi”), bez lomu modeļa un dokumentētiem noteikumiem.
  • Versiju un release process bez portāla: versijas tiek izplatītas caur failu glabātuvi, kamēr portāls tikai “kaut kur” piedāvā lejuplādes; hotfix, beta kanāli vai LTS līnijas netiek modelētas.
  • Trūkst izsekojama vēsture: kas, kad un kādai licencei ir piešķirts? Kas ir lejuplādēts? Kas bija derīgs inci­denta brīdī?
  • Atbalsts bez konteksta: biļetes ir portālā, licences statuss ir licencēšanas serverī, instalācijas stāvokļi nav konsistentā vietā; skaidrošana prasa laiku.

Risinājums nav vēl viena datubāze vai papildus rīks. Izšķirošais ir kopīgs kodols: domēna modelis, kas vienādi saprot portālu un licencēšanu – un integrācijas slānis, kas ir versijots, dokumentēts un ekspluatācijā izturīgs.

Kopīgs domēna modelis: pamats konsistencei

„Tīri savienot“ nozīmē, pirmkārt, tos pašus biznesa objektus abās pusēs. Tas šķiet vienkārši, bet ir svarīgākais sviras punkts pret datu uzturēšanu un izņēmumiem.

Kuras entitātes gandrīz vienmēr ir nepieciešamas

Pat ja katrs bizness ir citāds, sevišķi noderīgs ir kodols objektu komplekts, ko vēlāk var paplašināt:

  • Organizācija / Konts: juridiskā vienība (klients) vai partnera konts.
  • Lietotājs: fiziskas personas, pēc izvēles ar MFA un SSO.
  • Lomas & politikas: tiesības nevis “piemeklēt pa funkcijām”, bet kā lomas + noteikumu bāzes politikām.
  • Produkts: viennozīmīgi identificēts (produktu līnija), ieskaitot izdevumu/moduļu konceptu.
  • Licence: līguma/lietojuma tiesības (derīgums, apjoms, feature-flag, vietas/seat skaits, vidi).
  • Instalācija / Aktivizācija: konkrēta lietošanas vienība (piem., instance, mandants, ierīce, konteiners).
  • Release-kanāls: Stable, LTS, Beta; definējams pa produktu/izdevumu.
  • Artefakts / Lejuplāde: instalētājs, pakotne, konteinera attēls, parakstu fails, checksums.
  • Līgums / Uzturēšana: atbalsta līmenis, atjaunināšanas tiesības, SLA parametri.

Svarīgi ir atdalīt “licenci” (tiesības) no “instalācijas/aktivizācijas” (faktiskā lietošana). Daudzas sistēmas abas lietas sajauc; tad katra infrastruktūras izmaiņa (jauns servers, virtualizācija, konteinerizācija) kļūst par licences murgiem.

Mandantspēja un struktūras B2B kontekstā

B2B klienti bieži sagaida hierarhiskas struktūras: koncerns > sabiedrība > atrašanās vieta; vai partners > gala klients; vai IT organizācija, kas pārvalda vairākus operatīvos mandantus. Plānojiet šīs struktūras gan portālā, gan licencēšanas sistēmā vienlaikus:

  • Hierarhijas: organizācijām var būt apakšorganizācijas.
  • Delegēta administrācija: centrālā IT pārvalda lietotājus, bet atrašanās vietas pārvalda lokālās lomas.
  • Līgumu piesaiste: līgums var attiekties uz koncerna vai atrašanās vietas līmeni.

Bez šīs spējības vēlāk rodas “ēnu konti” vai pagaidu risinājumi (piem., vairāki portāla konti vienam un tam pašam klientam), kas ilgtermiņā bojā datu kvalitāti.

Identitāte, pieslēgšanās un uzticība: autentifikācijas pareiza uzstādīšana

Savienojums stāv un krīt ar identitātēm. Ja portāls un licencēšanas platforma izmanto dažādus autentifikācijas ceļus, lietotāju pārvaldība, tiesības un atbalsts kļūs pastāvīgi sarežģīti.

SSO, MFA un ārējie Identity Provider

B2B vidē tipiski scenāriji ir:

  • Portāls ar lokālu pieslēgšanos (e-pasts + MFA) mazākiem klientiem.
  • SSO caur Identity Provider (piem., Entra ID/Azure AD, Keycloak, Okta) lielākiem klientiem.
  • Hibrīds: SSO korporatīvajiem kontiem, lokāla pieslēgšanās partneriem/ārējiem lietotājiem.

Svarīgi ir vienots lietotāju reģistrs portālā, kas var sasaistīt ārējās identitātes. Licencēšanas serverim nevajadzētu būt pašam par “login-UI”, tas drīzāk patērē autorizācijas datus caur tokeniem/claims. Tas samazina uzbrukuma virsmu un izvairās no dubultas kontu pārvaldības.

Tokenu bāzēta autorizācija API

Integrācijai starp klientu portālu, licencēšanas serveri un, iespējams, produktu/klientu, REST-bāzētas API ar tokenu autorizāciju (īslaicīgi Access Tokens, pēc vajadzības Refresh Tokens, skaidras scopes) ir standarts. Par praktiskām rekomendācijām:

  • Scopes pēc domēna (piem., license:read, license:assign, downloads:read, org:admin).
  • Service-to-Service tokeni backend integrācijām (Portāls ↔ licencēšanas platforma), nevis lietotāju parolu izmantošana.
  • Stingra atdalīšana starp “lietotājs rīkojas” un “sistēma rīkojas” (impersonācija tikai apzināti un auditējami).

Tādā veidā portāls var, piemēram, rādīt licences pārskatus, neuzņemoties licences loģiku. Savukārt licencēšanas serveris var atļaut lejuplādes, nezinot portāla sesijas.

Lomu un piekļuves modelis: mazāk izņēmumu, vairāk kontroles

Biežākais iemesls turpmākiem pārbūvēm ir pārāk rupjš tiesību koncepts. “Admin” un “User” nepietiek, ja uzņēmumam ir vairākas nodaļas, partneri, izplatītāji vai ārējie pakalpojumu sniedzēji.

Lomas, nevis funkciju ķeksīši — taču kombinēt ar politikām

Labā prakse ir divpakāpju modelis:

  • Lomas kā saprotami komplekti (piem., klienta admins, licences menedžeris, lejuplāžu menedžeris, atbalsta kontakts, rēķinu admins).
  • Politikas kā kontekstā balstīti noteikumi (piem., “var piešķirt licences tikai savai organizācijai un apakšorganizācijām”, “var redzēt tikai LTS lejuplādes, ja uzturēšana ir aktīva”).

Tas saglabā portāla saprotamību lietotājiem, vienlaikus nodrošinot iekšēju elastību bez katra izņēmuma vajadzības pēc jaunas lomas.

Audit-logging kā pienākums, ne kā papildinājums

Īpaši attiecībā uz licences piešķiršanām un lejuplāžu atļaušanu izsekojamība ir kritiska. Plānojiet audit notikumus jau no sākuma:

  • Kas ir izveidojis/mainījis/piesaistījis kādu licenci?
  • Kura instalācija tika aktivizēta vai deaktivizēta?
  • Kuri artefakti ir lejuplādēti un kad?
  • Kuras lomas ir piešķirtas?

Audit žurnāli nav tikai atbilstības jautājums. Tie būtiski samazina atbalsta laiku, jo diskusijas (“mums taču bija piekļuve”) var atrisināt, balstoties uz faktiem.

Lejuplādes, versijas un atjaunināšanas ceļi: portāls un licences loģika kopā

Klientu portāls ikdienā bieži tiek vērtēts pēc lejuplāžu sadaļas. Ja tur valda haoss, visa platforma šķiet neprofesionāla — pat ja licencēšana ir pareiza. Savukārt labus release procesus var vilkt uz leju, ja portāls nespēj korekti attēlot izlaidumus.

Release kanāli, uzturēšana un tiesības

Robusts modelis sasaista release redzamību ar uzturēšanas statusu un licences parametriem:

  • Kurās versijās klients var redzēt? (piem., tikai ar aktīvu uzturēšanu, tikai LTS)
  • Kuras platformas? (Windows, Linux, macOS; pēc vajadzības Windows 11 ARM64)
  • Kuras izdevuma/ modulis? (piem., papildus moduļi tikai ar atbilstošu licenci)
  • Kura vide? (Produkcija pret Test/QA; dažas licences atļauj papildu testinstalācijas)

Tehniski tas nozīmē: lejuplādes nav organizētas „mapēs“, bet kā artefakti ar metadatiem (produkts, versija, kanāls, platforma, hash, paraksts, atkarības) un tiek atlasītas/izsniegtas caur licencēšanas platformas/portāla API.

Integritāte: paraksti, hashi un izsekojami artefakti

B2B programmatūrai integritātes mehānismi ir kvalitātes rādītājs:

  • Checksums (piem., SHA-256) rādīt portālā.
  • Digitālie paraksti instalētājiem/pakotnēm (atkarībā no tehnoloģijas).
  • Nemaināmi artefakti: versijas numurs vienmēr atsaucas uz to pašu bināro pakotni.

Tādējādi lejuplāžu sadaļa kļūst ne tikai ērta, bet arī ekspluatācijas un drošības ziņā uzticama.

Delta-atjauninājumi, offline-instalētāji un “air-gap” klienti

Daudzas uzņēmējdarbības vides ir ierobežotas: proxy, bez administratora tiesībām, air-gap, stingras izmaiņu procedūras. Plānojiet vairākus atjaunināšanas ceļus:

  • Tīkla atjauninājums caur API/repozitoriju (ērti, bet ne visur iespējams).
  • Offline-pakotnes (sapakoti instalētāji + atkarības + paraksti).
  • Dokumentētas atjaunināšanas ķēdes (piem., “no 7.2 uz 7.6 tikai caur starpsoļa 7.4”).

Portālam jāspēj izskaidrot šie ceļi un automātiski piedāvāt atbilstošas pakotnes atkarībā no licences statusa un esošā instalācijas stāvokļa.

Licencēšanas tehniskā īstenošana: tiešsaistē, bezsaistē un hibrīdi

“Licencēšanas serveris” izklausās pēc vienas komponentes. Reālajā dzīvē tas ir licences datu, parakstu, aktivizācijas loģikas un produktu integrāciju kopums.

Licenču veidi, kurus jāšķir tehniski

  • Named User: licence piesaistīta lietotājam (portāls vada identitāti).
  • Concurrent / Floating: ierobežots vienlaicīgais lietojums; prasa laika gaitā uzskaiti.
  • Device/Server: piesaiste aparatūrai/VM/konteineram; nepieciešami skaidri noteikumi, kas ir “aparātu maiņa”.
  • Feature-/moduliski: feature-flag kā daļa no licences.
  • Usage-bāzētas: patēriņš (piem., transakcijas) prasa meteringu un atskaišu veidošanu.

Īpaši miksveidos ir nepieciešams spēcīgs datu modelis, lai portāls un licencēšanas platforma attēlotu to pašu patiesību.

Offline licences: realitāte B2B vidē

Daudzi uzņēmumi pieprasa offline aktivizāciju. Stabilai risinājumam jāietver:

  • Parakstītas licences datnes (piem., JSON/XML + paraksts), ko produkts lokāli var verificēt.
  • Challenge-Response aktivizācijām, kurās iesaistīts aparatūras/instances pirkstu nospiedums.
  • Atsaukšana/izmaiņas kā process: offline nenozīmē „nekad vairs nemainīt“, bet „izmaiņas plānoti un izsekojami“.

Šeit klientu portāls ir centrāla funkcija: tam jāvada offline pieprasījumi (kura instalācija, kādam nolūkam), jānodrošina failus un jāparāda vēsture. Bez portāla offline licencēšana bieži beidzas ar e-pastu apmaiņu un nekontrolētām kopijām.

Arhitektūra: portāls, licencēšanas platforma un produkts, atdalīti ar REST serveriem

Tehniski tīrs risinājums ir tad, kad portāls un licencēšanas platforma nav „sapludinātas“ vienā koda bāzē, bet runā caur skaidri definētām API. Tas ir īpaši svarīgi, ja esošā programmatūra (piem., Delphi-VCL lietojumprogramma) tiek modernizēta vai papildināta ar tīmekļa komponentēm.

Layer-3 arhitektūra kā virziens

Pārbaudīta struktūra paredz atdalīt:

  • Presentation: tīmekļa portāls, pēc vajadzības admin-UI, self-service.
  • Business-Services: licences loģika, piekļuves tiesības, līguma noteikumi, lejuplāžu selekcija.
  • Data Access: datubāze, objektu glabātuve, audit-store, rindu apstrāde.

Šī atdalīšana nav pašmērķis. Tā ļauj mainīt portāla UX, neapdraudot licences noteikumus — un padara licences lēmumus testējamus un versijojamus.

REST-API: versiju vadība, kļūdu stāvokļi, idempotence

Ja portāls un licencēšanas platforma ir saistīti ar REST, detaļas nosaka uzturējamību:

  • API versiju vadība: breaking changes kontrolēta izvēršana (piem., /v1, /v2 vai header‑bāzēta versionēšana).
  • Idempotenti endpunkti piešķiršanām (“set license assignment” nevis “add” bez aizsardzības).
  • Skaidri kļūdu kodi (409 konfliktiem, 403 tiesību trūkumam, 422 biznesa invaliditātei).
  • Korrelācijas ID tracingam caur Portāls ↔ Serviss ↔ DB.

Tas ļauj daudz ātrāk diagnosticēt atbalsta un integrācijas problēmas, jo žurnāli un atbildes ir konsekventas.

Delphi-, C#- un hibrīdvides pragmatiska integrācija

Daudzi uzņēmumi ekspluatē izaugušas Delphi sistēmas un papildina tās ar tīmekļa portāliem vai servisiem. Tīra integrācija parasti nozīmē:

  • Esošais klients (piem., VCL) patērē licences informāciju caur REST-API, nevis tieši no lokālām datnēm vai proprietārām datubāzēm.
  • Biznesa loģika paliek servisā, ne portālā un ne „instalētājā“.
  • Datu piekļuves slāņi tiek modernizēti (piem., no vēsturiskās datu piekļuves kārtas uz skaidriem repository‑iem, Delphi vidē bieži izmantojot BDE‑aizvietošanu ar nativu pieslēgumu), lai licences un portāla funkcijas neiestrēgtu mantojuma slodzē.

Īpaši pakāpeniskas modernizācijas gadījumā šī atdalīšana ir svarīga: var turpināt attīstīt portālu un licencēšanas platformu, kamēr darbvirsmas klients tiek atjaunināts pa posmiem.

Ekspluatācija un drošība: kas ikdienā patiesi svarīgs

Platforma ir “tīri savienota” tikai tad, ja tās ekspluatācijā nav nepieciešama pastāvīga īpaša pieskatīšana. Tam nepieciešama stabilitāte, monitoring, skaidras procedūras un drošības pasākumi, kas nesamazina darbspēju.

Monitoring, brīdinājumi un izsekojama vēsture

  • Tehniskais monitoring: latentēs, kļūdu rādītājos, rindu garumos, DB veselībā.
  • Funkcionālais monitoring: aktivizāciju skaits noteiktā periodā, aizdomīgas lejuplāžu sekvences, neveiksmīgas piesaistes.
  • Traceability: caurstrāvojošas request‑ID, strukturēti žurnāli, centralizēta žurnālu meklēšana.

Portāls nav tikai „frontends”, bet nozīmīgs procesa datu avots: kur klienti pārtrauc? Kuras darbības rada atbalsta biļetes? Tie ir konkrēti indikatori par traucējumiem licencēšanas procesā.

Rate limiting, ļaunprātības aizsardzība un sensitīvo datu aizsardzība

Lejuplāžu un licences API ir pievilcīgi mērķi ļaunprātībām. Parastie pasākumi:

  • Rate limiting uz lietotāju/organizāciju/IP kritiskajiem endpunktiem.
  • Parakstītas lejuplāžu URL ar īsu derīgumu, nevis “statiskām saitēm”.
  • Least Privilege lomu modelī, īpaši partneru kontiem.
  • PII un licences datu atdalīšana kur pamatoti, plus skaidras dzēšanas/uzglabāšanas politikas.

Tas saglabā sistēmu robustu, neapgrūtinot leģitīmas klientu operācijas bez vajadzības.

Servisi uz Windows un Linux: plānojama ekspluatācija, nevis improvizācija

Atkarībā no vides licencēšanas servisi un fona darba uzdevumi tiek izvietoti kā Windows vai Linux‑servisi. Izšķirošais nav operētājsistēma, bet konsekvents ekspluatācijas ietvars:

  • Tīra izvēršana (konfigurējama, reproducējama, rollback iespēja).
  • Konfigurācijas pārvaldība (secrets, connection strings, sertifikāti).
  • Ieplānotie uzdevumi (piem., līguma statusu sinhronizācija, artefaktu indeksēšana, atskaišu ģenerēšana).

Bez šo pamatu klātbūtnes katra paplašināšana (jauns produkts, jauns kanāls, jauns klients ar SSO) kļūst neproporcionāli dārga.

Migrācija: no izaugušas sistēmas uz savienotu platformu

Retais sāk uz zaļas lapas. Bieži jau eksistē licences atslēgas, klientu dati CRM/ERP, lejuplāžu zona SharePoint vai FTP, un produktā ir vēsturiskas aktivizācijas metodes. Sekmīga migrācija respektē esošo – un vada to kontrolētā pārejā uz jauno modeli.

Datu tīrīšana un kartēšana: reālistiska plānošana

Kritiskais ceļš parasti nav tehniskā īstenošana, bet datu kvalitāte. Jēgpilnas darbības:

  • Definīciju vienādošana: kas ir “klients”, kas ir “mandants”, kas ir “instalācija”?
  • Mapēšanas tabulas definēšana: vecie produktu kodi ↔ jaunas produktu ID, vecie licences tipi ↔ jauni licence modeļi.
  • Dublikātu atklāšana: uzņēmumi/personas dublikāti, e‑pasti vairākkārtīgi, nepareizas domēnu ass.
  • Stāšanās datums un pārejas fāze: paralēla darbība tik īsa, cik iespējams, bet tik ilga, cik nepieciešams.

Īpaši svarīgi ir skaidrs noteikums, kurš sistēma ir vadošā (portāls/licencēšanas platforma pret ERP/CRM) un kā notiek sinhronizācija.

Pakāpeniska ieviešana bez “Big Bang”

Praktiska ceļa karte daudzām B2B vidēm:

  • 1. fāze: portāla pieslēgšanās, klienta pamatdati, lomu modelis, bāzes lejuplādes (vēl bez stingriem licences filtriem).
  • 2. fāze: licences objektu ieviešana, uzturēšanas statusa integrācija, lejuplāžu filtrēšana pēc noteikumiem.
  • 3. fāze: aktivizācijas/instalācijas, offline procesi, audit žurnāli pabeigti.
  • 4. fāze: dziļa integrācija produktā (auto-update, self-service, telemetrija/metering pēc vajadzības).

Tādā veidā iespējams agrīni nodrošināt ieguvumus (mazāk manuālu lejuplāžu, skaidrākas atbildības), vienlaikus sarežģītākos licencēšanas un aktivizācijas jautājumus virzot kontrolēti pēc tam.

Kvalitātes nodrošināšana: testi, staging un “neīstas” realitātes

Licence un portāla procesiem ir daudz malējā gadījuma: beigusies uzturēšana, daļēja atcelšana, izdevuma downgrade, aparatūras maiņa, kontaktpersonas maiņa, partneru piekļuve, bloķēti lietotāji. Ja šie gadījumi tiek atklāti tikai ekspluatācijā, tas tieši izmaksā atbalstam un bojā uzticību.

Testa gadījumi, ko bieži aizmirst

  • Uzturēšana beidzas šodien: kādas lejuplādes būs redzamas rīt?
  • Lietotājs pamet uzņēmumu: kas notiek ar Named‑User tiesībām?
  • Organizācija tiek sadalīta/apvienota: vai licences vēsture paliek izsekojama?
  • Offline licence tiek atjaunota: vai vecais fails joprojām ir derīgs?
  • Partneris pārvalda gala klientus: skaidra atdalīšana, bez datu noplūdes riskiem.

Laba uzstādīšana ietver staging vides ar anonimizētiem reāliem datiem vai reālistiskiem testa datiem, lai uzvedība netiktu testēta tikai «laboratorijā».

Secinājums: viena platforma, viens process, viena patiesība

Tīri savienot licencēšanas platformu un klientu portālu nozīmē domāt par visu ķēdi: identitāte, lomas, līgumu/uzturēšanas loģika, izlaidumi, lejuplādes, aktivizācijas un auditējamība. Ja šie elementi balstās uz kopīgu domēna modeli un stabilām API, rodas sistēma, kas mērogojas: vairāk produktu, sarežģītākas klientu struktūras, vairāk platformu — bez eksponenciālas izņēmumu pieauguma.

B2B uzņēmumiem tas nav tikai IT jautājums. Tas ir efektivitātes un riska jautājums: mazāk manuālu atbrīvojumu, ātrāki atjauninājumi, skaidrāki atbalsta procesi un labāka izsekojama vēsture. Tehniski atmaksājas atdalīta arhitektūra ar REST servisiem un skaidru slāņošanu — īpaši, ja izaugušas lietojumprogrammas (piem., Delphi‑sistēmas) tiek pakāpeniski modernizētas un savienotas ar tīmekļa portāliem.

Ja vēlaties konsolidēt esošo licencēšanu un klientu portālu vai izveidot jaunu modeli ar skaidrām lomām, lejuplāžu kanāliem un stabilām aktivizācijas procedūrām, labprāt apspriežam piemērotu mērķarhitektūru un reālistisku migrācijas ceļu: https://net-base-software-gmbh.de/kontakt/

Kopīgot ierakstu

Kopīgot šo ierakstu tieši

LinkedIn, X, XING, Facebook, WhatsApp un e-pasts ir uzreiz pieejami. Instagramam saiti un īsu tekstu sagatavosim nekavējoties.

E-pasts

Instagram atveras jaunā cilnē. Saite un īss teksts tiek iepriekš nokopēti starpliktuvē.